背景
2021年8月起来,Google play要求应用使用Android App Bundle进行发布。.aab将取代.apk作为标准发布格式。
除了APK被替换为新的AAB格式外,如果应用程序的容量大于150MB,开发者必须改用Play Asset或Feature Delivery格式来取代旧的OBB(大型扩展文件)格式。
what??? 那未来国内肯定也会支持啊,之前Google率先支持64位架构,今年国内应用商店如小米,OPPO,VIVO等联合推出,也要求上传须支持64位arm架构。赶紧搞一波。
还有个问题,华为鸿蒙是不好多个cnm,搞它。
研究
参考:
https://mp.weixin.qq.com/s/9DFf-uGQY3KJNMwwyAlhkA
https://developer.android.google.cn/platform/technology/app-bundle
https://mp.weixin.qq.com/s/Wh9KJpb0hd02MHRO9kzbVw
aab优势
首先,比一般apk小15%。下载速度更快,进而提升安装量,减少卸载量。
动态方式交付大型资源可以减少用户等待时间,同时缩减交付成本。
打包编译更快。
Demo
通过使用命令行构建
./gradlew bundleRelease
通过使用Android Studio构建
在输入签名文件密码面板最下面有这句
export encrypted key for enrolling published app in google play app signing
导出用于在 Google Play 应用签名中注册已发布应用的加密密钥
打包出来aab的包后,用压缩包工具打开里面是四个层级,pb格式的文件
- base目录;
主要包含代码,第三方package,资源文件
- BUNDLE-METADATA目录,
里面是dependencies.pb
- META-INF目录;
签名密钥
- BundleConfig.pb文件
aab格式转换位apk格式
aab格式的包要通过Google play上传根据应用配置来生成apk。
下载 bundletool,它可以转换为apk。
下载地址:https://github.com/google/bundletool/releases
- 命令
bundletool build-apks --bundle=/MyApp/my_app.aab --output=/MyApp/my_app.apks
参考
https://developer.android.google.cn/studio/command-line/bundletool