Gradle Plugin 3.2 or higher Upload format on Google Play Store › Google Play converts optimized “Split Apk” for devices by configuration and dynamic features › Cannot installable on devices
Gradle Plugin 3.2 or higher Inconvenient use for in-house distribution › LINE Android team uses “Universal APK” to distribute in-house Upload format on Google Play Store › Google Play converts optimized “Split Apk” for devices by configuration and dynamic features › Cannot installable on devices
distribution. › Can distribute installable with single file. Pros Cons › Cannot determine real distribution size. › Minor settings can be differ with real distribution › ABI › Compression Level
distribution. › Can distribute installable with single file. Pros Cons › Cannot determine real distribution size. › Minor settings can be differ with real distribution › ABI › Compression Level How to build universal apk (without bundletool) › $ ./gradlew :app:packageDebugUniversalApk › $ ls app/build/outputs/universal_apk/debug › app-debug-universal.apk
Apk on In-House repository for Pre-QA, QA team › Deploy AppBundle on Google Play for Dogfooding, Alpha and Production Release Pipeline Pull Request Checkers › App packaging : Universal App, AppBundle › UnitTest based Robolectric › Code formatter / Lint Checker › Etc…
Cannot perform robolectric tests for Dynamic Feature by ClassLoader failure > Task :dynamicfeature:testDebugUnitTest FAILED com.bugexample.dynamicfeature.FeatureModuleDataHelperTest > Fails at runtime with NoClassDefFoundError when running testDebugUnitTest FAILED java.lang.NoClassDefFoundError at FeatureModuleDataHelperTest.kt:11 Caused by: java.lang.ClassNotFoundException at FeatureModuleDataHelperTest.kt:11 › https://issuetracker.google.com/issues/123441249
Cannot perform robolectric tests for Dynamic Feature by ClassLoader failure > Task :dynamicfeature:testDebugUnitTest FAILED com.bugexample.dynamicfeature.FeatureModuleDataHelperTest > Fails at runtime with NoClassDefFoundError when running testDebugUnitTest FAILED java.lang.NoClassDefFoundError at FeatureModuleDataHelperTest.kt:11 Caused by: java.lang.ClassNotFoundException at FeatureModuleDataHelperTest.kt:11 › https://issuetracker.google.com/issues/123441249
give ⭐ › If there is no issue you have, please submit and share. › There are several bugs related with AppBundle in build tools. › CI System has a variety of requirements that Google did not expect.
give ⭐ › If there is no issue you have, please submit and share. › Collaborate with Googler to fix bugs › Provide MWE(Minimal Working Example) › Also most source codes of AGP are opened, and we can find out the cause of the problem. › There are several bugs related with AppBundle in build tools. › CI System has a variety of requirements that Google did not expect.
Android App Bundles : https://d.android.com/guide/app-bundle › bundletool : https://d.android.com/studio/command-line/bundletool › Best Practices for a modularized app with dynamic features by Leo Chu
Android App Bundles : https://d.android.com/guide/app-bundle › bundletool : https://d.android.com/studio/command-line/bundletool › AOSP Issue tracker › appbundle › Android Gradle Plugin › Best Practices for a modularized app with dynamic features by Leo Chu