Summary of Changes for Developers: Android 14 to 16
When you upgrade from Android 14 to 16, the update includes Android 15.
Android 14 = API 34
Android 15 = API 35
Android 16 = API 36
Here are some things to consider as you prepare to upgrade.
Look at user-visible platform features that affect apps.
Android 16 has progress-centric notifications. Consider migrating long-running foreground flows (upload, sync, route, stages, work orders) to this style where it improves clarity.
Android 16 adds to the previously released predictive back support and APIs/workflows for enabling system animations with additional predictive back-related APIs. Ensure your navigation and back handling is compatible with predictive back. Avoid legacy assumptions around onBackPressed() and ensure modern back dispatch patterns are used (Android X Activity, back APIs).
Private Space creates a separate container with restricted visibility. Apps in private space can be hidden from recents/notifications/settings when locked. If your app interacts with other apps (sharing, intents, discovery, companion apps), test the behavior when target apps/users are in a locked Private Space. If you have a device-management or enterprise app, note the enterprise controls around Private Space.
Review privacy changes impacting media and document workflows.
Users can grant access to selected photos and videos. READ_MEDIA_VISUAL_USER_SELECTED exists for apps that maintain their own picker and need selected access semantics. Use the system photo picker where possible. If you previously depended on broad media permissions, plan for reduced visibility and more explicit user selection.
Account for security changes.
Android 15—Apps targeting Android 15 cannot use TLS 1.0/1.1. Verify backend endpoints and embedded stacks negotiate modern TLS. Audit older devices/proxies in the field. (Some industrial networks have outdated TLS termination.)
Android 15—Additional restrictions and safer defaults around background activity launches, including PendingIntent created behavior changes. Review any workflow that attempts to bring UI to the foreground from background (alarms, urgent dispatch screens, push-to-task UX).
Android 16—MediaStore#getVersion() becomes unique per app. Do not infer device/global information from it. Don't assume format. If you use MediaStore#getVersion() for cache invalidation, ensure logic only depends on "can change" semantics, not content/format or cross-app comparisions.
Android 16—Safer Intents is multi-phase. Android 16 shifts control toward the receiving app to opt in to stricter intent resolution via manifest. Audit exported components and intent filters, especially if you receive implicit intents from other apps, such as scanner wedges, PTT clients, MDM agents, and file providers. Decide whether to opt in to stricter resolution and test partners thoroughly.
Android 16—Improves security against intent redirection attacks as a change affecting all apps. Re-test deep link flows. Redirect handlers and any "open URL > route > open another Intent" patterns.
Use expanded APIs.
New KeyStoreManager APIs grant and revoke access to Keystone keys by UID and access shared keys. Consider using for architectures where a "core security app/service" shares keys with companion apps on the same device (with strong governance).
Android 16 introduces Ranging/Manager and describes secure WiFi 802.11az ranging improvements. Use for proximity-based workflows (tool cribs, vehicle docking, asset check in/out) on supported hardware.
Watch for Android 15 platform items that can break or change behavior in rugged fleets.
Android 15 prevents untrusted notification listeners from reading OTPs and hides notification content during screen sharing. If you ship a companion/agent using NotificationListenerService, ensure it still functions under trust requirements, such as companion device associations.
Android 15 supports devices configured for 16 KB page sizes. Apps with native code should rebuild or test for compatibility. If you have NDK libs (barcode scanning, OCR, crypto, computer vision), run explicit tests in a 16 KB environment.
For more information, go to https://developer.android.com/about/versions.