Random Musings on the Android 14 Developer Beta 2

Random Musings on the Android 14 Developer Beta 2

When Google releases a new beta, 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.

Not surprisingly, the pace of change is down now that Beta 2 is out.
My focus is
on the developer side; see Mishaal Rahman’s Twitter thread for a broader look at Beta 2.

Of note:

  • A fair number of APIs were removed. That is not surprising at this stage and probably
    represents ideas that were not going to be “fully baked” in time for the Android 14
    release. One example is the PersistableBundle-based extras on PendingIntent
    that I covered in the Beta 1 preview
    — those are now removed.

  • Similarly, a few things that had been deprecated are now undeprecated. Whether
    that is because they found new use cases or their replacements were not yet
    ready is unclear. Examples include the getApplicationRestrictions() methods
    on UserManager and RestrictionsManager.

  • WindowManager gained a series of PROPERTY_COMPAT constants, such as
    PROPERTY_COMPAT_ALLOW_DISPLAY_ORIENTATION_OVERRIDE. These let you opt out of
    certain behaviors, such as forcing activities to landscape. You specify these
    via <property> child elements of <application> in the manifest.

  • MotionEvent has getEventTimeNanos() and getHistoricalEventTimeNanos(),
    to get finer-grained resolution than the millisecond-based methods like getEventTime().

  • Google continues baking the notion of financed devices into the OS
    DeviceManager, as I mentioned back in musings on Developer Preview 1.
    DevicePolicyManager lets you determine if the device is financed and
    find out about changes in the financing state.

  • TextView now explicitly has setLineHeight(),
    rather than only being able to specify line spacing.

  • There is a new PROVIDE_OWN_AUTOFILL_SUGGESTIONS permission, but it is only available
    to “the Browser application”, however Google is defining that.

  • Similarly, there are new permissions related to credentials, such as
    PROVIDE_REMOTE_CREDENTIALS.

It is likely that this is the last set of random musings for Android 14, unless something
unexpected happens with the next release.