Framework之PMS的学习

一、PMS的常用功能

  • 1、安装、卸载应用
  • 2、查询permission相关信息
  • 3、查询Application相关信息(application、activity、receiver、service、provider及相应属性等)
  • 4、查询已安装应用
  • 5、增加、删除permission
  • 6、清除用户数据、缓存、代码等

二、接口的讲解

  1.PackaeManager.java  ----------------------> ApplicationPackageManager.java------------------------------->PackageManagerService.java

    queryIntentActivities(intent, PackageManager.MATCH_ALL);                                  :  查询包含这个Intent的Activity

              resolveActivity(intent, PackageManager.MATCH_DEFAULT_ONLY)                      :   查询是否有满足这个Intent的Activity

              clearPackagePreferredActivities()                                                                           :    清除默认的修改

    addPreferredActivity()                                                                                             :    修改默认的配置

    if (r.match > bestMatch) bestMatch = r.match;

    replacePreferredActivity()                                                                                      :     替换Intent 匹配相同的Activity

              getPackageUid(String packageName)                                                                   :     获取相应包的UID

    getPermissionInfo(String packageName, int flags (大部分默认为0))                     :      通过包名获取权限

    getApplicationInfo(String packageName,int flags)                                                 :      检索出一个应用程序的所有信息

              getActivityInfo(ComponentName component,int flags)             :   检索出一个特定的Activity类的所有信息

    getPackageInfo(String packageName, int flags)                                                   :       包名获取该包名对应的应用程序的PackageInfo对象

    getInstalledPackages(int flags(一般传值为0))                    :   返回设备上所有已经安装的应用程序集合  

     入参params flags 附加选项的标志位,你可以理解为筛选条件,可以使用的标志位为:
     GET_ACTIVITIES :(packageInfo的标志)表示 返回包(packageInfo)中包含的所有Activity信息
     GET_GIDS :(packageInfo的标志)表示 返回关联的GID(groupId)
     GET_CONFIGURATIONS :(packageInfo的标志)表示 配置选项信息
     GET_INSTRUMENTATION :(PackageInfo的标志)表示 是否使用了instrumentation
     GET_PERMISSIONS :(PackageInfo的标志)表示 是否使用了permissions
     GET_PROVIDERS :(PackageInfo的标志)表示 是否使用了providers
     GET_RECEIVERS :(PackageInfo的标志)表示 是否使用了recevier
     GET_SERVICES :(PackageInfo的标志)表示 是否使用了service
     GET_SIGNATURES :(PackageInf的标志) 表示是否使用包的签名信息
     GET_UNINSTALLED_PACKAGES:参数标志位,表示检索出所有有数据的目录的应用程序(主要是卸载的)的信息

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

上一篇:安装软件程序


下一篇:Linux编程 18 安装软件程序(yum工具对软件包安装,删除,更新介绍)