Android 使用aab 发布

目录

App Bundle

Android App 越来越大,但是Google Play store的上传大小又有限制。介绍一种Google 推荐的实现方式。

更换新的编译方式

./gradlew clean assembleRelease xxxx

更改为:

./gradlew clean bundleRelease xxxx

修改生成的aab文件名称

tasks.whenTaskAdded { task ->
    if (task.name.startsWith("bundleRelease")) {
        def renameTaskName = "rename${task.name.capitalize()}Aab"
        def flavor = task.name.substring("bundle".length()).uncapitalize()
        tasks.create(renameTaskName, Copy) {
            def path = "${buildDir}/outputs/bundle/${flavor}/"
            from(path)
            include "app.aab"
            destinationDir file("${buildDir}/outputs/renamedBundle/")
            rename "app.aab", "${appName}_${buildNumber}_${flavor}_${releaseTime()}.aab"
        }
        task.finalizedBy(renameTaskName)
    }
}

验证

通过bundletool 将aab文件转换成apks文件

java -jar ~/bin/bundletool-all-0.10.3.jar build-apks \
--bundle=app/build/outputs/bundle/release/app.aab \
--output=./bb.apks \
--ks=./xxx.keystore \
--ks-pass=pass:password \
--ks-key-alias=key-alias \
--key-pass=pass:password

安装到设备上

java -jar ~/bin/bundletool-all-0.10.3.jar  install-apks --apks=/MyApp/my_app.apks

bundletool 使用参考

实际效果

1 大小可以减少大约70% 左右(google play下载的apk大小从~70mb 降低到21mb )
2 Google play store warning 没有了。

点赞