Android application package
lastmod 2021-07-05created 2015-06-257 edits
An Android application package (APK) is the package file format used to distribute Android software and middleware, with the '.apk' extension. APK files are similar to other software installation files such as MSI packages in Windows or deb packages in Debian-based operating systems like Ubuntu. To make an APK file, an Android program is first compiled, and then all its files are gathered into a single package file. An APK file contains all of the program's code, along with resources, information, certificates, the manifest file, and so on.
Google ends support for the APK format and switches to AAB
Summary
- Starting in August, new apps released on the Play Store must be submitted as Android App Bundles (AAB)
- Existing APK apps can stay as they are
- AAB is 15% smaller than APK
- Finer control over how updates are distributed allows fast and efficient updates
- To publish on other stores such as the Amazon Appstore, you have to Export an APK version manually
- To Export an AAB as an APK, you have to give Google your App Signing Key
Another comment
This can be misleading. aab is the format for submitting to the google play store. When actually downloading to a device, you still get an apk. (Technically, it is a piece of an apk called a split apk.)
Also, the build tool (Android Gradle Plugin) provides a way to generate an apk alongside the aab (universal apk).
And the real problem with aab is that Google signs the app on your behalf. The problem is that this leaves room for Google to tamper with the app at will.
In fact, services like firebase testlab and google play pre-test tamper with the app code, collect various information about how the app runs, and then give you a report.
These concerns are well explained in the posts below.
- Why Google Play’s APK replacement is scaring some security experts
- Initial Thoughts on Code Transparency