The short answer
An APK is what gets installed on a phone. An AAB is what you upload to Google Play. Google Play takes your AAB and turns it into APKs tailored to each device.
Side by side
| APK | AAB | |
|---|---|---|
| File extension | .apk | .aab |
| Installs directly on a device | Yes | No. Google Play generates APKs from it |
| New apps on Google Play | Not accepted | Required since August 2021 |
| What users download | Everything, for every device | Only what their device needs |
| Signing | You sign it with your key | You sign the upload; Google Play signs what it delivers |
| Best for | Sideloading and quick tests | Publishing on Google Play |
Why Google switched to app bundles
A single APK for every phone has to carry resources for every screen density, CPU architecture and language. An app bundle lets Google Play deliver only what each device needs, so downloads get smaller. Since August 2021, new apps on Google Play must be published as app bundles.
How to get an APK from an AAB
For testing outside Google Play, Google’s open-source bundletool turns an app bundle into APKs:
java -jar bundletool.jar build-apks \
--bundle=app.aab \
--output=app.apks \
--mode=universalThe result is an .apks archive with a universal APK inside that you can install for testing. On Google Play, the internal testing track is the easiest way to put your real release on your own devices.
Which one should you build?
If your app is going to Google Play, build an AAB: it is the only format Play accepts for new apps. HTML to AAB is built around exactly that: it turns your website, HTML or React build into an app bundle ready for Play Console.
Frequently asked questions
Is AAB better than APK?
For publishing on Google Play, yes: it is required for new apps and gives your users smaller downloads. The APK is still the format that actually gets installed on a device.
Can I upload an APK to Google Play?
Not for a new app. Google Play requires new apps to be published as Android App Bundles.
Can I convert an AAB to an APK?
Yes, for testing: use bundletool’s build-apks command. Google Play does the same conversion automatically for your users.


