几个Info系列的类的总结

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

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

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

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

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

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

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

  首先要得到manager:

PackageManager manager = getPackageManager();

  方法一:

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

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

  方法二:

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

intent.addCategory(Intent.CATEGORY_LAUNCHER);

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

  它是通过解析 标签得到有

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

你可能感兴趣的:(几个Info系列的类的总结)