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
实际效果
1 大小可以减少大约70% 左右(google play下载的apk大小从~70mb 降低到21mb )
2 Google play store warning 没有了。