Pm命令用法_pm install-程序员宅基地

技术标签: java  Linux  android  linux  pm指令  apk安装  


  在公司的Linux环境下目前不能使用adb命令,需要使用pm命令,因此写一篇文章学习一下,pm命令主要应用在安装APK的时候。

1. Pm主要命令

命令格式:

pm <command>

命令列表:

命令 功能 实现方法
list packages 列举app包信息 PMS.getInstalledPackages
install [options] <PATH> 安装应用 PMS.installPackageAsUser
uninstall [options]<package> 卸载应用 IPackageInstaller.uninstall
enable <包名或组件名> enable PMS.setEnabledSetting
disable <包名或组件名> disable PMS.setEnabledSetting
hide <package> 隐藏应用 PMS.setApplicationHiddenSettingAsUser
unhide <package> 显示应用 PMS.setApplicationHiddenSettingAsUser
get-install-location 获取安装位置 PMS.getInstallLocation
set-install-location 设置安装位置 PMS.setInstallLocation
path <package> 查看App路径 PMS.getPackageInfo
clear <package> 清空App数据 AMS.clearApplicationUserData
get-max-users 最大用户数 UserManager.getMaxSupportedUsers
force-dex-opt <package> dex优化 PMS.forceDexOpt
dump <package> dump信息 AMS.dumpPackageStateStatic
trim-caches <目标size> 紧缩cache目标大小 PMS.freeStorageAndNotify

  pm命令的实现方式在Pm.java,最后大多数都是调用PackageManagerService相应的方法来完成的。disbale之后,在桌面和应用程序列表里边都看不到该app。

2. 详细参数

2.1 list packages

查看所有的package

pm list packages [options] <FILTER>

其中[options]参数:

  • -f: 显示包名所关联的文件;
  • -d: 只显示disabled包名;
  • -e: 只显示enabled包名;
  • -s: 只显示系统包名;
  • -3: 只显示第3方应用的包名;
  • -i: 包名所相应的installer;
  • -u: 包含uninstalled包名.

规律: disabled + enabled = 总应用个数; 系统 + 第三方 = 总应用个数。

查看第3方应用:

pm list packages -3

查看已经被禁用的包名:

pm list packages -d

<FILTER>参数:

  当FILTER为不为空时,则只会输出包名带有FILTER字段的应用;当FILTER为空时,则默认显示所有满足条件的应用。

比如,查看包名带google字段的包名

pm list packages google

2.2 pm install

安装应用

pm install [options] <PATH>

其中[options]参数:

  • -r: 覆盖安装已存在Apk,并保持原有数据;
  • -d: 运行安装低版本Apk;
  • -t: 运行安装测试Apk
  • -i <installer_package_name style=“box-sizing: border-box;”>: 指定Apk的安装器;</installer_package_name>
  • -s: 安装apk到共享快存储,比如sdcard;
  • -f: 安装apk到内部系统内存;
  • -l: 安装过程,持有转发锁
  • -g: 准许Apk manifest中的所有权限;

<PATH>参数:

该参数是必须的,是指需要安装的apk所在的路径。

2.3 其他参数

pm list users //查看当前手机用户
pm list libraries //查看当前设备所支持的库
pm list features //查看系统所有的features
pm list instrumentation //所有测试包的信息
pm list permission-groups //查看所有的权限组
pm list permissions [options] <group> 查看权限
    -g: 以组形式组织;
    -f: 打印所有信息;
    -s: 简要信息;
    -d: 只列举危险权限;
    -u: 只列举用户可见的权限。
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/IT_xiao_bai0516/article/details/121493681

智能推荐

云服务器ECS入门-程序员宅基地

文章浏览阅读5.0k次,点赞3次,收藏30次。云服务器ECS入门_云服务器ecs入门

Poj 1042 gone fishing-程序员宅基地

文章浏览阅读59次。【题目大意】题目就是在给定钓鱼时间,湖泊之间转移的时间,各湖泊初始鱼量,各湖泊鱼量的下降指数求在规定时间内的最大钓鱼量。【解题思路】本题目采用枚举+贪心的方法可以求解出来。首先我们需要对题目进行一些改造,我们需要枚举从第一个湖泊到第n个湖泊之间各种可能情况,然后再这些情况中选出最大值,输出结果。由于到各个湖泊的时间有所差异,我们首先需要把耽搁在转移路径上的时间除去,然后在剩余时间内确定..._gone fishing wrong answer

Hi3516CV500中NFS配置和使用_libsecurec.so-程序员宅基地

文章浏览阅读1.4k次。最近在调试3516cv500板子,第一次调试通过后由于其他原因,再次调试时发现又有些同样的问题出现,由于没有记录导致时间的二次浪费,所以这一次把其中出现的问题记录下来,免得再出错。# uname -aLinux (none) 4.9.37 #1 SMP Tue Mar 5 21:37:32 CST 2019 armv7l GNU/Linux#ifconfigeth0 Li..._libsecurec.so

SpringBoot-quickStart_spring boot quickstart中的maven-程序员宅基地

文章浏览阅读801次。 官网:http://spring.io你可以访问官网(拉到底部,然后看到如下的Getting Started Guid)下载他的demo,这里我介绍我本人的入门介绍1.SpringBoot-HelloWorld 入门 1.1创建工程 默认(可以根据需要)默认不填加 创建好后的工程:基本和Maven的工程一样2.介绍Spring..._spring boot quickstart中的maven

实验|Pyecharts数据可视化分析-散点图_python echarts散点图相关性-程序员宅基地

文章浏览阅读1.4k次。实验介绍本实验主要介绍散点图理论与基于Python的散点图实现。1.1. 实验目的掌握散点图基本使用场景,使用Python的Pyecharts模块实现散点图。1.2. 知识点•散点图理论•散点图实现散点图理论•散点图介绍:散点图又称为XY散点图,将数据以点的形式展现,以显示变量间的相互关系或者影响程度,点的位置由变量的数值决定。•使用场景:显示若干数据系列中各数值之间的关系,类似XY轴,判断两变量之间是否存在某种关联,或者发现数据的分布或者聚合情况。•散点图优点:可以展示数._python echarts散点图相关性

看完这篇文章,你如果还不知道怎么设置Oauth2令牌过期时间算我输_oauth2.0如何设置存储token时间-程序员宅基地

文章浏览阅读3.8k次。OAuth2所生成的AccessToken以及RefreshToken都存在过期时间,当在有效期内才可以拿来作为会话身份发起请求,否者认证中心会直接拦截无效请求提示已过期,那么我们怎么修改这个过期时间来满足我们的业务场景呢?目前一线大厂所使用的的AccessToken的有效期一般都是7200秒,也就是2小时,而且有获取的次数限制,所以发起请求的一方必须通过一定的形式保存到本地,以方便下一次发起请..._oauth2.0如何设置存储token时间

随便推点

富文本编辑器_com.baidu.ueditor.actionenter 需要引jar包吗-程序员宅基地

文章浏览阅读345次。这段时间公司有个需求要用到富文本编辑器,在这里做一个小小的使用总结吧。首先准备工作到官网下载http://ueditor.baidu.com/website/ 将编辑器下载下来技术文档 http://fex.baidu.com/ueditor/可以在demo里面看到,先引入js[html] view plain copy&lt;script type="text/javascript" chars..._com.baidu.ueditor.actionenter 需要引jar包吗

判断String类型字符串是否为空的方法-程序员宅基地

文章浏览阅读778次。在项目中经常遇到要判断String类型的字段是否为空操作我们可以用Apache提供的StringUtils这个工具类,不用自己去判断,也不用自己封装判断空的方法它有两个版本,一个是org.apache.commons.lang下面,一个是org.apache.commons.lang3下面lang3要求jdk在1.5以上现在jdk都普通用1.8了,所以我在项目中就..._string 空格判断

linux 对特定 服务器 开放特定端口_linux部署了服务 开放新的端口只能访问服务的某个接口-程序员宅基地

文章浏览阅读1.3k次。在 spark ui 中出现某个端口不能访问的问题解决:由于跨内网外网安全问题技术选型为 ,部署一台window 系统 虚拟机(可以远程访问并且这个虚拟机和hodoop 集群属于同一内网)然后 在hadoop 集群的节点对这台虚拟机的 ip 开放指定端口命令为root 用户下vi /etc/sysconfig/iptables添加 (对192.168.0.125开放 8042端口..._linux部署了服务 开放新的端口只能访问服务的某个接口

vs2017 + QT5.8.0 error C3615_qt+vs2017 qalgorithms-程序员宅基地

文章浏览阅读269次。error C3615: constexpr 函数 "QAlgorithmsPrivate::qt_builtin_ctz" 不会生成常数表达式 (编译源文件 main.cpp)_qt+vs2017 qalgorithms

c语言一维字符数组转字符串,怎么将无符号char数组转为相应字符串-程序员宅基地

文章浏览阅读1k次。如何将无符号char数组转为相应字符串unsignedcharsrc[6]={0x12,0x32,0x56,0x78,0x90,0xab},如何转为:char[12]={"1232567890ab"}?非常感谢!顺便吐槽下,发现C之类转换比java复杂多了。。------解决思路----------------------unsignedcharsrc[6]={0x12,0..._c语言生成unsigned char数组和字符串的字符串

内存溢出记录_内存溢出有什么记录吗-程序员宅基地

文章浏览阅读208次。内存溢出记录OutOfMemoryError内存溢出OutOfMemoryError内存溢出启动参数增加 -XX:+HeapDumpOnOutOfMemoryError (如果是服务器生产环境一般会有运维提供快照给予分析)当发生内存溢出时;找到jdk目录下jvisualvm 打开,将生成的hprof快照导入,查看信息可以看到内存中对象多的情况找到可能发生内存溢出的代码,再具体分析;如果是服务器上的OOM大致思路差不多,定位到占用比较多的对象,然后进行分析。..._内存溢出有什么记录吗

推荐文章

热门文章

相关标签