由于实际需求,可能面临出多个渠道的apk包,并且经常性的需要更新包体资源和提升包体的版本号。如果每个包体都直接用项目工程出更新包的话,操作比较繁琐,管理比较麻烦,那么如何比较简单的更新版本呢,下面简单介绍下。
一、需要工具
1、你需要可以运行jdk的环境,以及apk解包工具apktool,这里使用的是apktool-2.3.4.jar
二、了解原理
1、可以使用命令java -jar apktool-2.3.4.jar d -f unpack.apk -o b_pack
unpack.apk是你要解包的apk,b_pack是解包之后生成的文件夹名字。
android工程通过解包之后,一般的目录结构都是固定的,如下面所示
其中,assets文件里面的就是存放资源的目录,以游戏apk为例,这里就是安装包里面的所有游戏资源,apk的版本管理文件就是apktool.yml里面的文件。
2、解包之后,一般情况下,我们可以把asset目录下面的资源替换为最新资源,并且打开apktool.yml修改下面两个值,那么就可以更新apk的版本。
versionInfo:
versionCode: '2'
versionName: '1.0'
(1)、versionCode是实际的版本值,就是通过这个值比较apk那个比较新。
(2)、versionName就是安装的时候显示出来的版本号,这个是使用者可以看见的,正常情况下两者并没有直接的关系,看你想让使用者看到怎么格式的版本号。
综述,基本上可以脱离工程提升包体的版本号。但是如果想要更加快捷方便的话,可以自己写工具,完成最新资源的复制,并且版本号+1的操作。对于用python当做工具脚本来说还是可以的,笔者自己就通过python工具享受了脚本一体化的操作便捷性。