因开发需要,周末尝试了上传apk到Google play,在资料都填完的情况下,发现现在,apk已经无法满足市场要求了。了解下发现Google Play 新应用的格式是 Android App Bundle(以下简称aab) 。当然如果有源码的话完全可以使用Android Studio生成aab,奈何仅有apk。
一顿冲浪,借鉴了不少文章,最终完成。
需要工具
-
bundletool.jar
bundletool.jar 是google提供生成&测试aab的工具,gradle打包里面也是使用的这个工具。
获取方式github: https://github.com/google/bundletool/releases -
apktool_2.5.0.jar
反编译安卓apk工具。
获取方式github: https://github.com/iBotPeaches/Apktool/releases -
aapt2
aapt全称Android Asset Packaging Tool是Android资源打包工具。
获取方式ANDROID SDK: $ANDROID_SDK/build-tools/30.0.3/aapt2 -
android.jar
android framework,提供了系统的资源和api。
获取方式ANDROID SDK: $ANDROID_SDK/platforms/android-30/android.jar
aapt2和Android在Android sdk目录下。 现在谷歌对sdk的版本要求在31以上,所以项目一定要用最新的sdk进行编译
既然是将apk转成aab,自然要有apk,将apk和这几个jar包放到一个文件夹,可能会方便一点。
鉴于现在Android Studio基本上自带sdk和jdk,在apk转aab的时候用起来可能不是很方便,所以电脑再配置一下jdk吧
进入正题
- 1.通过apktool去解压apk包
java -jar apktool.jar d test.apk -s -o decode_apk_dir
解压apk后目录结构,这个应该和代码有关系
钱钱钱
- 2.使用aapt2编译生成 文件集合
aapt2 compile --dir decode_apk_dir\res -o compiled_resources.zip
- 3.生成base.apk