包管理之pm命令

       Android系统提供了pm命令,可以在一定程度上为手机系统开发者提供了便利。本文会简单介绍相关的文件和本人经常使用的命令。


一、pm在手机中的位置

          /system/bin/pm

        -rwxr-xr-x root     shell         191 2014-01-06 12:44 pm


二、相关文件

    /frameworks/base/cmds/pm/src/com/android/commands/pm/Pm.java

    就这一个类,其中有一个main方法:

    public static void main(String[] args) {
        new Pm().run(args);
    }

      其中会根据用户不同的输入参数去执行不同的方法,当然,核心还是要通过PackageManagerService提供的相关服务来实现。


三、常用命令

       可以直接使用adb shell pm XXX来执行pm命令,或者先进入到shell(adb shell),然后执行pm XXX等命令。

       直接输入pm,可以查看它的帮助文档。



1.安装、卸载apk

      pm install [-l] [-r] [-t] [-i INSTALLER_PACKAGE_NAME] [-s] [-f]
                      [--algo <algorithm name> --key <key-in-hex> --iv <IV-in-hex>]
                      [--originating-uri <URI>] [--referrer <URI>] PATH

      pm uninstall [-k] PACKAGE


      pm install: installs a package to the system.  Options:

       -r   重新安装已经存在的app,保留它原有的数据    有时安装时会报错:应用已存在,添加此参数就不会报错

      -s   将app安装到SD card中

      -f    将app安装到内部flash中,一般应该会安装到data/app目录下

       还有其它选项,这里不介绍。


2.列表显示所有apk

        pm list packages [-f] [-d] [-e] [-s] [-3] [-i] [-u] [--user USER_ID] [FILTER]

        举例:输入pm list packages,就可以看到手机中的所有应用,如下

root@android:/ # pm list packages                                              
package:android
package:com.Ama.PanicFlight
package:com.android.backupconfirm
package:com.android.browser
package:com.android.browser.provider
package:com.android.calculator2
package:com.android.calendar

……

         那几个可选的参数也非常有用。

         -f   同时显示对应的apk文件的绝对路径

         举例:查找包名中包含vending的apk的路径或是apk名称

root@android:/ # pm list packages -f vending                                   
package:/system/app/Phonesky.apk=com.android.vending

        这样我们就知道Phonesky.apk是它的文件名称


        -d   只显示被隐藏的apk

        -e   只显示未被隐藏的apk

        -s    只显示系统apk,应该是system目录下的apk,包括/system/framework, /system/app,/vendor(它是个链接,链接到/system/vendor,所以也是system目录下的)

        -3   只显示第三方的apk

        -u    还包含未安装的apk


3.获取/修改系统默认安装apk路径的信息

       pm set-install-location [0/auto] [1/internal] [2/external]
       pm get-install-location

      

       0 [auto]:         让系统决定安装在什么位置
       1 [internal]:   安装在设备内部空间
       2 [external]:  安装在外部空间中

       一般内部就是只data/app目录下,外部是指SD卡中,装在内部空间中的apk之后就不能移动到SD卡中,而安装在SD卡中的可以通过settings-Apps去移动apk到内部空间。

       一般地,auto也意味着internal,这点本人不确定。

       需要说明一点,这里的安装位置并不意味着apk就会安装到相应的目录中,起决定性作用的还是apk自身是否对安装位置有要求,它可以再AndroidManifes.xml文件中通过声明installLocation(auto、internalOnly、preferExternal),如果apk没有指明这个,那么我们这里的才会生效。


4.根据包名获取apk的位置

       pm path PACKAGE

       举例:pm path com.android.vending

130|root@android:/ # pm path com.android.vending
package:/system/app/Phonesky.apk


5.列表显示所有的features和libraries

       pm list features
       pm list libraries

     


四、小结

       命令如果有需要,多使用就会熟练。

       pm命令只是把PackageManagerService提供的某些服务提供了一个接口方便使用,要了解详情,需要研究PackageManagerService。


  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: PM2是一种Node.js应用程序的进程管理器。它可以帮助用户在应用程序崩溃后重新启动,并且可以用于零停机时间部署。 PM2的离线是指将已经安装了Node.js和PM2的应用程序打成一个tar压缩文件,以便在没有网络连接或无法在服务器上安装Node.js和PM2的情况下进行快速安装。 通过将应用程序和所需的依赖项打到一起,用户可以轻松地在不同的服务器之间进行部署,并且不必担心依赖项的安装。一旦解压缩并在服务器上安装Node.js和PM2,用户可以通过命令行启动和管理应用程序。 要创建PM2离线,用户需要先安装Node.js和PM2,并将应用程序及其依赖项放在一个目录中。然后,使用tar命令将目录打成tar文件。用户可以将tar文件复制到需要部署应用程序的服务器上,并使用tar命令解压缩。最后,用户可以使用PM2命令来启动和管理应用程序。 总之,PM2离线是一种方便的部署方式,使用户可以在没有网络连接或无法在服务器上安装依赖项的情况下快速部署应用程序。 ### 回答2: PM2是一个广泛使用的Node.js进程管理工具,它的主要功能是简化Node.js应用程序的部署和管理过程。 在使用PM2时,将应用程序打成tar压缩可以是一种更便于离线传输和部署的方式。 PM2离线tar压缩通常括应用程序的所有依赖项和配置文件,以及PM2运行所需的文件。 这个tar可以被离线传输到服务器或其他目标计算机,而不需要连接到Internet。 它可以极大地简化在不稳定的互联网连接或没有互联网连接的情况下部署Node.js应用程序的过程。 在使用PM2离线tar压缩时,需要解压缩该文件并在目标计算机上运行相应的命令,以启动应用程序并确保其正常运行。 如果一切都正确配置,则应该能够快速启动并运行应用程序,而无需在线安装任何软件或依赖项。 总之,PM2离线tar压缩是方便的、轻量级的、适用于离线环境的Node.js应用程序部署和管理解决方案。 它可以使将应用程序部署到各种目标服务器更加简单、可靠和高效。 ### 回答3: PM2是一个流行的Node.js进程管理器,它可以帮助开发者方便地管理和监控多个Node.js进程。PM2离线tar压缩是指将PM2及其依赖的所有文件打成一个tar.gz格式的压缩文件,使得用户可以离线安装PM2,而不需要联网下载依赖。 PM2离线tar压缩含了PM2运行所需的所有文件,如Node.js二进制文件,npm模块,pm2模块等。用户可以将该压缩下载到本地,通过解压缩、安装依赖等步骤完成PM2的离线安装。 PM2离线tar压缩的优点在于,它可以帮助用户离线安装PM2,避免了因为网络问题无法下载依赖而无法使用PM2的问题。此外,该离线还可以在多个机器上安装PM2,避免了重复下载依赖的时间和流量浪费。 总之,PM2离线tar压缩是一种方便用户离线安装PM2的方式,它使得用户可以更加便捷地在多个机器上安装和管理Node.js进程,提高了开发和部署效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值