获取Android .apk文件的VersionName或VersionCode,而无需安装apk。

237

我如何在下载apk文件后,在不安装它的情况下,通过AndroidManifest.xml文件编程获取其版本代码或版本名称。

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="xxx.xx.xxx"
    android:versionCode="1"
    android:versionName="1.1" >
例如,我想检查是否有新版本上传到我的IIS服务,并在设备上安装后检查它是否是新版本。如果不是新版本,则不想安装它。

请查看此链接:https://dev59.com/u3I95IYBdhLWcg3w5iY4#4761689 - nandeesh
顺便说一句,我希望没有人认为一个好的解决方案是下载文件,然后再检查是否需要 - 这正是第一句话所暗示的。想必你会希望在你的服务器上运行代码,并响应可用的版本号。 - ToolmakerSteve
1
./aapt d badging release.apk | grep -Po "(?<=\sversion(Code|Name)=')([0-9.]+)" - LF00
aapt将占用约2.6M的磁盘空间,您还可以编写一个解析器来解析带有AXMLResource的apk文件,这只需要大约52k的空间。请参考Java parse xml with undeclared namespace - LF00
12个回答

0
有更简单的方法来识别版本代码和版本名称。 请将最新的apk文件拖放到Android Studio中进行apk分析,您可以像下面显示的那样交叉验证版本代码和版本名称: enter image description here

-1

Kotlin:

var ver: String = packageManager.getPackageInfo(packageName, 0).versionName

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接