Google Play上架:上传应用强制要求Android App Bundle (AAB) 格式

公司最近打算推出海外业务的APP上架谷歌商店,由我来预研下相关上架准备工作事项。根据Google Play的要求,2021年8月开始新发布应用必须使用Android App Bundle(AAB)格式,即.aab格式文件,新上架App不再支持apk格式。

aab概述:

Android App Bundle是Google在2018年推出的Apk动态组件化打包技术,通过AAB格式的App
Bundle文件为你的设备动态组装apk来安装。其本质就是把Apk拆分成了多个模块,之前是把一个大而全的apk装到你手机里面,但是你其实用不到这么多东西,把暂时不需要的东西拿出来,这样就会节省很多的资源空间。除了效率和模块化之外,Android
App Bundle现在还通过为新安装推出应用程序签名密钥升级提供更高的安全性。

如何打包aab

操作步骤:
Android studio – Build – Generate Signed Bundle/apk – 勾选 Android App Bundle – 一路next – 可以查看release目录下已经生成了一个 app-release.aab的文件,拿着这个文件上传谷歌商店即可。

手机安装使用AAB格式文件

因为.aab不能直接安装到设备上,但是我们自测又需要真机测试验证下。那么想要安装到手机上的话该怎么做呢?答案就是需要通过工具命令把它转成.apks,再使用工具命令组合多个apk部署到设备(这个过程是工具内部根据adb连接的设备自动组合的)

1,准备环境

使用bundletool工具需要java环境,建议使用JRE8环境,请自行下载安装,并配置好系统环境变量

2,下载bundletool.jar包

下载地址:https://github.com/google/bundletool/releases

3,使用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.8.2.jar、打包生成的app-release.aab、证书文件my.jks(假设证书别名为test、密码为123456)放到同一目录,在命令行中切换到当前目录,使用以下命令生成app-release.apks(如果不放到统一目录的话,需要根据上面的命令格式输入完整的文件路径)

java -jar bundletool-all-1.8.2.jar build-apks --bundle=app-release.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文件大小

4,使用cmd命令安装apks文件到手机上

命令格式参考如下:

java -jar <bundletool.jar的路径> install-apks --apks=<上一步中生成的.apks文件路径>

另外:根据Google的要求,使用aab格式上传应用必须加入Google签名保护计划, 加入后需要提交签名证书文件。

猜你喜欢

转载自blog.csdn.net/Jackson_Wen/article/details/121291520