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:
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]
Extension Details | |
---|---|
Android Package | |
MIME Type | |
application/vnd.android.package-archive | |
Open APK File with | |
Google Android WinZip WinRAR |
Japanese Translation
Spanish Translation
French Translation
German Translation