2012-08-13 13 views
64

Czy istnieje łatwy sposób uzyskania nazwy wersji aplikacji na urządzeniu z systemem Android za pomocą powłoki adb?Uzyskaj nazwę wersji aplikacji za pomocą adb

Znalazłem numer wersji aplikacji (nie nazwę wersji) w /data/system/packages.xml.

Byłoby miło, gdyby był plik zawierający informacje o aplikacji.

+0

Każda metoda, nie tylko ADB http://android.stackexchange.com/questions/2016/how-can-you-tell-which-version-of-an-app-is-on-your-android-phone –

Odpowiedz

118
adb shell dumpsys package my.package | grep versionName 

jak podaje @david i @Jeremy Fishman. Będzie to o wiele szybciej niż:

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

To pokazuje mi informacje o pakiecie, ale z jakiegoś powodu brakuje w nim informacji o wersji dla każdej paczki, którą próbowałem sprawdzić na moim tablecie (Android 2.2). Na moim telefonie są wszystkie informacje o wersji (Android 2.3). – frognosis

+1

cóż, jeśli nalegasz zrobić to w adb, możesz zrobić: pakiet wezwań serwisowych adb shell 1 s16 "my.package" i32 0. numer wersji będzie gdzieś w pobliżu 0x1F, a ciąg znaków po 0x20 (powinien być trzecim wierszem) – arbuz

+0

To nie jest idealne, ale zapewnia mi to, czego potrzebuję. Dzięki. – frognosis

10

dumpsys pakiet jest twoim przyjacielem

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


Wrócimy

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

W przypadku gdy ktoś potrzebuje wszystkie wersje aplikacji dla porównania celom następnie tutaj to mój 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 

Może to będzie pomocne dla kogoś, ale zwróć uwagę, że używam versionName i ignoruję versionCode, więc używaj go ostrożnie.