มีวิธีง่ายๆในการรับชื่อเวอร์ชันของแอปพลิเคชันบนอุปกรณ์ Android โดยใช้ adb shell หรือไม่?
ฉันพบหมายเลขเวอร์ชันของแอปพลิเคชัน (ไม่ใช่ชื่อเวอร์ชัน) ใน /data/system/packages.xml
คงจะดีไม่น้อยหากมีไฟล์ที่มีข้อมูลแอปพลิเคชัน
มีวิธีง่ายๆในการรับชื่อเวอร์ชันของแอปพลิเคชันบนอุปกรณ์ Android โดยใช้ adb shell หรือไม่?
ฉันพบหมายเลขเวอร์ชันของแอปพลิเคชัน (ไม่ใช่ชื่อเวอร์ชัน) ใน /data/system/packages.xml
คงจะดีไม่น้อยหากมีไฟล์ที่มีข้อมูลแอปพลิเคชัน
คำตอบ:
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 = ""; } }'
หากคุณไม่ต้องการติดตั้ง * .apk บนอุปกรณ์ แต่คุณต้องการแอพเวอร์ชันคุณสามารถทำได้ดังต่อไปนี้
$ANDROID_HOME/build-tools/28.0.3/aapt dump badging app/build/outputs/apk/app.app