一、概述
bundletool是一种底层工具,可供 Android Studio、Android Gradle 插件和 Google Play 用于构建 Android App Bundle 文件并将 app bundle 转换为部署到设备的各种 APK。您也可以将 bundletool作为一种命令行工具,用于自行构建 app bundle 和重新创建应用 APK 的 Google Play 服务器端 build。
2021年8月开始Google Play要求新发布应用必须使用Android App Bundle(AAB)格式,即.aab格式文件;更新已经上架的应用还可以继续使用apk格式文件上传
注意:Android App Bundle (AAB) 与 APK 不同,AAB纯粹是为了上传Google Play而设计的,用户无法直接使用安装到手机上,测试AAB文件参考章节手机安装使用AAB格式文件
二、下载与配置
bundletool Github 下载地址:https://github.com/google/bundletool
快速下载地址:https://download.csdn.net/download/qq_43375080/86240276
三、手机安装使用AAB格式文件
可以参考Google官方文档:https://developer.android.com/studio/command-line/bundletool
注意:Google官方文档需要科学上网才能打开
先下载最新的bundletool.jar,配置好java环境,aab生成apks,然后apks安装到手机
- 准备环境
使用bundletool工具需要java环境,建议使用JRE8环境,请自行下载安装,并配置好系统环境变量 - 下载bundletool.jar包
下载地址:https://github.com/google/bundletool/releases - 使用cmd命令将aab文件转换为apks文件
命令格式参考如下:
java -jar <bundletool.jar的路径> build-apks --bundle=<.aab文件的路径> --output=<输出.apks的路径> --ks=<打包使用的证书文件的路径> --ks-pass=pass:<证书密码> --ks-key-alias=<证书别名> --key-pass=pass:<证书别名密码,通常与证书密码一致>
- 将前面下载的bundletool-all-1.6.0.jar、云端打包生成的myapp.aab、证书文件my.keystore(证书别名为test、密码为123456)放到同一目录,在命令行中切换到当前目录,使用以下命令生成myapp.apks
java -jar bundletool-all-1.6.0.jar build-apks --bundle=myapp.aab --output=myapp.apks --ks=my.keystore --ks-pass=pass:123456 --ks-key-alias=test --key-pass=pass:123456
注意:生成apks文件会非常大,但安装到手机上占用空间会比原来apk格式文件小(这是因为只安装当前设备需要的资源)。另外可以在命令行中添加–connected-device参数来生成仅针对当前连接设备的apks文件,减少apks文件大小
- 使用cmd命令安装apks文件到手机上
命令格式参考如下:
java -jar <bundletool.jar的路径> install-apks --apks=<上一步中生成的.apks文件路径>
注意:安装apks需要当前环境存的adb可以运行,建议安装Android SDK工具