最近有个需求需要获取手机上已安装应用列表,需要包含应用名称(非包名)、版本号、包名等信息,记录一下解决过程。
1. list
使用adb命令查看设备已安装应用列表很简单
adb shell pm list packages -3
但命令只能获取到应用包名
2.dumpsys
想要获取应用的详细信息需要使用以下命令
adb shell pm dumpsys package [pkgName]
但查看输出发现,该命令可以获取到包名、版本号、权限等字段,就是没有app名字
3.aapt工具
想要获取app名字需要使用aapt工具
//1.查询应用安装包路径adb shell pm list packages -f//2.将安装包pull到本地adb pull [安装包路径] [本地路径]//3.使用aapt工具解析安装包aapt d badging [本地apk路径]
可以这个方法比较麻烦,每个app都需要先pull到本地再解析,而一般手机上几十个甚至上百个app,这种方法就不太适用了
4.终极方案
经过查询发现了一种终极解决方案,就是将appt push到手机中执行
参考文章:
system info - Obtain package name AND common name of apps via ADB - Android Enthusiasts Stack Exchangehttps://android.stackexchange.com/questions/90141/obtain-package-name-and-common-name-of-apps-via-adb首先下载手机上可以运行的aapt文件
APDE/APDE/src/main/assets/aapt-binaries/aapt-arm-pie at fdc22eb31048862e1484f4b6eca229accda61466 · Calsign/APDE · GitHubSource code for APDE: Create and run Processing sketches on an Android device. - APDE/APDE/src/main/assets/aapt-binaries/aapt-arm-pie at fdc22eb31048862e1484f4b6eca229accda61466 · Calsign/APDEhttps://github.com/Calsign/APDE/blob/fdc22eb31048862e1484f4b6eca229accda61466/APDE/src/main/assets/aapt-binaries/aapt-arm-pie将aapt文件push到手机内并赋予权限
adb push aapt-arm-pie /data/local/tmpadb shell chmod 0755 /data/local/tmp/aapt-arm-pie
然后获取手机上应用安装包路径
adb shell pm list packages -f
执行aapt命令解析
adb shell /data/local/tmp/aapt-arm-pie d badging [apk路径]
这样就可以直接在shell命令中获取apk的详细信息了
来源地址:https://blog.csdn.net/y954227239/article/details/131413899
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341