adb shell命令整理之pm

本文介绍了Android设备上PackageManager的使用方法,包括如何通过ADB命令获取已安装应用的信息、安装和卸载应用、设置应用安装位置等。同时提供了pm命令的各种选项说明,如列出系统应用、第三方应用、应用详细信息等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Package Manager , 可以用获取到一些安装在 Android 设备上得应用信息
pm 的源码 Pm.java , 直接运行 adb shell pm 可以获取到该命令的帮助信息


adb shell pm list package
--列出安装在设备上应用的包名,不带任何选项


adb shell pm list package -s
    -s:列出系统应用


adb shell pm list package -3
    -3:列出第三方应用


adb shell pm list package -f
    -f:列出应用包名及对应的apk名及存放位置


adb shell pm list package -i
    -i:列出应用包名及其安装来源
--返回值: package:com.zhihu.android installer=com.xiaomi.market


adb shell pm list package -f -3 -i zhihu
--组合用法: package:/data/app/com.tencent.mobileqq-1.apk


adb shell pm list instrumentation
--列出含有单元测试 case 的应用,后面可跟参数 -f (与 pm list package 中一样),以及 [TARGET-PACKAGE]


adb shell pm dump com.tencent.mobileqq
--后跟包名,列出指定应用的 dump 信息,里面有各种信息,自行查看


adb shell pm install 
--安装应用
--目标 apk 存放于 PC 端,请用 adb install 安装
--目标 apk 存放于 Android 设备上,请用 pm install 安装


adb shell pm uninstall
--卸载应用,同 adb uninstall , 后面跟的参数都是应用的包名


adb shell pm clear
--清除应用数据


adb shell pm set-install-location
--设置应用安装位置
adb shell pm get-install-location
--获取应用安装位置
--[0/auto]:默认为自动
--[1/internal]:默认为安装在手机内部
--[2/external]:默认安装在外部存储

<think>好的,我需要回答用户关于如何通过adb命令查询带有版本号的仅Apex包列表的问题。首先,用户提供的命令是“adbshell pmlist packages--apex-only--show-versioncode”。我需要验证这个命令是否正确,以及是否满足用户的需求。根据引用中的信息,特别是引用[5],其中提到使用“pm listpackages”来查看所有安装的包,并列出了一些示例。但用户需要的是仅Apex包,并且显示版本号。我需要确认“--apex-only”和“--show-versioncode”是否是pm命令的有效参数。查阅Android官方文档或相关资源,发现pm listpackages支持多种参数,例如“-s”表示系统包,“-d”表示被禁用的包。而关于Apex包,自Android10引入了APEX(Android PackageEXchange)格式,用于系统模块的更新。因此,pm命令应该有针对Apex包的过滤选项,如“--apex-only”。 另外,“--show-versioncode”参数可能用于显示应用的版本代码。但需要确认该参数是否适用于Apex包。通常,版本代码可以通过“dumpsyspackage”命令查看,但用户希望直接在列表命令中显示,因此需要检查是否有此参数。如果用户的命令正确,执行后会列出所有Apex包及其版本代码。如果参数有误,可能需要调整命令,例如使用其他选项或结合其他工具如“dumpsys”。 此外,用户提供的引用中有提到类似命令的结构,比如引用[2]中的“adb shellpm listpackages -s -d|nl”,说明参数组合是可行的。因此,推测用户的命令可能是正确的,但需要实际测试或进一步确认参数是否存在。 最后,需要确保用户了解如何正确使用该命令,并解释输出结果的含义,比如版本代码的显示位置和格式。如果该命令无法显示版本代码,可能需要建议替代方法,例如使用“dumpsys package”来获取详细信息。</think>要查询带有版本号的仅Apex包列表,可以使用以下命令: ```bash adb shell pm list packages --apex-only --show-versioncode ``` ### 关键参数说明: 1. **`--apex-only`** 过滤仅显示APEX格式的包(Android 10+引入的系统模块格式)[^3][^4] 2. **`--show-versioncode`** 显示包的版本代码(versionCode),而非版本名称(versionName) ### 示例输出格式: ```text package:com.android.apex.cts.shim versionCode:123456 package:com.android.conscrypt versionCode:789012 ``` ### 进阶用法: 若需要更详细的版本信息(如版本名称、签名等),可结合`dumpsys package`命令: ```bash adb shell dumpsys package <包名> | grep -E "versionCode|versionName" ``` ### 注意事项: - 需要开启USB调试并授权ADB连接 - 部分旧版Android系统可能不支持`--show-versioncode`参数,此时需通过`dumpsys`获取版本信息[^4]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值