2012-08-13 108 views
64

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

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

如果存在包含应用程序信息的文件,那将会很好。

+0

任何方法,不只是亚行http://android.stackexchange.com/questions/2016/how-can-you-tell-which-version-of-an-app-is-on-your-android-phone – 2016-04-23 12:17:11

回答

118
adb shell dumpsys package my.package | grep versionName 

通过@david@Jeremy Fishman提及。这将大大快于:

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

这确实显示包信息,但由于某种原因,它缺少我试图查看我的平板电脑(android 2.2)上的任何包的版本信息。在我的手机上所有的版本信息都在那里(android 2.3)。 – frognosis 2012-08-13 23:08:19

+1

好,如果你坚持在adb中做,你可以这样做:adb shell服务调用包1 s16“my.package”i32 0.版本号将在0x1F附近的某处和0x20之后的名称字符串(应该是第3行) – arbuz 2012-08-14 10:43:06

+0

这并不理想,但它让我得到了我需要的东西。谢谢。 – frognosis 2012-08-14 17:00:12

10

Dumpsys包是你的朋友

~/# adb shell 
[email protected]:/ dumpsys package tld.comp.app_name | grep version 


将返回

versionCode=X targetSdk=YY 
versionName=Z.Z 
0

万一有人需要所有的应用程序版本,然后在这里比较的目的是我的线索:

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,所以请谨慎使用。

相关问题