Skip to content

chore: arm64-v8a build and native dependency updates for Play 16KB page-size compliance#93

Open
PremSharma-Intelegencia wants to merge 1 commit into
fleetbase:mainfrom
blockalicious-io:chore/android-16kb-arm64
Open

chore: arm64-v8a build and native dependency updates for Play 16KB page-size compliance#93
PremSharma-Intelegencia wants to merge 1 commit into
fleetbase:mainfrom
blockalicious-io:chore/android-16kb-arm64

Conversation

@PremSharma-Intelegencia

Copy link
Copy Markdown

Overview

This pull request updates the Android build configuration and native-related dependencies to ensure the project complies with the latest Google Play and Android platform requirements. These rules affect all apps that include native code and target newer Android versions (including Android 15).

What’s included

1. Build configuration updates

  • Updated android/app/build.gradle to add an NDK abiFilters block.
  • The app now builds native libraries only for the arm64-v8a architecture, which is the required 64-bit architecture for Play distribution.

2. Native dependency updates

  • Updated several native-heavy dependencies in package.json, including:

    • react-native-background-geolocation
    • react-native-mmkv-storage
    • react-native-vision-camera
  • Other native modules were also refreshed to versions that support modern NDK tooling and 64-bit builds.

3. Compatibility verification

  • Confirmed that updated packages correctly build for 64-bit devices.
  • Ensured that native components align with the 16 KB memory page-size requirement introduced for devices running Android 15+.

Why these changes are necessary

Google Play is tightening requirements for apps that include native code:

Updating the ABI configuration and native dependencies ensures:

  • The app stays eligible for Play Store updates.
  • APK/AAB sizes are reduced by removing unused ABIs.
  • Native libraries are built with modern toolchains that correctly handle 64-bit and 16 KB page-size expectations.
  • Future Google Play Console warnings or upload failures are avoided.

Impact

  • No breaking changes to JavaScript/TypeScript APIs.
  • A clean, simplified native build targeting only the required 64-bit ABI.
  • Improved long-term compatibility with upcoming Android releases.

Notes for maintainers

  • After merging, confirm CI builds contain only a lib/arm64-v8a/ directory.
  • Test on 64-bit devices/emulators to ensure native modules load correctly.
  • Monitor Play Console warnings after uploading the next release build.

compliance

This update ensures the app complies with current Google Play and Android
platform rules for 64-bit native architectures and the new 16 KB memory
page-size requirement.

What changed:
- Updated `android/app/build.gradle` to include an NDK `abiFilters` block
  that restricts builds to **arm64-v8a** only.
- Updated native-dependent libraries in `package.json`, including:
  - `react-native-background-geolocation`
  - `react-native-mmkv-storage`
  - `react-native-vision-camera`
  - plus other related native modules requiring modern NDK compatibility.
- Verified dependency updates now align with 64-bit architecture support and
  current page-size expectations for Android 15+ devices.

Why this is required:
- Google Play requires all apps using native code to ship **64-bit libraries**
  (including `arm64-v8a`) for new releases and updates:
  https://developer.android.com/google/play/requirements/64-bit
- Starting **1 November 2025**, Play will enforce **16 KB memory page-size**
  compatibility for apps targeting Android 15 or later:
  https://developer.android.com/guide/practices/page-sizes
- Limiting ABIs to `arm64-v8a` avoids packaging unused architectures, reduces
  APK size, and ensures native modules match the Play distribution criteria.
- Updating native libraries ensures they are built with modern NDKs and tool
  chains, preventing Play Console warnings about missing 64-bit support or
  page-size incompatibilities.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants