D
DevOps & CI/CDEasy20 XP3 min read

What is the difference between APK and App Bundle in Flutter?

TL;DR: APK is a complete, self-contained installable package. App Bundle (.aab) is a publishing format — Google Play splits it into device-specific APKs, reducing download size by 20-40% for end users.

Full Answer

AspectAPKApp Bundle (AAB)
InstallableYes — directly on deviceNo — compiled by Google Play
SizeContains all ABIs + resourcesGoogle Play delivers only needed assets
DistributionDirect download, third-party storesGoogle Play only
Flutter commandflutter build apkflutter build appbundle
RecommendedTesting, side-loadingGoogle Play production releases
🎯

Google Play has required App Bundles for new apps since August 2021. Use flutter build appbundle for all production Play Store releases.

Code Examples

bashBuilding APK and App Bundle
Output
// AAB: ~20-40% smaller downloads vs universal APK
// --split-per-abi: separate APKs per CPU architecture

Common Mistakes

  • Uploading a universal APK to Google Play instead of an AAB — rejected since 2023 for new apps
  • Not using --split-per-abi for APK testing — a universal APK is unnecessarily large

Interview Tip

💡

Mention that --obfuscate + --split-debug-info is critical for production releases. Without it, stack traces in Firebase Crashlytics are readable but so is your code logic.

#app-bundle#aab#apk#google-play#split-apk