Android 几个Info系列类的总结

 

首先我们来看一下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-filter>标签收集到的信息。

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.ACTION_MAIN,null);

intent.addCategory(Intent.CATEGORY_LAUNCHER);

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

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

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

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

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

时间: 2024-09-18 21:55:01

Android 几个Info系列类的总结的相关文章

Android应用开发提高系列(5)——Android动态加载(下)——加载已安装APK中的类和资源

前言  Android动态加载(下)--加载已安装APK中的类和资源.   声明 欢迎转载,但请保留文章原始出处:)  博客园:http://www.cnblogs.com 农民伯伯: http://over140.cnblogs.com  Android中文Wiki:http://wikidroid.sinaapp.com     正文 一.目标 注意被调用的APK在Android系统中是已经安装的.    上篇文章:Android应用开发提高系列(4)--Android动态加载(上)--加载

Android应用开发提高系列(2)——《Practical Java 中文版》读书笔记(下)

声明 欢迎转载,但请保留文章原始出处:)  博客园:http://www.cnblogs.com 农民伯伯: http://over140.cnblogs.com   系列 Android应用开发提高系列(1)--<Practical Java 中文版>读书笔记(上)    正文  注意:条目和用语可能与书籍有所出入,但尽量保持原样加一些自己的理解. 一.性能 1. 先把焦点放在设计.数据结构和算法身上 备注:良好的设计.明智的选择数据结构和算法可能比高效代码更重要.   2.  不要依赖编译

使用OpenGL开发Android应用详解系列三

注:近三篇转载中的视锥体部分结合着来看,再参照老罗的3d变换,基本可以初步理解和完成相关视锥体调整. 使用OpenGL开发Android应用详解系列三 [原创]转载请注明出处 我一家网 http://www.5yijia.com 前面两节主要介绍了一下OpenGL的基本概念,以及在Android开发中引入OpenGL时,Android项目的基本构成情况.这一节开始,我们通过具体的实例,来进行简单3D图形的描画. 注:代码基础还是采用上一节: 使用OpenGL开发Android应用详解系列二中使用

Android双击退出Activity的类代码

  一个收集的类,Android双击退出Activity的类代码,返回一个双击退出的实例,双击退出Activity,如果msg为null,而默认显示的提示语为"再按一次退出,类很简单,实用性强,代码如下:

[UML]UML系列——类图class的依赖关系

相关文章          [UML]UML系列--用例图Use Case       [UML]UML系列--用例图中的各种关系(include.extend)       [UML]UML系列--类图Class       [UML]UML系列--类图class的关联关系(聚合.组合) 依赖关系的概念与符号        依赖表示一个类以某种形式依赖于其他类.当两个类处于依赖关系中时,其中一个类的改变可能会影响另一个类.        符号:   依赖关系在代码中的表现       在程序代

[UML]UML系列——类图class的泛化关系

系列文章       [UML]UML系列--用例图Use Case       [UML]UML系列--用例图中的各种关系(include.extend)       [UML]UML系列--类图Class       [UML]UML系列--类图class的关联关系(聚合.组合)       [UML]UML系列--类图class的依赖关系 泛化关系的引入       在现实生活中,有时会出现一类事物具有另一类事物的全部特点,除此之外还有自身的特点.       例如:        "不管

[UML]UML系列——类图class的实现关系Realization

系列文章       [UML]UML系列--用例图Use Case       [UML]UML系列--用例图中的各种关系(include.extend)       [UML]UML系列--类图Class       [UML]UML系列--类图class的关联关系(聚合.组合)       [UML]UML系列--类图class的依赖关系       [UML]UML系列--类图class的泛化关系 接口的概念        接口是一组没有实现的操作的集合.接口只提供操作的声明,不提供任何

服务器-Android如何在一个异步任务类结束时再次开启一个异步任务类

问题描述 Android如何在一个异步任务类结束时再次开启一个异步任务类 本人Android新手,在学习中遇到了一个难题,希望大神给我一点启发,问题是这样的,我从服务器获取JSON数据进行解析,在onPostExecute中获取了一个图片的URL,当我在onPostExecute进行图片的读取时程序报错,查找了一些资料,说需要在onPostExecute里发送一个消息在开启一个任务类,请问大神,该怎么在onPostExecute里发送一个消息通知线程开启任务类呢? 解决方案 直接在onPostE

android:将两个类合并到一个activity中有什么合适的方法?

问题描述 android:将两个类合并到一个activity中有什么合适的方法? 我有两个类,一个是MainActivity扩展了activity,另外一个是AlarmReceiver扩展了BroadcastReceiver.我怎么能够消除AlarmReceiver,而是在MainActivity实现这个功能?我知道不可能同时扩展两个类,所以我想知道最好的方法应该是什么? MainActivity public class MainActivity extends Activity { @Ove