Android下pm 命令详解

发布时间:2026/7/25 1:18:18
Android下pm 命令详解 Android pm 命令详解在 Android 开发与调试过程中pmPackage Manager命令是一个功能强大的工具它允许开发者通过命令行直接与 Android 的包管理系统进行交互。该命令通常位于设备的/system/bin/目录下用于管理应用程序的安装、卸载、查询以及权限管理等操作。一、命令概览与基本用法执行pm命令本身不带参数或使用pm help可以查看其基本用法和子命令列表。核心子命令主要围绕包Package的列表、路径、安装和卸载展开。usage: pm [list|path|install|uninstall|enable|disable|...]二、包查询与管理命令1. 列出包 (list packages)用于列出设备上已安装的所有应用程序包。pm list packages列出所有已安装包的包名。pm list packages -f列出包名及其关联的 APK 文件路径。2. 列出权限组与权限 (list permissions)用于查看系统定义的权限信息。pm list permission-groups列出所有已知的权限组。pm list permissions列出所有已知权限。pm list permissions -g按权限组组织显示。pm list permissions -f打印权限的详细信息。pm list permissions -d仅列出危险权限。pm list permissions -u仅列出用户可见的权限。3. 列出仪器化测试 (list instrumentation)用于列出设备上的仪器化测试组件。pm list instrumentation列出所有仪器化测试。pm list instrumentation -f [TARGET-PACKAGE]列出指定目标包的仪器化测试及其文件路径。4. 列出系统特性 (list features)用于列出设备支持的硬件和软件特性。pm list features列出所有系统特性如蓝牙、摄像头、传感器等。# 示例输出 feature:reqGlEsVersion0x20000 feature:android.hardware.bluetooth feature:android.hardware.camera feature:android.hardware.location feature:android.hardware.location.network feature:android.hardware.microphone feature:android.hardware.sensor.accelerometer feature:android.hardware.sensor.compass feature:android.hardware.touchscreen feature:android.hardware.wifi5. 获取包路径 (path)用于获取指定应用程序包 APK 文件的安装路径。pm path PACKAGE_NAME输出指定包的 APK 文件路径。# 示例 pm path com.example.app # 输出package:/data/app/com.example.app-1/base.apk三、包安装与卸载命令1. 安装应用 (install)将 APK 文件安装到系统中。pm install [-l] [-r] [-t] [-i INSTALLER_PACKAGE_NAME] [-s] [-f] PATH_TO_APK常用选项-l使用前向锁定FORWARD_LOCK安装。-r重新安装现有应用并保留其数据。-t允许安装测试 APK。-i INSTALLER_PACKAGE_NAME指定安装器包名。-s将应用安装到 SD 卡外部存储。-f将应用安装到内部闪存。# 示例安装到内部存储 pm install /sdcard/Download/app.apk 示例重新安装并保留数据 pm install -r /data/local/tmp/app.apk2. 卸载应用 (uninstall)从系统中移除指定的应用程序包。pm uninstall [-k] PACKAGE_NAME选项-k卸载后保留应用的数据和缓存目录。# 示例卸载应用但保留数据 pm uninstall -k com.example.app四、组件启用与禁用命令启用或禁用应用程序包或其特定组件如 Activity、Service。pm enable PACKAGE_OR_COMPONENT启用指定的包或组件。pm disable PACKAGE_OR_COMPONENT禁用指定的包或组件。组件名称格式为package/class例如com.example.app/.MainActivity。五、安装位置管理命令1. 获取当前安装位置 (getInstallLocation)查询当前的默认应用安装位置。pm getInstallLocation返回值0自动由系统决定最佳位置。1内部设备存储。2外部媒体如 SD 卡。2. 设置默认安装位置 (setInstallLocation)更改默认的应用安装位置。pm setInstallLocation [0|1|2]参数说明0或auto由系统自动决定。1或internal安装到内部存储。2或external安装到外部存储。注意此设置可能受设备制造商策略或 Android 版本限制并非所有设备都支持将应用安装到外部存储。六、实践技巧与注意事项权限要求大多数pm命令需要adb shell环境并且通常需要设备已获取 root 权限或处于调试模式。路径问题使用install命令时请确保 APK 文件路径在设备上可访问例如通过adb push上传。版本差异不同 Android 版本的pm命令选项和输出格式可能略有不同建议在实际设备上测试。外部存储安装若想将应用安装到 SD 卡除了使用pm setInstallLocation 2有时还需在系统设置中将 SD 卡设为默认存储设备。七、总结pm命令是 Android 开发者和高级用户进行包管理的利器。通过熟练掌握上述命令你可以高效地查询应用信息、批量管理应用安装与卸载、控制系统组件状态从而在自动化测试、设备预装、系统调试等场景中发挥重要作用。建议结合adb shell在实际设备或模拟器中进行练习以加深理解。