为了账号安全,请及时绑定邮箱和手机立即绑定

【备战春招】第3天 AppBundle文件结构分析

程名称:移动端架构师


课程章节:新一代组件化动态化方案App Bundle


课程讲师:CrazyCodeBoy LovelyChubby


课程内容:



尝鲜需要的环境

  • 需要as3.2 canary14+ 以及gralde3.2+才能使用buildBundle工具

  • 现有的项目生成splitAPKs可以自动生成。但是如果要实现某些功能模块动态下发,按需加载就要新建dynamic feature module模块, 把独立业务(直播,小游戏)所有资源,逻辑放到该模块中



启用按需加载功能需要我们在base module中集成Play Core Library

用户在Google Play下载一个通过Android App Bundle 方式开发的应用时,只会下载base module对应的apk文件,

Dynamic Feature Module对应的apk文件会在运行时按需下载。

Play Core Library用来在App运行时请求下载Dynamic Feature Module对应的apk

implementation ‘com.google.android.play:core:1.3.4’


https://img4.sycdn.imooc.com/63e599740001ae7219200942.jpg


Bundletool工具 下载地址:https://github.com/google/bundletool

bundletool工具是一个jar包,通过android studio 的build bundle功能生成aab格式文件,我们必须通过 Google Play才能生成符合我设备的可安装的APK。

Bundletool 是一个用于处理 Android App Bundle 的命令行工具。使用 bundletool,可以构建 Android App Bundle,提取连接的设备配置,生成 APK应用集 (.apks),从 APK应用集文件中提取或安装 APK,以及验证应用。由于 Android App Bundle 仅是一种发布格式,因此 bundletool 用于生成和测试 APK。Google Play 和 IDE 使用的也是相同的工具,而且它是开源的。


生成.apks应用集指令

java -jar bundletool.jar build-apks --bundle=app.aab --output=out.apks

--ks=as_key_store

--ks-pass=pass:123456

--ks-key-alias=key0

bundletool 接受的所有命令:build-bundle,build-apks,extract-apks,get-device-spec,install-apks,validate 和 version。使用 bundletool help 可以获取有关命令的详细信息,例如标识符和其他选项。

查看一下out.apks的文件解结构,分为两个目录splits和standalones

5f9d01e90934d2dd11920866.jpg


splits目录: 可以看出splits就是对各个moudle的在资源维度,ABI维度和Language维度的拆分。

standalones目录:

因为对于api小于21的android手机是不支持多apk的模式安装的,同时也不支持按需加载,所以对于该类型的手机要生成一个APK,当然也在维度进行了拆分。每个包的大小就是全量包大小


appbundle spilt分包策略,可以通过android.bundle的dsl定义进行配置,主要有三个维度,abi, density和language,配置如下:



android {

    bundle {

        abi {

            enableSplit = true

        }

        density {

            enableSplit = true

        }

        language {

            enableSplit = false

        }

    }

}




课程收获:

学会了如何在AndroidStudio中使用AppBundle,使用AppBundle打包后的文件在哪里以及文件结构,.pb文件代码什么意思。

期待后面的继续学习

https://img1.sycdn.imooc.com/63e59d6100019e8b14730895.jpg
















点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消