With the release of the final Android 16 beta, developers should ensure their apps or libraries are free from compatibility issues. Google has issued warnings about changes including JobScheduler quotas, enhanced intent security, and a 16KB page size, which may impact applications even if they aren't specifically optimized for Android 16.
In Android 16, JobScheduler will enforce runtime quotas based on several factors, including an app's standby bucket — such as active, working, frequent, rare, and restricted — regardless of whether the background task is initiated while the app is active or runs concurrently with a foreground service. When a task exhausts its quota, it will be blocked from execution.
A significant and potentially disruptive change involves updates to the Android Runtime (ART), impacting apps that use reflection or JNI to access Android internals. Google cautions that relying on internal ART structures like non-SDK interfaces is risky, as ART updates are delivered via Google Play independently of the device's platform version.
If an app uses intents, it must account for new protections in Android 16 designed to prevent redirection attacks, where attackers hijack intents to trigger unintended components. These attacks can exploit serialized intents passed through extra fields or when intents are marshaled into strings. For instance, a malicious app might pass a null value to getCallingActivity()
, hoping a vulnerable app overlooks validation. Similarly, ignoring the return code of checkCallingPermission()
is a common mistake that could introduce risks.
Android 16 introduces a default security enhancement to mitigate intent redirection vulnerabilities. In most cases, apps using intents normally won't encounter compatibility issues.
Google states that the removeLaunchSecurityProtection
method allows apps to opt out of the new protections. However, developers should thoroughly test their intent handling and only opt out when absolutely necessary.
Android 15 introduced a 16 KB page size as a performance optimization to improve app launch times under memory pressure, reduce power consumption during launches, and shorten system boot times. In Android 16, while 4 KB-aligned apps will function in compatibility mode, users will see a potentially annoying warning dialog. To suppress this dialog, developers can configure the android:pageSizeCompat
attribute in the AndroidManifest.xml
.
Other Android 16 changes that may affect existing apps include the removal of the option to opt out of edge-to-edge mode, a new predictive back gesture behavior, and optimizations to fixed-rate scheduling. On large-screen devices, Android 16 also enforces orientation, resizeability, and aspect ratio settings comprehensively.
This is just a portion of what developers need to consider for the upcoming Android release.