Android Q Top New Features (as of Beta 2) and what they mean for Developers
Android Q Beta 2 is out now for us to test with, see what new developments they’ve made to the ecosystem and how it affects our apps. Images are now available for us to run our emulators with, as for physical devices, it is already compatible with all the Pixel devices.
Android Q introduces support for foldable phones, stronger privacy updates, Vulkan extensions (a graphics rendering API), and some neat UI features our apps can take advantage of to run smoother and keep users engaged.
I’ll be going through what I believe are the biggest changes to the ecosystem and how they are going to affect us developers with the apps we already have, as well as updates or new apps we plan to make in the future.
Try saying ‘bubbles’ in an angry tone. Bet you can’t.
Introduced in Beta 2, Bubbles allows developers to place ‘bubbles’ that float on top of other app content where clicking it will let it expand to reveal a fragment of your app. This isn’t new to the ecosystem as apps like Facebook Messenger implemented it ages ago, but it’s nice to see it become a natural part of the ecosystem.
The Bubbles API builds on top of the Notification system so using it should feel familiar. When the device is locked, bubbles will appear as a regular notification.
When your app first presents a bubble, the user will be prompted with a choice dialogue: block or allow all bubbles from your app. Blocking will still allow the notification to come out, but not the bubble.
I’m personally excited for Google Keep’s implementation of this (for what they displayed as a shopping list).
ANGLE on Vulkan
April Fools passed and we’re still waiting on Diablo Immortal
The feature is experimental and the Android team is allowing developers a smooth gradual switch to ANGLE should they wish to do so, by letting developers choose ANGLE on a per app basis. In the Developer Options, you can specify whether apps use Vulkan or not, and upon Android Q’s release, the ANGLE APK will include a configuration file to specify what applications use ANGLE.
So why make the switch to Vulkan then, especially over OpenGL ES which has been reliable for years? (27 to be exact)
Vulkan’s main advantages include a much smaller API (thus taking less space) and lower level control, allowing you to manage your resources (thread and memory) much more adequately, especially with multithreading support which OpenGL doesn’t seem to have. Despite this, it’s still easier to implement than OpenGL (or so Android claims).
Finally, there’s very little difference between the desktop and mobile versions of Vulkan so porting games will be easier than ever. With all these changes, game development is sure to step up in the Android ecosystem. Even I might take a peek at it.
Privacy Updates: Location, Device IDs, and Scoped Storage
Court cases against privacy statements are getting out of hand
With the new data privacy cases being held against Google and your boy Zucc, it’s only natural that Android’s next big update comes with some privacy updates as well.
First, location is more controlled. When an app prompts users for location permission, users will now also have the choice to grant permission only while the app is in the foreground. In addition, access to Bluetooth, Cellular, and WiFi APIs will require FINE location permission now instead of course location.
Second, non-resettable device identifiers such as the IMEI and Serial Numbers will now require the READ_PRIVILEGED_PHONE_STATE permission to access. As for the MAC Address, this will automatically be randomized when connected to different WiFi networks (an optional feature in Android Pie).
Foldable Phone Support and Emulators
“Why did this have to become a thing” – Every Android Developer
Foldable Phones are becoming a thing now I guess. Both Samsung and Huawei are on the verge of releasing new models with prices that make me cringe (almost $2000 for a new phone), and the new phone-tablet hybrid style becoming a trend only induces nightmares for developers who want to keep the flow consistent.
Especially with the Beta 2 update, Android Q was quick to jump on this as they’ve introduced changes to onPause and onResume to support multi-resume and notify your app when it has focus, as well as changes to the resizeableActivity manifest attribute. If this is set to false and your app locks it orientation or aspect ratio, display changes will cause your app to be letter-boxed and resized to maintain the aspect ratio.
In the new 3.5 Canary Release of Android Studio, you can create a foldable emulator with an Android Q Beta 2 image.
Sharing Shortcuts and Settings Panel
When a user is currently engaged in your app, you want to keep things flowing quickly and smoothly. Occasionally though, you had to break this rule by sending users to the Settings to say, switch on their location or have them wait for the latency of a Share Panel to load.
Android Q introduces the new Settings Panel which can float over your app to show key settings in the context of your app so users can change them without leaving your app.
Another new feature introduced are Sharing Shortcuts which allows developers to publish share targets in advance which will allow the Share Panel to load way quicker. This mechanism is similar to App Shortcuts so the Android Team expanded this API to make implementing both easier. I do look forward to what they mean by this.
Dynamic Depth Format for Photos
Many modern smartphone cameras can perceive depth when taking photos. Currently, they use this to blur background elements to simulate focus and depth of field, then discard the depth metadata.
In Android Q, apps will be able to request a new Dynamic Depth Image object which consists of a JPEG, XMP (depth) metadata, and a Depth and Confidence map. This should allow apps to offer specialized blurs and bokeh, as well as 3D Images and potential AR use-cases (which I’m excited to see).
Other Features Worth Mentioning
The ones above are what I believe to be the most significant of what we’ve seen of Android Q so far, but that doesn’t mean there aren’t other changes honorable enough to mention.
WiFi Performance Mode is an adaptive mode where you can switch between high and low latency modes to meet network requirements with the lowest power consumption.
BiometricPrompt gets an extension to support passive authentication methods such as face recognition, as well as adding implicit and explicit authentication flows.
Thermal Status is now something apps can request and receive callbacks for when the device’s thermal status changes.
Managing IoT Devices over local WiFi will be easier with updated Network Connection APIs
And apparently, later this year Android Lollipop will officially be considered antique as Android Q will warn users with a dialogue when they first run an app with a targetSDK below API 23 (Marshmallow).
Android Q Timeline
As of today (April 15), Beta 2 is the most current version of Android Q we have.
We can expect further Beta releases to be out on a per-month basis. Beta 4 should be the near-complete version of Android Q with Betas 5 and 6 being test release for some final touches before the final release which should be expected this 3rd quarter of 2019.
The Android Q Name
Out of all the letters in the alphabet so far, Q seems to be the most obscure in terms of naming. According to many different sources, these seem to be the top contenders:
- Queen of Puddings
Yeah… Not sounding very sweet. While the likelihood of any of these is close to zero, my bets go to Quiche. While Quiche is usually served as a savory dish, there are sweet variants as well (like Vanilla Quiche). You can argue Quesadilla for the same case, but I think Android Quiche just rolls out the tongue a bit better.