我们可以用一个叫做 bundletool 的工具从.aab 文件中提取出APK,这是一个开源的工具,你可以从 Github 上下载到这个工具。
下载地址
https://github.com/google/bundletool/releases
1.把aab转成apks
使用命令生成apks:java -jar bundletool.jar build-apks --bundle=test.aab --output=test.apks
此时虽然会生成apks了,但是会警告你没有签名,后面将不能安装到设备上。
所以需要在上述命令行后面加上签名相关的参数
–ks=*** (keyStore文件)
–ks-pass=pass:*** (keyStore密码)
–ks-key-alias=*** (alias)
–key-pass=pass:*** (密码)
其实就是和之前生成签名apk的参数一样的。
java -jar bundletool.jar build-apks --bundle=test.aab --output=test.apks --ks=xxx.keystore --ks-pass=pass:xxx --ks-key-alias=xxx --key-pass=pass:xxx
执行完命令后得到后缀名为.apks的压缩文件,解压后可以看到有很多apk。但是这些apk都不能直接安装,继续往下看。
2.安装apk到设备上
上面得到的apks也是不能直接安装,需要通过java -jar bundletool.jar install-apks --apks=***.apks --adb=adb的地址,这样apk就安装到手机上了。
3.导出apk
除了安装上去,也可以导出特定的apk。
获取连接设备的配置信息
java -jar bundletool.jar get-device-spec
–output=xxx.json
–adb=xxx
然后就有一个连接的手机的配置信息,以json形式保存
{
“supportedAbis”: [“arm64-v8a”, “armeabi-v7a”, “armeabi”],
“supportedLocales”: [“zh-CN”],
“screenDensity”: 480,
“sdkVersion”: 23
}
根据配置导出特定apks
java -jar bundletool.jar extract-apks
–apks=xxx.apks
–output-dir=导出的文件夹路径
–device-spec=上述的手机配置Json文件.json