Recognized by Clutch.co as a top-rated Mobile App Development Company.
folio3-mobile
US 408 365 4638
START YOUR PROJECT
  • Solutions
    • Apps Discovery Services
    • Team Augmentation
    • Enterprise
    • AR/VR
    • IoT
    • Wearables
    • Field Sales
    • On Demand Apps
  • Industries
    • Retail
    • Agriculture
    • Healthcare
    • Pharmaceutical & Life Sciences
    • Manufacturing
    • Automotive
    • Logistics
    • Education
  • Technologies
    • Native Mobile Apps
      • iOS
      • Android
    • Cross Platform Apps
      • React Native
      • Flutter
      • Ionic
      • Xamarin
      • NativeScript
      • Sencha
  • Portfolio
  • Blog
  • Contact Us
  • Solutions
    • Apps Discovery Services
    • Team Augmentation
    • Enterprise
    • AR/VR
    • IoT
    • Wearables
    • Field Sales
    • On Demand Apps
  • Industries
    • Retail
    • Agriculture
    • Healthcare
    • Pharmaceutical & Life Sciences
    • Manufacturing
    • Automotive
    • Logistics
    • Education
  • Technologies
    • Native Mobile Apps
      • iOS
      • Android
    • Cross Platform Apps
      • React Native
      • Flutter
      • Ionic
      • Xamarin
      • NativeScript
      • Sencha
  • Portfolio
  • Blog
  • Contact Us

How to reduce apk size in React Native

Published by: Noc Folio3 | November 2, 2020
SCROLL AND BE AMAZED!
Home > React Native > How to reduce apk size in React Native

When we develop an app using React Native, we want to make sure that our app can run on as many different devices as possible, by providing resources that are optimized for different CPU architectures, screens as well as many other factors. Unluckily, this also means that every single device, which downloads your app, will receive a bunch of code and resources that are not going to be used at all.

Android App Bundle

The size of an APK can be reduced by 35% by publishing the app in AAB (Android App Bundle) format – official Android Developers blog.

Only compiled code and resources are contained in the AAB bundle. Google play itself generates an optimized APK for every device type based on its specifications and CPU structure. 

Old APK at 26.8MB compared to the new AAB at 14.4 to 17.7 MB 

Using Android Studio or Command-line tools you can simply build your project as a signed app bundle. To build a signed app bundle from Android studio first, select Build > Generate Signed Bundle/APK from the Android Studio toolbar. The next step is to select the Android App Bundle checkbox and then click the Next button. Then, open the module dropdown, and choose the app as our base module from the list.

Follow the instructions provided on-screen to complete the build process. On completion, Android Studio will generate a .aab file and store it in our computer’s AndroidAppBundle/app/release directory. An Android App Bundle is a file (with the .aab file extension) that you upload to Google Play.

We can also generate signed .aab using the terminal by running the following command in the android folder:

cd android
./gradlew bundleRelease

Enable Resource Shrinking 

Resource shrinking can be used to identify and eliminate unnecessary resources. It can be enabled using the following command:

buildTypes {
       release {
        //Add the following//
    	shrinkResources true
        minifyEnabled true
       }
   }

Enable Proguard

Proguard is used to shrink, optimize, obfuscate, and preverify class files. it detects and eliminates unused classes, methods and attributes and rename the remaining ones using short and meaningless names. It compresses the Java Bytecode and reduces the size of the app a little bit.

To enable it use the following command:

def enableProguardInReleaseBuilds = true

Enable Separate Builds

This is the alternative of Android App Bundle (.aab). If we do not want to generate aab and stick with apk then this is the way to reduce sizes. Basically 2 major architectures, armeabi & x86, are supported by Android devices. When APK is generated via React Native, it contains the native libraries of both the architectures. In order to generate 2 different APKs use the following command:

Set def enableSeparateBuildPerCPUArchitecture = true

Both of the APKs should be uploaded to Google Play, where each one can be distributed to the correct architecture. This can reduce the size of APK around 7mb to 3.5mb for armeabi and 5mb for x86.

Do you know any other tips for reducing APK size? Do let us know in the comments.


About Noc Folio3

Newsletter

Search

Archives

  • December 2023
  • April 2023
  • March 2023
  • October 2022
  • September 2022
  • August 2022
  • July 2022
  • June 2022
  • April 2022
  • March 2022
  • February 2022
  • October 2021
  • September 2021
  • May 2021
  • February 2021
  • January 2021
  • December 2020
  • November 2020
  • October 2020
  • May 2020
  • April 2020
  • March 2020
  • February 2020
  • January 2020
  • December 2019
  • November 2019
  • October 2019
  • September 2019
  • August 2019
  • July 2019
  • May 2019

Recent Posts

  • Exploring Flutter Navigation: From Basics to Advanced Routes
  • Web UI Test Automation with Pytest-BDD
  • How to fix IOS compass calibration issues
  • Testing Android Applications With Perfect Coverage
  • How to use useRef hook efficiently? – React

Tags

  • android
  • angular-state-management
  • Automation
  • Compass
  • cross-platform
  • css
  • development
  • firebase
  • hooks
  • ios
  • learn-ngrx
  • ngrx-beginner
  • ngrx/store
  • QA
  • react-native
  • reactjs
  • scss
  • stylesheet
  • styling
  • Testing
  • Test Script
  • UI-UX

Newsletter

Newsletter

Post navigation

Previous Create your first modal popup in react native
Next Different Approaches For Automation Of Functional Testing
Schedule an Appointment with our Mobile App Development Expert
Footer Menu
  • Company
    • About Us
    • Portfolio
    • Blog
    • Careers
    • Contact Us
  • Solutions
    • Apps Discovery Services
    • Team Augmentation
    • Enterprise App Development
    • AR/VR Application Development
    • IoT Application Development
    • Wearables Apps Development
    • Field Sales
    • On-Demand Apps Development
  • Technologies
    • iOS
    • Android
    • React Native
    • Flutter
    • Ionic
    • Xamarin
    • NativeScript
    • HTML5
    • Sencha
  • Industries
    • Retail
    • Agriculture
    • Healthcare
    • Pharmaceutical
    • Manufacturing
    • Automotive
    • Logistics
    • Education

US Office

Belmont, California – 1301 Shoreway Road, Suite 160, Belmont, CA 94002

Pleasanton, California – 6701 Koll Center Parkway, #250 Pleasanton, CA 94566

Tel: +1 408 365 4638
Support: +1 (408) 512 1812

Mexico Office

Amado Nervo #2200, Edificio Esfera 1 piso 4, Col. Jardines del Sol, CP. 45050, Zapopan, Jalisco, Mexico

Bulgaria Office

49 Bacho Kiro Street, Sofia, 1000, Bulgaria

Canada Office​

895 Don Mills Road, Two Morneau Shepell Centre, Suite 900, Toronto, Ontario, M3C 1W3, Canada

UK Office

Export House, Cawsey Way, Woking Surrey, GU21 6QX

Tel: +44 (0) 14 8361 6611

UAE Office

Dubai, UAE – Dubai Internet City, 1st Floor, Building Number 12, Premises ED 29, Dubai, UAE

Tel: +971-55-6540154
Tel: +971-04-2505173

Pakistan Office

Folio3 Tower, Plot 26, Block B, SMCH Society, Main Shahrah-e-Faisal, Karachi.

First Floor, Blue Mall 8-R, MM Alam Road Gulberg III, Lahore.

Tel: +92-21-3432 3721-4 

© 2025, Folio3 Software Inc., All rights reserved.

  • Privacy policy and terms of use
  • Cookie Policy
Follow us on
Facebook-f Linkedin-in Instagram

Get a free app audit

[contact-form-7 id="3548" title="Float Banner Form"]