Android-aab格式 App Bundle初体验

App Bundle是什么?

android包在googlePlay 一种新的上传分发格式,以前是apk,现在可以传.aab
通过使用App Bundle可以有效的减少应用包的大小,提升安装成功率并减少卸载量。
它是不能直接安装的,我们可以借助googlePlay完成下载安装,也可以使用BundleTool工具生成符合用户设备的apk并且部署到设备上。

App Bundle优势是什么?

资源选择性加载
把一个app分割成多个apk,但是不用上传多个apk只需上传一个.aab,googlePlay会完全处理好,为用户合理的分发apk
比如:多语言、屏幕、abi等做不同适配的app,使用App Bundle,用户只会收到跟自己设备相关apk比如:中文+720+arm64
在这里插入图片描述

通过BundleTool进行测试

1. 生成.aab

Build→Build Bundle(s)/ APK→Build Bundle(s)
Build→Generate Sigend Bundle Apk →Android App Bundle

2. 通过BundleTool build-apks进行测试App bundle

BundleTool下载地址

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

INFO: The APKs will be signed with the debug keystore found at
‘C:\Users\DELL.android\debug.keystore’.

默认情况下会使用系统默认的签名,我们也可以自己指定签名信息

java -jar bundletool.jar build-apks --bundle=app-debug.aab --output=app.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,validateversion。使用bundletool help可以获取有关命令的详细信息

执行命令会得到xx.apks文件
在这里插入图片描述
它其实就是一个压缩文件,查看文件结构,分为两个目录splitsstandalones
在这里插入图片描述
splits目录:是对各个module的在资源上的纬度,abi纬度和Language纬度的拆分

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

appbundle split分包策略可以通android.bundle的dsl定义进行配置,主要分为3个纬度,配置如下:

android{
   bundle {
        abi {
            enableSplit = true
        }
        density {
            enableSplit = true
        }

        language {
            //标识语言不进行分包处理
            enableSplit = false
        }
    }
}

3. install-apks部署安装

java -jar bundletool.jar install-apks --apks=app.apks

The APKs have been extracted in the directory: C:\Users\DELL\AppData\Local\Temp\3560633892030987380

已经将apk部署到我们的设备上了(这里路径不对,应该是设备路径)

我们用过命令查看安装了那些apk

adb shell pm path packageName

在这里插入图片描述

4. 导出已安装的apk

adb pull /data/app/cn.xxstudy.storage-w0mdHfT4RaJEHuIkyyvATA==/base.apk 输出路径

5. 生成全量APK

bundletool只生成一个包含应用的所有代码和资源的apk,以使该apk与应用支持的所有设备配置兼容,使用universal参数

java -jar bundletool.jar 

下一篇:按需下载相应模块-Dynamic Feature Module

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吴唐人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值