Random Musings on the Android 13 Developer Beta 1
Each time Google releases a new developer preview, I rummage through the API differences report the high-level overviews, and even the release blog post, to see if there are things that warrant more attention from developers. I try to emphasize mainstream features that any developer might reasonably use, along with things that may not get quite as much attention, because they are buried in the JavaDocs.
Once we get to beta releases, changes to the API surface should start to diminish, and Android 13 Beta 1 is no exception. The API differences report is a fraction of what came in the two developer previews, and even those seemed smaller than in past years.
What Will Break You, Eventually
READ_EXTERNAL_STORAGE effectively is deprecated. Once your
33 (for most developers, in 2023), you will need to stop requesting
and start requesting one or more of:
Those will affect your ability to read from the standard shared media collections. For other types of content, use the Storage Access Framework.
What May Break You, Sooner
Mishaal Rahman of Esper wrote this week about predictive back navigation.
(IMHO, “predictive” often means “royally screwed up”)
Mishaal goes into a lot of detail,
but the upshot is that it appears that Google wants to use animations to help indicate
to a user when a system BACK navigation gesture will send the user to the home screen versus
doing something else. If you manage your own BACK navigation, such as by overriding
onBackPressed() somewhere, you may need to migrate to the new
approach, and you may need to fiddle with
if you find that “predictive back navigation” breaks things.
As Mishaal notes, hopefully this Google I|O session will clarify things.
BTW, note that
OnBackInvokedDispatcher moved from
in Beta 1.
What Else Changed?
There is an option now to listen to when the keyguard comes and goes.
This requires a new
permission. However, this is designed solely for use by
ROLE_ASSISTANT apps, so it
will not be available to many developers.
Some notable things were deprecated:
Several methods on
Bundle, where you now need to add a
Classparameter to the end of the parameter list
SPLASH_SCREEN_STYLE_EMPTY value was
and appears to give you a way of opting out of having an icon on the mandatory splash screen.
Finally, if you have been using the force-dark options on
WebSettings, those were
deprecated and replaced by “algorithmic darkening allowed” methods,
because those names just roll off the tongue.
What Comes Next?
We are slated to get three more beta releases. I expect there to be few API changes. If that turns out to be true, most likely this will be the last “random musings” post for the Android 13 cycle.
The final release date is murky, as usual, but probably is in the August/September timeframe. Be sure to budget time in May/June (if not sooner) to start playing with Android 13 and testing your app’s compatibility with it.