Open APK File

Information, tips and instructions

How to Open APK File

Android operating system supports multiple CPU platforms with different instruction sets. In order to provide support for each instruction set and CPU combination Android operating system has a mechanism called Application Binary Interface or ABI. ABI provides a mechanism for an application to interact with hardware platform without knowing specifics of hardware and specific instructions it supports.

Application can support multiple ABIs by providing a subfolder in the APK file with a code compiled for ABI.

Below is a list of supported ABIs:

  • armeabi located in /lib/armeabi folder
  • armeabi-v7a located in /lib/armeabi-v7a folder
  • arm64-v8a located in /lib/arm64-v8a folder
  • x86 located in /lib/x86 folder
  • x86_64 located in /lib/x86_64 folder

ABIs which are supported by an application are stored in a “lib” folder within a root folder of the APK file.

By default Android NDK compiles code for all possible ABIs. But it is also possible to compile only for specific ABIs if you know that your application is not going to be executed on certain platforms. If you generate all ABIs within a single APK file it will be called a fat APK. Fat APK typically has significantly larger size than APK with only a single ABI. Thus there is a trade of on whether you generate a fat APK with all ABIs and wider platform support or a smaller APK with just one platform support. A good solution when you want to have a smaller APK file and still support multiple platforms is to use a split APK. In this case ABIs are split between multiple APK files which are distributed to different platforms. Google Play Store allows assigning APK files for individual platforms and distributing them correspondingly.

In case of split APK file would be named in a following format:

[modulename-screendensityABI-buildvariant.apk]