总结Android中的Info系列类
2014-03-27 21:05
344 查看
Andorid系统的Framework层中包含了许多管理应用信息的类,比如PackageItmeInfo类下包括ApplicationInfo,ComponentInfo,InstrumentationInfo,PermissionGroupInfo,PermissionInfo。
结构图如下:
![](http://img.blog.csdn.net/20140327205753234?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveXVhbmppYW4xOTkwMDYxMA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
这些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)。
结构图如下:
这些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 几个ApplicationInfo Info系列类的总结
- Android 几个Info系列类的总结
- Android 几个Info系列类的总结
- 关于android中几个Info系列类的总结
- Android 几个Info系列类的总结
- Android 几个Info系列类的总结
- 关于android中几个Info系列类的总结
- Android 几个Info系列类的总结
- Android 几个ApplicationInfo Info系列类的总结
- (android高仿系列)今日头条 --新闻阅读器 (三) 完结 、总结 篇
- Android总结篇系列:Android广播机制
- Android总结篇系列:Android Service
- Android多渠道打包(七):系列总结及展望
- Android总结篇系列:Android广播机制
- Android动画总结系列(5)——属性动画源码分析(Aniamtor/ValueAnimator)
- Android 开发问题总结系列一
- Android总结篇系列:Android Service
- Android总结篇系列:Activity Intent Flags及Task相关属性
- 积跬步-至千里系列之二:Android中Activity的启动流程分析和总结
- Android总结篇系列:Android广播机制