简介
在今年的谷歌输入输出会议上,谷歌向安卓系统引入了一个新的应用动态框架(安卓应用捆绑包,缩写为AAB)。谷歌给出了定义:安卓应用捆绑包是一种新的上传格式,包括您应用的所有编译代码和资源,但维护apk生成和登录谷歌播放。
与即时应用不同,AAB通过Split Apk完成动态加载,采用AAB动态分发模式,可以大大减少应用量。现在,你只需要在Android Studio中构建一个app bundle,就可以覆盖应用所需的所有内容(适用于所有设备):所有语言、所有设备屏幕尺寸、所有硬件架构。
原理
Android App Bundles是Google定义的一种全新的应用发布和更新模式。它可以大大减少用户下载的apk包的大小,因为这是一种必需的安装方法。
结合Google Play动态交付实现动态功能。
Android App Bundle支持模块化。通过带分裂apk的动态交付(Dynamic Delivery),将一个apk分裂成多个apk,按需加载(包括加载C/C++库),开发人员可以随时按需交付功能,而不仅仅是在安装期间。
基地装甲运兵车
第一次安装Apk,常用代码和资源,所以其他模块都是基于Base Apk的
配置装甲运兵车
适应当前手机屏幕分辨率的本机库和资源
动态特征装甲运兵车
第一次安装时不需要加载的模块
安卓应用捆绑包
AAB不是一个插件框架,它使用Android Framework提供的split apk技术,安装split apk的所有工作都由google play通过IPC完成。
首先,我们需要构建(构建->:构建捆绑包)/APK->;构建捆绑包)一个应用捆绑包(3.2或更高版本),然后在主项目的构建目录下生成一个捆绑包. aab文件。文件bundle.aab包含了上面提到的Base Apk、Configuration APKs、Dynamic feature APKs的所有代码、资源文件等等,还配置了文件BundleConfig.pb,谷歌play用它来拆分Apk,拆分后的Apk如上图所示。如果需要在google play上支持动态发布,只需要上传aab文件,后续工作由google play完成。
你可以看到bundle.aab提取的文件中的base和dynamic_feature,以及google play用于拆分apk的配置文件BundleConfig.pb。
我们项目中的一些模块可能不需要在第一次安装时加载,我们可以将它们放在动态功能模块中。
应注意这两个检查条件:
启用按需:是否支持按需下载模式。如果没有,则在安装应用程序时安装该功能。
Fusing:如果应用运行在Android 5.0以下(不包括5.0),勾选Fusing表示该功能将打包在完整的apk中。
这两个检查条件决定了安装该功能时的模式。需要注意第二种检查条件,可以根据自身的工程兼容性进行配置。
1.《androidbundle Android App Bundles浅析》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《androidbundle Android App Bundles浅析》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/jiaoyu/1547186.html