关于android中几个Info系列类的总结

分类:android 435人阅读 评论(0) 收藏 举报 android manager application service action null

首先我们来看一下PackageItemInfo,它是包含了一些信息的基类,它的直接子类有:ApplicationInfoComponentInfoInstrumentationInfoPermissionGroupInfoPermissionInfo。它的间接子类有:ActivityInfoProviderInfoServiceInfo。这个类包含的信息对于所有包中项目是平等的。这些Package items是被Package manager所持有的。这个类提供了属性的非常普通的基本设置:labeliconmeta-data。这个类的意图不是被自己调用。它在这只是简单地分享被package manager返回的所有items之间的普通定义。比如,它自己并不实现Parcelable接口,但却帮助实现了Parcelable的子类提供了方便的方法。

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

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

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

ApplicationInfoResolveInfo比较:前者能够得到IconLabelmeta-datadescription。后者只能得到IconLabel

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

通过调用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,所以得到的要比第一种方法少(前者比它多那种servicepreviderapp)。

更多相关文章

  1. Android多文件断点续传(二)——实现数据库储存下载信息
  2. 一起Talk Android吧(第一百四十六回:Android自定义View之Layout三)
  3. Android(安卓)GPS (当前位置 & GPS信息更新)
  4. Android3.1比2.2多了一个android…
  5. Android:单元测试Junit的配置
  6. [原创] Android(安卓)GPS (当前位置 & GPS信息更新)
  7. Android简明开发教程九:创建应用程序框架
  8. Android调用堆栈跟踪
  9. Android(安卓)连接WIF获取的信息剖析

随机推荐

  1. 哈利·波特的考试 java描述
  2. 算法笔记_138:稳定婚姻问题(Java)
  3. Java web环境配置和Servlet实例HelloWorl
  4. Sping Boot入门到实战之实战篇(二):一些常用
  5. Java学习(三)面向对象之多态
  6. 将嵌入式DB与远程DB同步
  7. 我在Java中组织这些if语句时遇到了很多麻
  8. java与ASP.NET网络应用程序在生命期开始
  9. 怎样用java生成GUID与UUID
  10. 怎么用java 实现两个web service之间调用