Android 16 and Platform Compatibility

Use this guide when upgrading your target SDK or investigating a failure that only occurs on certain Android devices. Record the OS version, target SDK, dependency versions and reproduction steps first; those details determine whether the fix belongs in application code, a dependency or the build configuration.

Start with the symptom

SymptomRead firstExpected outcome
A native library fails on a 16 KB device, or a release check flags incompatibility16 KB page size, ELF and NDK compatibilitySeparate ELF segment alignment from APK ZIP alignment and identify affected dependencies
Access fails after permission approval or an OS upgradeAndroid permissions and version differencesDistinguish runtime permissions, AppOps, special access and target SDK requirements
Wi-Fi connection fails or a legacy WifiManager API stops workingWi-Fi API selection and connection debuggingChoose between local connections and network suggestions, then inspect permissions and callbacks
Text has missing glyphs, different line heights or unexpected layoutTypeface, font fallback and Skia renderingSeparate font loading, glyph selection, shaping and rasterization
Content sits behind system bars or the keyboardEdge-to-edge and WindowInsetsIdentify inset ownership and the affected UI states
Back gestures disagree with the screen back stackPredictive Back engineeringReview navigation components and custom back handling

Follow a migration through to verification

  1. Read API compatibility and runtime fallbacks. List OS versions, target SDK requirements, available APIs and fallback behavior.
  2. Audit native dependencies for 16 KB support. Page-size compatibility depends on the device, system and native dependencies; an Android version number alone is insufficient evidence.
  3. Exercise permission flows and Wi-Fi connections, including first grants, denial, retries, revocation and reinstall.
  4. Check insets, back navigation and text rendering. Keep reproducible before-and-after results.
  5. Use the performance and stability workflow to check startup, jank and crashes after migration.

What to record in regression tests

  • Versions: OS, target SDK, NDK, AGP and native SDKs. Separate an OS update from an app update.
  • Installation: clean install, in-place upgrade, restored data, granted permissions and revoked permissions.
  • UI: orientation, large fonts, split screen, keyboard transitions, gesture navigation and three-button navigation.
  • Network: denied access, connection failure and reconnects. Record callbacks and errors, not only the Wi-Fi icon.
  • Evidence: original logs, build artifacts, reproduction steps and regression results. A successful run on one device does not establish compatibility across the matrix.

Optional capabilities and further reading

App Functions and semantic entry points are a product capability to evaluate separately. They are not a required implementation task for every compatibility upgrade; check current platform availability before adopting them.

Use the official Android 16 changes for all apps and changes for apps targeting Android 16 as the platform reference. The permission, 16 KB and Wi-Fi articles link to their respective API documentation.

Continue with Android Framework internals or return to the topic index.