With the release of the last Android 16 beta, developers should ensure their apps or libraries are free of any compatibility issues. Google warns of changes—including JobScheduler quotas, stronger intent security, 16KB page size—that might affect apps even if they do not specifically target Android 16.
The JobScheduler in Android 16 will enforce runtime quotas based on several factors, including the app’s standby bucket—suche as active, working, frequent, rare, and restricted— whether a background job was started while the app was active, or whether a job executes concurrently with a foreground service. When a job runs out of its quota, it will be blocked.
An important, and potentially breaking, change is the update to the Android Runtime (ART), which affects apps that use reflections or JNI to access Android internals. Google warns that relying on internal ART structures, such as non-SDK interfaces, is risky, as ART updates are delivered via Google Play and are decoupled from the device’s platform version.
If an app uses intents, it must account for Android 16’s new protections against redirection attacks, which occur when an attacker hijack an intent to trigger a different component. These attacks can exploit serialized intents passed via the extra field or when intents are marshaled into strings. For instance, a malicious app might pass a null value to getCallingActivity()
hoping that a vulnerable app will not validate it. Likewise, ignoring the return code from checkCallingPermission()
is a common mistake leading to potential risks.
Android 16 introduces a by-default security hardening solution to Intent redirection exploits. In most cases, apps that use intents normally won’t experience any compatibility issues.
The removeLaunchSecurityProtection
method allows apps to opt out of the new protections, Google says. However, developers should thoroughly test their intent handling and opt out only when absolutely necessary.
Android 15 introduced 16 KB page size as a performance optimization, improving app launch times on systems under memory pressure, reducing power consumption during app launch, and shortening system boot time. In Android 16, while 4 KB-aligned apps will work in compatibility mode, the user will be displayed a potentially-annoying warning dialog. To suppress this dialog, developers can set the android:pageSizeCompat
property in the AndroidManifest.xml
.
Additional Android 16 changes potentially affecting existing apps include the removal of the option to opt out of edge-to-edge mode, a new predictive-back behavior, and optimizations to fixed-rate scheduling. On large-screen devices, Android 16 also fully enforces orientation, resizability, and aspect ratio settings.
This is just a glimpse of what developers should take into account in the upcoming release of Android. Refer to the official documentation for the full picture.