APK Size Optimization Guide for React Native Apps

C
Codeit Admin
Author
May 27, 2025
Published
2 min
Read Time

Reducing your React Native APK size is essential for improving install rates, conserving user data, and boosting app performance — especially in bandwidth-sensitive markets. This guide outlines proven techniques to shrink your APK size by up to 50–70%, using battle-tested React Native optimizations.


🎯 Optimizations Applied

1. 🔧 Build Configuration Improvements

  • Split APKs by ABI
    Generates architecture-specific APKs for:

    • armeabi-v7a (older devices)

    • arm64-v8a (modern devices)
      ➤ Results in 30–40% size savings per APK.

  • ProGuard & R8 Enabled
    Minifies, optimizes, and obfuscates Java/Kotlin bytecode to remove dead code and shrink classes.

  • Resource Shrinking
    Automatically removes unused drawables, layouts, and strings during the build process.

  • ZIP Alignment
    Aligns uncompressed data within the APK to improve loading speed and performance.

  • PNG Optimization
    Crunches and compresses PNG assets automatically for leaner binaries.

  • Hermes Engine
    Replaces JavaScriptCore with Hermes for faster startup and smaller bundle size.


2. 🎨 Asset & Resource Optimization

  • Removed Unused Densities
    Excluded unused drawable densities like mdpi, hdpi, xhdpi, and xxxhdpi, keeping only xxhdpi.

  • Limited resConfigs to English
    Stripped out unused languages to keep only en.

  • Image Optimization
    Reduced image assets from ~200KB to ~86KB using WebP and manual compression.


3. ⚙️ JavaScript & Bundling

  • Hermes JavaScript Engine
    Smaller JS engine with better GC and faster cold start times.

  • RAM Bundles (Optional)
    Enables lazy loading of JS modules, ideal for large apps.

Size Reduction Summary

Optimization Estimated Savings
Split APKs 30–40%
Asset Optimization 15–25%
ProGuard/R8 10–20%
Resource Shrinking 5–15%
Total Reduction 50–70%

Building Optimized APKs

# Clean build artifacts
cd android && ./gradlew clean && cd ..

# Assemble the release builds
cd android && ./gradlew assembleRelease

Find the APKs at:

android/app/build/outputs/apk/release/
├── app-arm64-v8a-release.apk
└── app-armeabi-v7a-release.apk

Installation Instructions

  • Modern Devices (2017+) → Install app-arm64-v8a-release.apk

  • Older Devices → Install app-armeabi-v7a-release.apk

  • Not Sure? → Try arm64-v8a first, then fallback to armeabi-v7a if needed