获取apk的版本号versionCode apk的版本名称VersionName

需求:开发中经常有需求获取apk文件的版本号,和版本名称,比如确定一下上传到应用市场的apk是不是最新的apk,检查更新的时候也要确保后台的apk文件为新的apk。




行不通的方法:

1.直接解压apk,获得AndroidManifest.xml文件。(apk也为特殊的压缩文件),但是解压的结果为乱码,因为在生成apk的过程中对apk做了加密,编码操作。

解压效果如下:


完全看不懂呀


2.既然直接解压行不通,那用apktool工具反编译总可以了吧:cmd 执行以下命名:apktool d -s xxxxx.apk

效果如下:

可以看出,虽然反编译出来的文件,和我们AndroidManifest.xml源文件相差无几,但是为啥没有我们的VersionCode  VersionName 属性,反而读了2个

platformBuildVersionCode="21" platformBuildVersionName="5.0.1-1624448"属性了,那这2个属性是不是我们原AndroidManifest.xml是一样的呢,当然不是,

我这里原AndroidManifest.xml文件中的versionCode的值是2,而这里成了21.所以,这种方法也行不通


解决办法:

aapt工具

aapt dump badging xxxxx.apk

效果如下;


怎么样,packageName  versionCode   versionName  permission信息都有




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值