首先我们来看一下PackageItemInfo,它是包含了一些信息的基类,它的直接子类有:ApplicationInfo、ComponentInfo、InstrumentationInfo、PermissionGroupInfo、PermissionInfo。它的间接子类有:ActivityInfo、ProviderInfo、ServiceInfo。这个类包含的信息对于所有包中项目是平等的。这些Package items是被Package manager所持有的。这个类提供了属性的非常普通的基本设置: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)。

更多相关文章

  1. JS复制各种链接
  2. Android资讯新闻类App(头条、网易等),频道管理集成之数据库存储
  3. Android_OTT的update升级包版本信息的读取
  4. AndroidManifest.xml 标签含义字典
  5. android listview 和button 共存的事件响应问题。
  6. Android(安卓)InterFilter的匹配规则
  7. Android(安卓)dumpsys命令学习小记
  8. Android(安卓)Browser的配置管理
  9. Android(安卓)ADB命令大全(通过ADB命令查看wifi密码、MAC地址、

随机推荐

  1. android根据电话号码查询联系人名称,导出
  2. Android用ViewFlipper动态加载图片视图
  3. android http协议post请求方式
  4. Android获取SD卡容量的两种方法
  5. 不能下载Android源码的解决方法
  6. Android中Service(服务)详解
  7. tmp opengl es
  8. Android颜色对照表
  9. 在android中用代码触发一个按钮的点击事
  10. Android(安卓)JSON解析示例代码