
根据 Google Play的政策 要求,自 2021 年 8 月起,Google Play 将开始要求新应用使用 Android App Bundle(以下简称aab) 进行发布。该格式将取代 APK 作为标准发布格式
正常情况下直接用AS的打包生成aab就可以满足需求,上传到Google play了。
但是会有这么一个问题,并不是所有时候你都可以拿到一个游戏工程或者源码的,如果给你的是一个apk包,那你怎么办呢?
接下来,就向大家介绍如何从apk一步步转化成aab。
解压apk
通过apktool去解压apk包
解压apk后 decode_apk_dir 目录结构:
编译资源
编译资源使用aapt2编译生成 *.flat文件集合
生成compiled_resources.zip文件
关联资源
生成base.apk
解压base.apk
解压到base文件夹,目录结构:
拷贝资源
创建base文件夹,以base文件夹为根目录
将解压得到的resources.pb拷贝到 ./temp/base/resources.pb
将解压得到的res拷贝到 ./temp/base/res
创建manifest文件夹, 将解压得到的AndroidManifest.xml拷贝到 ./temp/base/manifest
拷贝assets , 将 ./temp/decode_apk_dir/assets 拷贝到 ./temp/base/assets
拷贝lib, 将 ./temp/decode_apk_dir/lib 拷贝到 ./temp/base/lib
创建root文件夹,拷贝unknown, 将 ./temp/decode_apk_dir/unknown 拷贝到 ./temp/base/root/unknown
拷贝kotlin, 将 ./temp/decode_apk_dir/kotlin拷贝到 ./temp/base/root/kotlin
root目录下创建META-INF文件夹,得到 ./temp/base/root/META-INF
创建dex 文件夹,将 ./temp/decode_apk_dir/*.dex拷贝到 ./temp/base/dex(多个dex都要一起拷贝过来)
最终的目录结构
压缩资源
将改扮base文件夹,压缩成base.zip 一定要zip格式
注意:压缩后双击打开显示的是租带所有资源,而不是显示base,点击base再显示所有弊歼芦资源;否则会报AndroidManifest.xml找不到的错
编译aab
打包app bundle需要使用bundletool
aab签名
注意 :您不能使用 apksigner 为 aab 签名。签名aab的时候不需要使用v2签名,使用JDK的普通签名就行。
限于篇幅,Aab的测试与安装放在下一篇文章
详见 Aab(Android App Bundle)测试与安装
过程中有问题或者需要交流的同学、独立开发者同学、都可以私信我拉群(加好友的备注下,因为Apk转Aab和独立开发俱乐部,是分开的两个群)
类似于Java中的JavaDoc工具,Kotlin的官方也发布了一款生成Kotlin文档工具。 dokka
不过它确实不是很好用。
坑1:截止在我写这边文档时候,该工具的最新版本为0.10.0。在这辩正庆个版本中清简,作者将两个插件进行了合并(一个适用于Android项目的插件,一个则用于通用Kotlin项目插件)。导致了出现了一个大坑。详情请见这里 [ https://github.com/Kotlin/dokka/issues/213(https://github.com/Kotlin/dokka/issues/213) 。
经过一早上的踩坑折腾,发现在回退到上一个版本,0.9.17版本没出现类似问题。
然后同步项目之后,该插件会为项目添加一个dokka的task。
坑3:GC overhead limit exceeded。解决了上一个问题,又出现了一个oom的问题。这个问题也算是常见,不过我这个总共不超过十个class文件,居然翻车了。。好吧,果断在根目录下gradle.properties文件中配置扩大一下堆栈大小
在成功构建完所有的构建变体任务后,终于看到了在输出目录 outputDirectory 中的出现了javadoc文件夹。
打开index页面,你就可以看到dokka为项目生成的文档了。
在以上声明中,dokka就不会为androidx作为包名前缀的类生成文档。问题似乎得到了解决。但是这是一种舍近求远的方法。就好比你去一家店想买一杯奶茶,老板居然问你不想喝什么口味的。携握。因为在后续的开发中你可能还会引入新的包,dokka可能会为其他R文件生成以其他报名开头的文档。那么此时你必须继续添加packageOptions配置。。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)