如题,生成aab啊神马的,需要用到bundletool,需要了解这玩意。
使用bundletool来做啥?你想要了解原理,就看这个https://developer.android.com/studio/command-line/bundletool,不想看就听我说,总结一句话就是,构建工具可以用它生成aab,aab可以用它来生成apks,再通过它来生成和设备强相关的apk。有图有真相:
看图说话,理论上,我们自己如果要安装apk包时或者测试需要测试包,则我们直接用AS生成apk即可,如果是最后发布到google play的包,则我们直接用AS生成aab即可。(注意都是要签名过的)如图:
点击Generate Signed Bundle / APK进入
直接Next,最后生成的就是aab包,这个包才是给到google play的包。
Over。
========= 我是分割线 ===========分割线意味着接下来的内容很值得一看=============
那么问题来了,我们要了解bundletool干嘛?牙疼吗?其实真没啥用,只是装b用的(就是了解bundletool的具体用法和原理,因为google play也要用bundletool来生成设备强相关的apk)。
其实我们可以不用搞这个,太扯淡了,这个google 都推广出来了,说明已经验证过了,不需要我们再绕弯这么搞了。但是为了真理还是搞一搞:
1、来吧,先下载https://github.com/google/bundletool/releases
bundletool-all-1.5.0.jar包;重命名为bundletool.jar,
2、在sdk的目录下(找到sdk目录,如下),新建文件夹bundle-tools,把bundletool.jar放到文件夹里面去;
3、下载之后,(如果愿意每次都用手输入很长的全路径,可以不配置下面的环境变量)
source ~/.bash_profile
open ~/.bash_profile
在bash_profile文件中修改
就是复制这个bundletool.jar的路径,你如果不想把它放在这里放在其他位置也可以的。每次输入命令时就要带上这个路径。
4、配置完毕之后,
source ~/.bash_profile
5、再开始我们的bundletool之旅;
6、打开Terminal,输入命令开干
7、生成apks的命令:
java -jar /Users/mac/Library/Android/sdk/bundle-tools/bundletool.jar build-apks --bundle=/Users/mac/workSpace/05_work/ht-china-debug.aab --output=/Users/mac/workSpace/05_work/my_app.apks
其中,红色的路径就是刚才配置的路径不是手动输入的,直接输入java -jar $BUNDLETOOL_HOME,再tab按钮下,就可以了。高级感扑面而来有没有。。。
绿色路径就是AS打包生成的aab包,蓝色路径是你放置apks的路径。
另外提一点,官方的命令是 bundletool build-apks --bundle=。。。是以bundletool开头的,其实怎么配置都达不到这个效果。还是要以java -jar xxxbundletool.jar build-apks的方式来执行命令。
8、安装apk到手机里面:
java -jar /Users/mac/Library/Android/sdk/bundle-tools/bundletool.jar install-apks --apks=/Users/mac/workSpace/05_work/my_app.apks --device-id=414b6a93
将apks中的apk安装到手机里面去。
over。
还有其他的命令,将apks根据配置文件生成各种跟设备相关apk。详询 https://developer.android.com/studio/command-line/bundletool
完毕。