Andorid系统的Framework层中包含了许多管理应用信息的类,比如PackageItmeInfo类下包括ApplicationInfo,ComponentInfo,InstrumentationInfo,PermissionGroupInfo,PermissionInfo。

结构图如下:

这些info都是被PackageManager管理, 我们可以通过PackageManager对象获得这些Info类。

这个类提供了属性的非常普通的基本设置:label、icon和meta-data。这个类的意图不是被自己调用。它在这只是简单地分享被package manager返回的所有items之间的普通定义。比如,它自己并不实现Parcelable接口,但却帮助实现了Parcelable的子类提供了方便的方法。
 

ApplicationInfo:是从一个特定的应用得到的信息。这些信息是从相对应的Androdimanifest.xml的< application>标签中收集到的。

  ResolveInfo:这个类是通过解析一个与IntentFilter相对应的intent得到的信息。它部分地对应于从AndroidManifest.xml的< intent>标签收集到的信息。

  PackageManager:这个类是用来返回各种的关联了当前已装入设备了的应用的包的信息。你可以通过getPacageManager来得到这个类。

  ApplicationInfo与ResolveInfo比较:前者能够得到Icon、Label、meta-data、description。后者只能得到Icon、Label。

  下面讲一下这几个类综合在一起的具体应用:

  通过调用PackageManager的方法可以得到两种不同的信息:

  首先要得到manager:

  PackageManager manager = getPackageManager();

  方法一:

  List< ApplicationInfo> appList = manager.getInstalledApplications(PackageManager.GET.UNINSTALLED_PAKAGES);

  它是通过解析AndroidManifest.xml的< application>标签中得到的,所以它能得到所有的app。

  方法二:

  Intent intent = new Intent(Intent.A CTION_MAIN,null);

  intent.addCategory(Intent.CATEGORY_LAUNCHER);

  List< ResolveInfo> appList = manager.queryIntentActivities(intent,0);

  它是通过解析< Intent-filter>标签得到有

  < action android:name=”android.intent.action.MAIN”/>

  < action android:name=”android.intent.category.LAUNCHER”/>

  这样的app,所以得到的要比第一种方法少(前者比它多那种service、previder等app)。

总结Android中的Info系列类相关推荐

  1. Android中对话框的工具类

    Android中对话框的工具类,里面总结了比较好用的方法,直接调用即可 public class DialogUtils {private DialogUtils() {}private static ...

  2. Cloudsim 3.0.3中VM调度策略系列类解析(带迁移的策略)

    Cloudsim 3.0.3中VM调度策略系列类解析(带迁移的策略) 注:本文为旧文的markdown重制版 Cloudsim中VM调度策略类在DataCenter(或PowerDataCenter) ...

  3. Android中怎样在工具类中获取Context对象

    场景 Android程序中访问资源时需要提供Context,一般来说只有在各种component中(Activity, Provider等等)才能方便的使用api来获取Context对象, 如果在编写 ...

  4. android 开发工具类,Android中常用开发工具类—持续更新...

    一.自定义ActionBar public class ActionBarTool { public static void setActionBarLayout(Activity act,Conte ...

  5. Android中TrafficStats流量监控类

    这个类提供了网络流量统计,这个统计包括上传和下载的字节数和网络数据包数.需要注意的是这个统计不能在所有的平台上使用,如果设备不支持的话,就会返回UNSUPPORTED. 常用函数: public st ...

  6. Android中少用枚举类(enum)而多用,泪目

    你的函数可以接受连续的数据 用于名称 other- 4. 不使用枚举类型的解决方案 ========================================================== ...

  7. Cocos2d—android 中常用的工具类

    <span style="font-size:18px;"> 在开发游戏过程中通常会用到一个经常编写的重复的代码,比如加载游戏地图,从地图中加载指定点的集合,序列帧的播 ...

  8. Android中注解处理器系列之-简单使用

    文章目录 创建模块 创建依赖关系 创建process类(注解处理节点) 创建注解 测试使用 创建模块 首先我们创建两个java项目(注意必须为两个java模块,我之前因为创建模块错误,导致代码功能根本 ...

  9. Android中MD5的工具类---给祖国庆生

    马上放假了,提前祝大家国庆快乐,也不知道为什么最近喜欢写博客了,看到点击量一点点的上来还是感觉挺开心的,就是不知道大家喜欢什么类型一点的文章. OK,先分享个MD5的工具类吧!这个做开发的应该都不陌生 ...

最新文章

  1. NameValueCollection详解
  2. 解决 fastjson 泛型报错 : java.lang.ClassCastException: com.alibaba.fastjson.JSONObject cannot be cast to X
  3. The UVALIVE 7716 二维区间第k小
  4. 全局变量和局部变量命名规则_变量范围和LEGB规则
  5. 信息安全系统设计基础第十一周 20135218 姬梦馨
  6. 2019年Java编程开发值得学习的10大技术
  7. MVC @RenderBody、@RenderSection、@RenderPage、@Html.RenderPartial、@Html.RenderAction
  8. Content-Script-Type的设置好象没多大用处,或许我不知道有什么用
  9. Oracle多行记录合并/连接/聚合字符串的几种方法
  10. python装饰器 廖雪峰_python装饰器的一个妙用
  11. 附件 计算机 丢失,帮你找回Win7开始菜单附件丢失的工具
  12. 锐捷客户端登陆打不开网页
  13. 网站开发项目的需求分析
  14. oracle TNS:listener does not currently know of service requested in connect descrip
  15. 信息终端安全是指办公和生产用计算机,从办公终端安全角度考虑,以下哪个是正确的()...
  16. 摄影师用AI预测MJ、李小龙活到现在长什么样,网友看后泪目
  17. HTML table表格 固定表头 tbody加滚动条
  18. PowerDesigner删除外键关系,而不删除外键列
  19. oracle itl 故障,ORACLE ITL事务槽
  20. vue.js请求数据

热门文章

  1. AlarmManager针对低电耗模式和应用待机模式进行优化
  2. 苹果Mac隔空接力Handoff失效怎么办?
  3. 全世界顶尖黑客排名!
  4. UI设计教程:关于版式设计
  5. linux mint无法启动,开机出现Firmware Bug:TSC_DEADLINE disabled due to Errata
  6. 听说算法工程师80%的时间都在做特征工程?
  7. 《转载》iTOP-4412开发板如何配置可以支持 AVIN 的摄像头
  8. 小程序在wxml里转数字_小程序html转wxml,微信小程序用wxParse解析html
  9. 在32位Win7下安装MySQL5.7.10安装配置过程
  10. E:\xxxgulp Local modules not found in ....