一、查找
1、打印本机所有软件包 adb shell pm list packages
2、输出和安装包相关联的文件(包括apk的路径) adb shell pm list packages -f
3、输出本机禁用的包 adb shell pm list packages -d
4、输出本机启用的包 adb shell pm list packages -e
5、打印输出系统包名 adb shell pm list packages -s
6、打印输出第三方安装包 adb shell pm list packages -3
7、输出包和安装信息(安装来源) adb shll pm list packages -i
8、输出包和为安装包信息(安装包来源) adb shell pm list packages -u
9、根据用户id查询用户空间的所有包 adb shell pm list packages --user <USER_ID> 其中USER_ID代表连接设备顺序,从0开始
10、设置过滤参数进行查询 adb shell pm list packages-e“com”
所以,关键还是命令: adb shell pm list packages , 它的后面可以加参数
》》 查找apk 的路径:
adb shell pm pathcom.xxx.xxx
–> 使用包名PackageName 查看apk所在的路径
二、安装与卸载
adb install -d -r [apk路径] 允许安装低版本的
adb unstall com.xxx.xx 卸载apk
注: adb 安装有可能会安装到所有用户,可以指明user id (0)
adb install --user USER_ID YOUR_APK
adb shell pm install --user USER_ID YOUR_APK # alternative command
参考:
/questions/233044/adb-installs-apps-for-all-users-how-to-force-it-to-install-to-main-user-only
/docs/devices/admin/multi-user-testing(官网介绍)
adb shell am instrument --user 可针对特定用户运行插桩测试。默认情况下,此命令使用当前用户。
adb install --user 可为特定用户安装软件包。要确保为所有用户安装软件包,您必须为每个用户调用此命令。
adb uninstall --user 可为特定用户卸载软件包。如果调用此命令时不带 --user 标记,可为所有用户卸载软件包。
adb shell am get-current-user 可获取当前(前台)用户 ID。
adb shell pm list users 可获取所有现有用户的列表。
adb shell pm create-user 可创建新用户并返回 ID。
adb shell pm remove-user 可按 ID 移除特定用户。
adb shell pm disable --user 可为特定用户停用软件包。
adb shell pm enable --user 可为特定用户启用软件包。
adb shell pm list packages --user 可为特定用户列出软件包(-e 可列出已启用的软件包,-d 可列出已停用的软件包)。默认情况下,此命令始终为系统用户列出软件包
安装原理可以参考: /Bill_xiao/article/details/105562693