Play Store app size

Kamil Szymkowski
Unpacking React Native
4 min readDec 6, 2019

Guidelines relating to the size of apps deployed to the Google Play Store.

HIGHLIGHTS:

  • You should upload your app as .ABB rather than .APK
  • The app size limit for .ABBs is 150MB
  • APK file size limit is 100MB
  • You should aim at delivering multiple versions of the app to support varying device specs (most importantly, to account for varying display picture densities that call for different assets).
  • When publishing your app as .ABB you might want take advantage of the Dynamic Delivery as a walk-around the 150MB limit.
  • When publishing your app as .APK you might want take advantage of the Extension Files as a walk-around the 100MB limit.
  • ABBs are about different assets but also different architectures (32 v 64).

Additionally, you might want to keep the app’s size as small as possible due to:

  • Users around the world have varying mobile data connectivity speeds. Users on a slow connection are less likely to install an app or game that is going to take a long time to download.
  • Mobile data caps: Many mobile networks around the world give users a limited number of MB that they can download each month without incurring additional charges. Users are often wary of downloading large files for fear of exceeding their limits.
  • App performance: Mobile devices have limited RAM and storage space. The larger your app or game, the slower it may run, particularly on older devices.
  • Install time: People want to start using your app or game as quickly as possible after tapping the install button. Longer wait times increase the risk they’ll give up.

Android Package File (.apk)

APK files are used for Android app distribution. APK are archive files compressed using ZIP compression. Android packages contain all the necessary files for a single Android program. Below is a list of the most prominent files and folders:

  • META-INF/: Contains the manifest file, signature, and a list of resources in the archive
  • lib/: Native libraries that run on specific device architectures (armeabi-v7a, x86, etc.)
  • resources.arsc: The compiled resources, such as strings, used by the app
  • res/: Resources, such as images, that were not compiled into resources.arsc
  • assets/: Raw resource files that developers bundle with the app
  • AndroidManifest.xml: Describes the name, version, and contents of the APK file
  • classes.dex: (compiled byte code files called Dalvik executables) the compiled Java classes to be run on the device.

APK Expansion Files

Google Play allows you to attach two large expansion files that supplement your APK. You have the option to add one or two expansion files to the APK. Each file can be up to 2GB and it can be any format you choose, but we recommend you use a compressed file to conserve bandwidth during the download. Conceptually, each expansion file plays a different role:

  • The main expansion file is the primary expansion file for additional resources required by your app.
  • The patch expansion file is optional and intended for small updates to the main expansion file.

Android App Bundle (.aab)

An Android App Bundle is a new upload format that includes all your app’s compiled code and resources, but defers APK generation and signing to Google Play.

Dynamic Delivery

Google Play’s new app serving model, called Dynamic Delivery, then uses your app bundle to generate and serve optimized APKs for each user’s device configuration, so they download only the code and resources they need to run your app. You no longer have to build, sign, and manage multiple APKs to support different devices, and users get smaller, more optimized downloads.

Additionally, you can add dynamic feature modules to your app project and include them in your app bundle. These modules contain features and assets that you can decide not to include when users first download and install your app. Using the Play Core Library, your app can later request to download those modules as dynamic feature APKs, and, through Dynamic Delivery, Google Play serves only the code and resources for that module to the device.

❕ Android App Bundles do not support APK expansion (*.obb) files.

--

--