APK vs AAB: What Is an Android App Bundle and Which One Do You Analyze?
An APK is the file that installs an app on an Android phone. An AAB, or Android App Bundle, is the format developers upload to Google Play, which then builds optimized APKs for each device. You install APKs; you cannot install an AAB directly.
- APK = the installable package on a device. AAB = the publishing format a developer uploads to Google Play.
- Google Play uses a bundle to generate and serve optimized APKs for each device configuration, so each user downloads only what their device needs.[1]
- That is why one app can be installed as several "split" APKs on your phone.
- To inspect an app yourself, analyze an APK. bundletool can turn a bundle into APKs if you have the bundle.[2]
What an APK is
An APK (Android Package) is a ZIP archive that contains an app's compiled code, resources, native libraries, manifest and signature. Opening one on a phone installs the app, which is how sideloading works. Our guide to analyzing an APK lists what is inside.
What an AAB is
An Android App Bundle is a publishing format. A developer builds one bundle containing all the code and resources for every device type and uploads it to Google Play, which defers APK generation and signing to Play.[1] Google Play then uses the bundle to generate and serve optimized APKs for each device configuration, so only the code and resources needed for a specific device are downloaded.[1]
For most apps, Android's FAQ says building a bundle is about the same effort as building an APK, since it mostly means choosing the bundle format at build time.[3]
APK and AAB side by side
| APK | AAB (App Bundle) | |
|---|---|---|
| Purpose | Install an app on a device | Publish an app to a store |
| Installable directly? | Yes | No |
| Contains | One device's worth of code and resources | Everything, for all device configurations |
| Who creates the final device APK | The developer, or the build tool | Google Play, per device |
| What you can analyze | Yes, with App Checker and the tools in our guide | Convert it first |
Why apps are often several APKs
Because Play builds device-specific APKs from a bundle, an installed app is often a base APK plus extra split APKs for your screen density, CPU architecture or language. The base APK holds the manifest and main code, so that is the file to analyze first. When you copy an app off a device with ADB, list every file the package manager reports and pull each one.
Who signs what
With a bundle, the developer signs the upload with an upload key, and Google Play signs the final APKs delivered to users with the app signing key.[4] That is why the certificate on a Play-installed APK belongs to Google Play's signing arrangement rather than the developer's upload key. Our guide to how Android app signing works explains how to read it.
Which one should you analyze?
- You have an installed app: pull its APK files from the device and analyze the base APK.
- You have a developer's AAB: use bundletool, which can convert an app bundle into the various APKs that are deployed to devices,[2] then analyze the result.
- You only want a quick check: search the app in App Checker to see its Play Store permissions without any file.
App Checker's analyzer accepts .apk files only.
Frequently asked questions
What is the difference between an APK and an AAB?
An APK is the installable package that runs on a device. An AAB is the publishing format a developer uploads to Google Play, which uses it to generate optimized APKs for each device.
Can I install an AAB file on my phone?
Not directly. An app bundle is a publishing format. You can use bundletool to convert it into APKs and then install those, or let Google Play do that for you.
Why does Google Play use app bundles?
So users download only the code and resources their device needs, which makes downloads smaller, and so developers do not have to build and manage multiple APKs themselves.
What is a split APK?
A split APK is one of several APK files that together make up an installed app: a base APK plus extra splits for things like screen density, CPU architecture or language.
Which file contains the manifest?
The base APK contains the AndroidManifest.xml. Split APKs carry resources and libraries for specific device configurations.
Is an APK from outside Google Play the same as the Play version?
Not necessarily. Play serves device-specific APKs signed under Play's signing arrangement, while a file from another source may be a different build or a repackaged one. Compare signing certificates to be sure.
Can App Checker analyze an AAB?
No. The analyzer expects an APK. If you only have a bundle, convert it to APKs with bundletool first, or analyze the APK installed on a device.
What is bundletool?
bundletool is the tool that Android Studio, the Android Gradle plugin and Google Play use to build app bundles. It can also convert a bundle into the APKs deployed to devices.
Do AABs change how secure an app is?
The format itself does not decide security, but the signing arrangement matters: with Play App Signing, Google holds the app signing key and the developer keeps an upload key that Google can reset if it is lost.
- About Android App Bundles — Android Developers — Play generates and serves optimized APKs per device and handles signing.
- bundletool — Android Developers — converting app bundles into APKs.
- Android App Bundle FAQ — Android Developers — effort to build a bundle versus an APK.
- Use Play App Signing — Play Console Help — upload key versus app signing key.