Most of the App in App store shelves or to optimize a shrink package developer may know, on the Android platform, optimization methods are actually APK thin body, compression, delete unused resources, code nothing but confusion, online database, WeChat compression packing tools, plug-ins, such as more than some cut cut cut, It does not fundamentally solve the problem of large installation packages.
But after Google I/O 2018, this issue may not be a problem for developers anymore, as Google has officially released an artifact for building and publishing APK: artifact Android App Bundles literally stand for “App Bundles”.
As a matter of fact, when I first started learning about App Bundles, I heard the official “gab” introduction (Youtube has the introduction video), and especially when I learned about the limitations, such as the need to be included in Google’s test program, version limits (5.0 +), Having to register your App on the Google Store’s Play Console and only distribute it through Google Play is something I hate, because It’s not unheard of for Google.
However, when I really dig into Android App Bundles and their companion Delivery mechanism, Dynamic Delivery, I’m still saying “Googly Dad”.
In fact, the above restrictions are not a problem in the long term. First of all, Android apps above 5.0 support App Bundles and Dynamic Delivery, and the application volume is greatly reduced. For versions below 5.0, Google also has corresponding methods to reduce the volume. It’s just not that effective. Second, for developers targeting the domestic market, given the robust Android ecosystem in China, it’s likely that there will soon be similar mechanisms in the major app stores, so knowing in advance will be of great benefit.
Android App Bundles
The Android App Bundle is a new form of App compilation, upload, and distribution that includes all compiled code, resources (such as images, languages, string resources, etc.), screen size, hardware architecture, and more in the developer’s App. For apps published in this format, the package size that users see in the app store is minimized. App Bundle needs to be used together with Dynamic Delivery. The principles are described in the following sections.
Dynamic Delivery
Dynamic delivery is a new App service module provided by Google Play, which can be used in conjunction with app Bundle to generate and provide optimized APK for different users’ devices. Users can then download only the code and resources they need to run the App. Instead of developers having to compile, sign, and manage different APKs for multiple devices, users can download smaller, optimized APKs.
For example, a user of Google’s Pixel 2L phone in an English speaking country only needs to download the basic code, xxXHDPI resources, EN language pack, ARM64 hardware architecture, etc., and no other unnecessary resources are needed.
General APK release process:
App Bundle + Dynamic Delivery
The capabilities of dynamic delivery go beyond that. Developers can add dynamic functional modules to their application projects, which are included in the App Bundle. These modules contain features and resources that users do not need to download and install the application for the first time. After integrating the Play Core Library SDK, we can later ask users to install these dynamic functionality modules. With dynamic delivery, Google Play only provides the code and resources needed for the device (a language, a resolution, an ABI).
For apps developed using Android Studio, most projects can easily support dynamic delivery and build App bundles. However, dynamic functional modules are still being tested, and application refactoring may be required to support this feature.
Limited by space, this article only introduces the mechanism and principle of application bundle and dynamic delivery. If more friends pay attention to and like this technology, I will continue to analyze its implementation, compatibility problems and translation of relevant documents in the following articles.
You can also learn more at the following link:
Google Android Developer