Відповіді:
adb shell dumpsys package my.package | grep versionName
як згадували @david та @Jeremy Fishman . Це буде набагато швидше, ніж:
adb shell dumpsys | grep -A18 "Package \[my.package\]"
adb shell dumpsys package my.package
може бути значно швидшим
dumpsys package my.package | grep versionName
працює ідеально
adb shell dumpsys package com.google.android.apps.photos | grep versionName
через Hidden system packages:
розділ. Можливо, це head -n1
вирішило б ...
Пакет Dumpsys - ваш друг
~/# adb shell
shell@mo:/ dumpsys package tld.comp.app_name | grep version
Повернеться
versionCode=X targetSdk=YY
versionName=Z.Z
Якщо комусь потрібні всі версії програм для порівняння, ось мій 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, тому використовуйте обережно.
Якщо ви хочете отримати всі версії пакунка, спробуйте цей сценарій 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 = ""; } }'