乐趣区

关于android:Android-打包成AAB格式

Android 打包成 AAB 格局

一:前言
Google Play 要求八月份起新利用须打包为 AAB 格局,开发者上传打包文件整合成 aab 格局,依据不同的处理器 / 分辨率等下载对应的安装包,缩小冗余,所以安装包会减小。
二:Android App Bundle(AAB)
Android App Bundle 是一种公布格局,其中蕴含您利用的所有通过编译的代码和资源,它会将 APK 生成及签名交由 Google Play 来实现。
应用 Android App Bundle 公布利用可帮忙用户以尽可能最小的下载大小装置您的利用,并将压缩下载大小下限进步到 150MB。也就是说,当用户下载您的利用时,装置利用所需的压缩 APK(例如,根本 APK + 配置 APK)的总大小不得超过 150 MB。任何后续下载内容(如按需下载功能模块(及其配置 APK))也必须满足此压缩下载大小限度。Asset Pack 不受此大小限度,但它们有其余大小限度。上传 app bundle 时,如果 Play 管理中心发现您的利用或其按需性能的可能下载大小超过 150MB




从上图能够看出 App Bundles 文件格式,它蕴含 Base Moudle 和咱们拆分的 Feature Module 文件夹,签名文件和其余的配置文件。每个 Moudle 文件夹内蕴含 dex,manifest,res,和一个 resources.pb 文件。和 APK 的文件构造根本保持一致。base module 和每个 Dynamic Feature Module 都蕴含各自的代码和资源,它们独特组成了 apk 文件的内容。
Google Play 就是基于对 aab 文件解决,将 App Bundle 在多个维度进行拆分,在资源维度,ABI 维度和 Language 维度进行了拆分,你只有按需组装你的 Apk 而后装置即可。如果你的手机是一个 x86,xhdpi 的手机,你在 google play 利用市场下载 apk 时,gogle play 会获取手机的信息,而后依据 App Bundle 会帮你拼装好一个 apk,这个 apk 的资源只有 xhdpi 的,而且 so 库只有 x86,其余无关的都会剔除。从而缩小了 apk 的大小。
动静交付(Google Play Dynamic Delivery)

通过 Android App bundle 能够基于维度的抉择缩小 apk 大小,另外 Google Play 还提供了动静交付性能。Android App Bundle 反对模块化,通过 Dynamic Delivery with split APKs,将一个 apk 拆分成多个 apk,按需加载(包含加载 C /C++ libraries)。上面是 split APK 的几种类型:

Base Apk(根本 apk): 此 APK 中蕴含了所有其余拆分 APK 都能够拜访的代码和资源,并提供利用的基本功能。当用户申请下载您的利用时,会首先下载并装置该 APK。
Configuration APKs
native libraries 和适配以后手机屏幕分辨率的资源
Dynamic feature APKs(上图中的 aab 文件中的 Car.apk)
每个动静性能 APK 都蕴含您利用中的某项性能的代码和资源,并且您应用动静功能模块对相应性能进行了模块化解决。
我通过 Bulid -Build Bunde 生成的.aab 格局的

结尾:盲人摸象

退出移动版