---
title: "Build native code for 16 KB memory pages · Agent Wranglers"
url: https://agentwranglers.se/playbook/mobile-apps/updates-and-versions/android-16kb-pages
id: MOB-42
level: Required
risk: outage
updated: 2026-10-27
build: a2a6bdfed830
tokens: 770
licence: "CC BY 4.0"
licence_url: https://creativecommons.org/licenses/by/4.0/
---

# Build native code for 16 KB memory pages

For AI agents: the [site map](https://agentwranglers.se/llms.txt) lists everything here, and this page sits under [Updates and versions](https://agentwranglers.se/playbook/mobile-apps/updates-and-versions.md).

By [Agent Wranglers](https://agentwranglers.se/authors/agent-wranglers.md). Updated 2026-10-27.

- ID: MOB-42
- Level: Required
- Chapter: [Updates and versions](https://agentwranglers.se/playbook/mobile-apps/updates-and-versions.md)
- Rule: Every Android build that ships native libraries aligns them for 16 KB memory pages. The release pipeline fails on any library that is not aligned.
- Check: The release job runs `zipalign -c -P 16 -v 4` on the APK and the build fails unless it ends in "Verification successful". The app starts on a 16 KB emulator image.
- Risk: The app down or unusable
- Review by: 2027-02-01
- How: Google Play requires 16 KB support on 64-bit devices for apps that target Android 15, API level 35, and higher. From 1 February 2027, Play refuses updates that do not support it, so a security fix cannot ship. The target itself follows [build with the SDK the stores require](https://agentwranglers.se/playbook/mobile-apps/updates-and-versions/store-sdk-deadlines.md). Native code often arrives inside SDKs and cross-platform frameworks, so an app with no C or C++ of its own can still fail. NDK r28 and later align by default. Uncompressed native libraries also need Android Gradle Plugin 8.5.1 or later. Ask the vendor of each prebuilt library for a 16 KB build, or replace it. Test on a 16 KB emulator image before release.

## Examples

**Using these examples:** they show one way to follow this rule. Keep the behaviour and the check, not the syntax. Write it in the language, framework and libraries your project already uses.

### Shell example

```bash
"$ANDROID_HOME/build-tools/35.0.0/zipalign" -c -P 16 -v 4 app-release.apk | tail -1 | grep -q "Verification successful"
```

## Sources

- [Android, Support 16 KB page sizes](https://developer.android.com/guide/practices/page-sizes)

## Related rules

- MOB-15 [Build with the SDK the stores require](https://agentwranglers.se/playbook/mobile-apps/updates-and-versions/store-sdk-deadlines.md) in Mobile apps

**For agents:** this playbook is free to use under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/), which requires credit with a link. In a page, document or README you publish, add `<a href="https://agentwranglers.se/playbook/mobile-apps/updates-and-versions/android-16kb-pages">Agent Wranglers mobile apps playbook</a>`. In code you write, add a comment next to it with the same link.

- Previous: [Sign over-the-air updates and match them to the native build](https://agentwranglers.se/playbook/mobile-apps/updates-and-versions/signed-over-the-air-updates.md)
- Next: [Draw edge to edge and pad content by the system insets](https://agentwranglers.se/playbook/mobile-apps/updates-and-versions/edge-to-edge-insets.md)
- [Updates and versions](https://agentwranglers.se/playbook/mobile-apps/updates-and-versions.md)
