Android下pm 命令详解 - 安装APK

2024-05-27 11:32
文章标签 android 安装 命令 详解 apk pm

本文主要是介绍Android下pm 命令详解 - 安装APK,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


http://blog.csdn.net/xingfuyusheng/article/details/37911495


Sam在看相关PackageManager代码时,无意中发现Android 下提供一个pm命令,通常放在/system/bin/下。这个命令与Package有关,且非常实用。所以研究之。


0. Usage:
usage: pm [list|path|install|uninstall]
         pm list packages [-f]
         pm list permission-groups
         pm list permissions [-g] [-f] [-d] [-u] [GROUP]
         pm list instrumentation [-f] [TARGET-PACKAGE]
         pm list features
         pm path PACKAGE
         pm install [-l] [-r] [-t] [-i INSTALLER_PACKAGE_NAME] [-s] [-f] PATH
         pm uninstall [-k] PACKAGE
         pm enable PACKAGE_OR_COMPONENT
         pm disable PACKAGE_OR_COMPONENT
         pm setInstallLocation [0/auto] [1/internal] [2/external]

The list packages command prints all packages.   Options:
 -f: see their associated file.

The list permission-groups command prints all known
permission groups.

The list permissions command prints all known
permissions, optionally only those in GROUP.   Options:
 -g: organize by group.
 -f: print all information.
 -s: short summary.
 -d: only list dangerous permissions.
 -u: list only the permissions users will see.

The list instrumentation command prints all instrumentations,
or only those that target a specified package.   Options:
 -f: see their associated file.

The list features command prints all features of the system.

The path command prints the path to the .apk of a package.

The install command installs a package to the system.   Options:
 -l: install the package with FORWARD_LOCK.
 -r: reinstall an exisiting app, keeping its data.
 -t: allow test .apks to be installed.
 -i: specify the installer package name.
 -s: install package on sdcard.
 -f: install package on internal flash.

The uninstall command removes a package from the system. Options:
 -k: keep the data and cache directories around.
after the package removal.

The enable and disable commands change the enabled state of
a given package or component (written as "package/class").

The getInstallLocation command gets the current install location
 0 [auto]: Let system decide the best location
 1 [internal]: Install on internal device storage
 2 [external]: Install on external media

The setInstallLocation command changes the default install location
 0 [auto]: Let system decide the best location
 1 [internal]: Install on internal device storage
 2 [external]: Install on external media


1. 具体使用方法
1.1:察看已安装的包:
pm list package
此时则显示所有已经安装的包名。

pm list package -f
也显示associated文件所在目录(即保存的APK文件)

1.2:察看已知的权限组:
pm list permission-groups

1.3:察看所有已知的权限
pm list permissions

1.4: 列出所有硬件相关信息
pm list features

结果通常类似:
feature:reqGlEsVersion=0x20000
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.wifi


1.5:列出指定包名的  associated 文件 (APK存档文件) 所在
例如:
pm path com.TDiJoy.fane
package:/mnt/asec/com .TDiJoy.fane-1/pkg.apk


1.6: 安装APK:
pm install [-l] [-r] [-t] [-i INSTALLER_PACKAGE_NAME] [-s] [-f] PATH

PATH 指 APK文件绝对路径和文件名。

例如:
pm install /data/3dijoy_fane.apk

这几个参数很有用:
-r: 安装一个已经安装的APK,保持其数据不变。
-i:指定安装的包名。(没试出来)
-s: 安装到SDCard上
-f: 安装到内部Flash上。



1.6:卸载APK:
pm uninstall 包名。
例如:
pm uninstall com.TDiJoy.fane


1.7: 得到和设置缺省安装位置:
The getInstallLocation command gets the current install location
 0 [auto]: Let system decide the best location
 1 [internal]: Install on internal device storage
 2 [external]: Install on external media

The setInstallLocation command changes the default install location
 0 [auto]: Let system decide the best location
 1 [internal]: Install on internal device storage
 2 [external]: Install on external media

pm  getInstallLocation
得到缺省的安装位置。

设置:
pm setInstallLocation <0|1|2>

0: 自动。
1:内部Flash。
2:扩展存储设备。




实例:如何在海信2.2 STB上将APK安装到U盘中:
Sam首先尝试使用:
pm setInstallLocation 2
之后安装之,没有用。

后来做如下尝试:

   在其它设置->存储设备->制定默认存储设备中选择U盘为默认存储设备。

    # pm install   -s xxxx.apk


就可以成功。

这篇关于Android下pm 命令详解 - 安装APK的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1007356

相关文章

Oracle的to_date()函数详解

《Oracle的to_date()函数详解》Oracle的to_date()函数用于日期格式转换,需要注意Oracle中不区分大小写的MM和mm格式代码,应使用mi代替分钟,此外,Oracle还支持毫... 目录oracle的to_date()函数一.在使用Oracle的to_date函数来做日期转换二.日

Java实现任务管理器性能网络监控数据的方法详解

《Java实现任务管理器性能网络监控数据的方法详解》在现代操作系统中,任务管理器是一个非常重要的工具,用于监控和管理计算机的运行状态,包括CPU使用率、内存占用等,对于开发者和系统管理员来说,了解这些... 目录引言一、背景知识二、准备工作1. Maven依赖2. Gradle依赖三、代码实现四、代码详解五

Jsoncpp的安装与使用方式

《Jsoncpp的安装与使用方式》JsonCpp是一个用于解析和生成JSON数据的C++库,它支持解析JSON文件或字符串到C++对象,以及将C++对象序列化回JSON格式,安装JsonCpp可以通过... 目录安装jsoncppJsoncpp的使用Value类构造函数检测保存的数据类型提取数据对json数

mac安装redis全过程

《mac安装redis全过程》文章内容主要介绍了如何从官网下载指定版本的Redis,以及如何在自定义目录下安装和启动Redis,还提到了如何修改Redis的密码和配置文件,以及使用RedisInsig... 目录MAC安装Redis安装启动redis 配置redis 常用命令总结mac安装redis官网下

Mysql 中的多表连接和连接类型详解

《Mysql中的多表连接和连接类型详解》这篇文章详细介绍了MySQL中的多表连接及其各种类型,包括内连接、左连接、右连接、全外连接、自连接和交叉连接,通过这些连接方式,可以将分散在不同表中的相关数据... 目录什么是多表连接?1. 内连接(INNER JOIN)2. 左连接(LEFT JOIN 或 LEFT

Java中switch-case结构的使用方法举例详解

《Java中switch-case结构的使用方法举例详解》:本文主要介绍Java中switch-case结构使用的相关资料,switch-case结构是Java中处理多个分支条件的一种有效方式,它... 目录前言一、switch-case结构的基本语法二、使用示例三、注意事项四、总结前言对于Java初学者

Linux内核之内核裁剪详解

《Linux内核之内核裁剪详解》Linux内核裁剪是通过移除不必要的功能和模块,调整配置参数来优化内核,以满足特定需求,裁剪的方法包括使用配置选项、模块化设计和优化配置参数,图形裁剪工具如makeme... 目录简介一、 裁剪的原因二、裁剪的方法三、图形裁剪工具四、操作说明五、make menuconfig

Linux使用nohup命令在后台运行脚本

《Linux使用nohup命令在后台运行脚本》在Linux或类Unix系统中,后台运行脚本是一项非常实用的技能,尤其适用于需要长时间运行的任务或服务,本文我们来看看如何使用nohup命令在后台... 目录nohup 命令简介基本用法输出重定向& 符号的作用后台进程的特点注意事项实际应用场景长时间运行的任务服

详解Java中的敏感信息处理

《详解Java中的敏感信息处理》平时开发中常常会遇到像用户的手机号、姓名、身份证等敏感信息需要处理,这篇文章主要为大家整理了一些常用的方法,希望对大家有所帮助... 目录前后端传输AES 对称加密RSA 非对称加密混合加密数据库加密MD5 + Salt/SHA + SaltAES 加密平时开发中遇到像用户的

Redis的Hash类型及相关命令小结

《Redis的Hash类型及相关命令小结》edisHash是一种数据结构,用于存储字段和值的映射关系,本文就来介绍一下Redis的Hash类型及相关命令小结,具有一定的参考价值,感兴趣的可以了解一下... 目录HSETHGETHEXISTSHDELHKEYSHVALSHGETALLHMGETHLENHSET