Android App Bundle

Android App Bundle

很好理解:Google 官方的插件化呗。Android App Bundle = Apk 动态打包,动态组件化的技术,与 Instant App 不同,AAB 是借助 Split Apk 完成动态加载,使用AAB动态下发方式,可以大幅度减少应用体积,总结下特性,就是2个:


资源选择性加载

怎么理解这个 资源选择性加载 呢,大家先个图:

 

android 因为要适配各种不同硬件和配置,我们有不同 dp 密度的图片文件,语言文件,不同指令集的 so 等,现在 Android App Bundle 来了可以优化这个问题,当然只限于 GooglePlay,在 google 市场我们下载 apk 时,市场先会检测我们手机的特性,然后选择最合适的资源打成 apk 再发给我们,比如我的手机只需要 arm-v7 的 so,hdpi 的图片,剩下的不会下发我们,这样可以大幅度减少 apk 的体积,尤其是对于 so 来说,一个高德地图,不同的 so 包加起来有小 10M 了,这比我们之前自己干的 apk 优化压缩可强多了,不愧是Google 大大,一出手就是神器,可惜啊,Google 服务国内用不了,不知道后续国内会不会跟进


动态下发库

这个可就是太 N 了,插件化实现的目标不就是解决动态性的问题吗,之前看 ios,google 封杀国内的插件化和热修复我还悲观了一阵,但是看到 Android App Bundle 后我们还是有些窃喜的,国内的也努力不是白费的,Google 这不就承认了国人的努力嘛

App Bundles 将一个 apk 拆分成多个 apk,我们的 apk 一般会被拆分为如下几个部分:

  • Base Apk:首次 安装的apk,公共代码和资源,所以其他的模块都基于Base Apk;
  • Configuration APKs:native libraries 和适配当前手机屏幕分辨率的资源;
  • Dynamic feature APKs:不需要在首次安装就加载的模块。

当然啊注意 AAB 并不是一个插件化框架,它利用的是 Android Framework 提供的 split apks 技术来完成的,而所有安装 split apk 工作均是通过 IPC 交由 google play 完成,而不是国内插件化技术的反射代理 hook, 想了解更多关于split apks的内容,请看 官方文档

另外一点 Android App Bundle 很像阿里的动态化容器框架 Quinox,Quinox 里每个动态部署的库也叫 Bundle,不说这块是不是有什么 PY 交易在里面呢,Quinox 目前没有开源,应该是阿里插件化 Atlas 的进化,详情请看:支付宝客户端架构解析:Android 容器化框架初探

需要 Android Studio 升级为 3.2 及其以上版本,以添加对 Dynamic Delivery 的支持,会把 base app 构建出构建成 .aab 文件

 

Android App Bundle 与 APK 不同,App Bundle 纯粹是为了上传文件而设计的,用户无法直接安装和使用它,.aab 只是一个 zip 文件,Google Play 从中生成优化的 APK 并将其提供给设备进行安装。可以考哪考哪 .abb 中的内容:

 

然后新的可动态部署的库会以 apk 的形式添加进来,具体请看 google 官方号:如何获得更小的应用文件尺寸?来了解下 Android App Bundle

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值