使用adb获取应用程序版本名称

时间:2012-08-13 21:43:12

标签: android adb

是否有一种简单的方法可以使用adb shell在Android设备上获取应用程序的版本名称?

我在/data/system/packages.xml中找到了应用程序版本号(不是版本名称)。

如果有一个包含应用程序信息的文件,那就太好了。

5 个答案:

答案 0 :(得分:154)

adb shell dumpsys package my.package | grep versionName

@david@Jeremy Fishman所述。这比以下快得多:

adb shell dumpsys | grep -A18 "Package \[my.package\]"

答案 1 :(得分:12)

Dumpsys包是你的朋友

~/# adb shell
shell@mo:/ dumpsys package tld.comp.app_name | grep version

将返回

versionCode=X targetSdk=YY
versionName=Z.Z

答案 2 :(得分:4)

如果有人需要所有应用版本进行比较,那么这是我的oneliner:

for p in `adb shell pm list package | awk -F"package:" '{print $2}'`; do echo -n "$p: "; adb shell dumpsys package $p | grep -i versionName | awk -F"=" '{print $2}'; done

也许它会对某些人有所帮助,但请注意我使用的是versionName并忽略了versionCode,所以要小心使用。

答案 3 :(得分:1)

如果要获取所有软件包版本,请尝试以下awk脚本:

adb shell dumpsys package | awk '/^[ ]*Package \[.*\] (.*)/ { i = index($0, "[") + 1; pkg = substr($0, i, index($0, "]") - i); } /[ ]*versionName=/ { { print pkg "\t" substr($0, index($0, "=") + 1); pkg = ""; } }'

答案 4 :(得分:0)

如果您不想在设备上安装* .apk,但需要获取应用程序的版本,则可以按照以下步骤操作

$ANDROID_HOME/build-tools/28.0.3/aapt dump badging app/build/outputs/apk/app.app