2012-08-13 10 views
64

Gibt es eine einfache Möglichkeit, den Versionsnamen einer Anwendung auf einem Android-Gerät mit adb-Shell abzurufen?Abrufen des Anwendungsversionsnamens mit adb

Ich fand die Anwendungsversionsnummer (nicht den Versionsnamen) in /data/system/packages.xml.

Es wäre nett, wenn es eine Datei mit den Anwendungsinformationen gäbe.

+0

Jede Methode, nicht nur ADB http://android.stackexchange.com/questions/2016/how-can-you-tell-which-version-of-an-app-is-on-your-android-phone –

Antwort

118
adb shell dumpsys package my.package | grep versionName 

wie @david und @Jeremy Fishman erwähnt. Dies ist viel schneller als:

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

Das zeigt mir die Paketinformationen, aber aus irgendeinem Grund fehlen die Versionsinformationen für jedes Paket, das ich auf meinem Tablet (Android 2.2) nachgeschlagen habe. Auf meinem Handy sind alle Versionsinformationen (Android 2.3). – frognosis

+1

Nun, wenn Sie darauf bestehen, es in ADB zu tun, können Sie tun: ADB Shell Service Aufruf Paket 1 s16 "my.package" i32 0. die Versionsnummer wird irgendwo in der Nähe von 0x1F und der Name String nach 0x20 (sollte 3. Zeile sein) – arbuz

+0

Es ist nicht ideal, aber es bringt mir, was ich brauche. Vielen Dank. – frognosis

10

Dumpsys Paket ist dein Freund

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


Will return

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

Falls jemand alle Apps-Versionen zum Vergleich Zwecke benötigt dann hier ist mein 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 

Vielleicht wird es für jemanden hilfreich sein, aber bitte beachten Sie, dass ich versionName verwende und versionCode ignoriere.