Google introduced a crippling Android app scaling bug to the Chrome OS Beta and Dev channel

news image

Android display scaling has been a controversial topic in the Chromebook community since the removal of Android’s DPI scaling setting in Chrome OS 67. The fonts and touch targets in Android apps appear tiny and illegible, making them incredibly frustrating to use compared to Chrome and native Chrome apps. There used to be workarounds to increase Android app scaling, but these methods don’t work anymore. People have complained about it in the Chromebook community forums and have been filing bugs, and, to be honest, I can’t blame them. Google is now testing a new system called “uniform scaling” in the Chrome OS Beta and Dev channel to tackle the problem with tiny Android applications, but it’s filled with issues.

Uniform scaling is Google’s answer to the Android app scaling complaints littered everywhere on the Chromium bug tracker and the Chromebook community forums. It scales Android apps to be 25% larger to become readable and less frustrating to use.

beforeafterunformscaling

Left: Telegram Android app without uniform scaling. Right:  With uniform scaling.

As shown above, the overall layout of Android apps appears larger with uniform scaling. The font and interface are scaled up significantly more than before, making it easier to read and interact with the app. While the decision to increase scaling for Android apps is the right move, especially from an accessibility standpoint, the change causes its own issues, such as making apps appear too big and cutting off content. There’s also one rather glaring unanticipated consequence.

Last night, I tried to catch up on homework using Squid, a popular note-taking app found on the Google Play Store. I started to write, and I noticed that my writing started to move away from my digital pen. That’s weird, I thought. I restarted Squid, and it did the same thing. I minimized the Squid app and tested the Concepts Android app to see if it was a Squid issue, and it exhibited the same problem. Take a look:

Canvas

Concepts app with uniform scaling. Completely off-centered from my digital pen.

As you can see, the input is nowhere near where my stylus actually is. I have to be actively compensating for the misalignment to draw correctly, which is a significant annoyance (especially when drawing faces).

squid

Squid app with uniform scaling. Ink initially trails behind my digital pen until I lift it.

Squid is impacted significantly more than the Concepts app. The ink initially trails my drawing pen until I lift it, shifting the whole stroke to the bottom right. This makes drawing impossible since I have to predict where the ink is going to end up.

Some of you might be wondering why I’m making a big fuss about it if the problem doesn’t exist on the Chrome OS stable channel. Think of it this way: we’re already late in the beta cycle for Chrome OS 86. The clock is ticking, and there’s not a lot of time for the issue to be fixed before the expected release of Chrome OS 86 stable (unless Google delays it, which does happen). Enthusiasts and web developers jumping to the Beta channel to try out upcoming features with “low risk” will find their Android apps near unusable. If you need drawing to work correctly on Android apps again, you’ll have to powerwash (or factory reset) your Chromebook to switch back to the stable channel, which erases all of your data stored on your Chromebook. I’m not the only one running into this problem either — people have messaged me saying they can no longer handwrite notes or draw on Android apps, which destroyed their workflow. Here’s what sucks about this: there is no way to turn uniform scaling off. Until Google fixes the awful uniform scaling bug, you’re stuck with misaligned inking. Not good, Google.

If you’re negatively impacted by uniform scaling problems and prefer not to back up and powerwash your Chromebook, there are a couple of things you can try to work around the issues.

Workaround #1

If you don’t annotate or draw on Android apps, try this workaround. You can change Android’s display scaling by exposing the hidden display settings in Android.

  1. Install Activity Launcher (or any equivalent app that can launch hidden activities) from the Google Play store.
  2. Launch Activity Launcher, search for “display,” and click on com.android.settings.DisplaySettings to launch the hidden display settings.
  3. Click on the “Advanced” button, then click “Display size.”
  4. Shrink the display size to “Small” by moving the slider to the left.

Your apps should appear exactly like how they used to look without uniform scaling. You must do steps #2-4 every time you log out or restart your Chromebook.

Workaround #2

If you need to annotate or draw on Android apps, this workaround will help get the pen’s inking centered. You’ll need to ADB into the Android subsystem and change Android’s display density using a few commands.

This workaround requires enabling ADB debugging, which allows you to install apps not verified by Google. Android Police and Google are not liable for damages caused by sideloading harmful apps. Disabling this feature will require a powerwash.

  1. If you already have Linux installed on your Chromebook, you may skip this step. Otherwise, launch Chrome OS Settings, click on Linux (Beta) on the navigation pane, and click the “Turn on” button. If you can’t find it, your device may not be eligible for Linux, a requirement for this workaround.
  2. Activate “Enable ADB debugging,” which is tucked under “Develop Android apps” in the Linux (Beta) section of Chrome OS Settings.
  3. Launch the Linux terminal from the launcher. ADB is required to modify the Android subsystem. To do this, type and enter the following: sudo apt update && sudo apt install android-tools-adb.
  4. Once ADB is installed, look for the Android subsystem: adb devices.
  5. You should see a device called “emulator-####.” Note that the “#” will vary depending on your device. Copy it.
  6. ADB into the Android subsystem: adb -s emulator-#### shell.
  7. If you did these steps correctly, your terminal should display your device name. For example, my Pixel Slate says nocturne_cheets:/ $ 
  8. Change the density of Android’s window manager to 120: wm density 120.

density

If done correctly, this is what your terminal output should look like.

The content inside Android apps will be very tiny, but the inking will accurately follow your drawing pen. I recommend reverting the density setting back to default when you’re finished drawing: wm density reset.

I hope the developers at Google will fix the bugs caused by uniform scaling. As of now, this new scaling has completely broken all Android drawing apps, significantly impacting artists and students. I filed a bug report on the Chromium bug tracker, and I hope the developers will jump in and quickly fix the issue before it reaches the stable channel.

newsybag



Leave a Reply

Your email address will not be published. Required fields are marked *

Pin It on Pinterest