Android的包管理机制浅析(三)
来源:互联网 发布:java 获取当前web路径 编辑:程序博客网 时间:2024/06/05 04:53
前面的内容只是针对几个关键的流程进行了分析,大家看完可能对整个包管理机制还不是很了解,本篇对上面的做个总结和概括,主要类的作用在第一篇中已经有简要说明,主要方法的作用在第二篇的安装流程中都有涉及到,这里就不赘述了。
类图如下:
看完大家应该都有注意到上图中并没有把表示应用各个组件信息的类画在这里,是因为有两大类别的数据结构在使用。他们之间又有一些转化关系。我单独把它们拿出来说。
这其中的关系错综复杂,看着都有点头晕。这是因为其实Android的几大组件的信息都是一样的,不管组成什么样的数据结构都无外乎那些内容,这里有多种表示是结合了其他的一些对应内容组合起来的,也是为了多种应用场景下查询和使用的便捷。下面以Activity组件来进行分析,注意receiver也是用的同一个类表示。
Activity的内容是在PackageParser中解析出来的,看一下PackageParser.parserActivity()方法,将其中除了intent以外的信息都存到了Activity类的info中也就是一个ActivityInfo,而将其intent-filter标签里的内容保存到一个ActivityIntentInfo对象中。最终这个对象会和其他组件信息一起组成了Package对象作为包解析的结果。
前文分析中在scanPackageLI方法中,PackagemanagerService又将parser出来的Activity对象组合成了ActivityIntentResolver对象保存在类中,这里保存的对象都是为了方便ActivityManagerService在运行过程中执行组件查询操作的,比如根据Intent查询对应的Activity信息。
另外,大家在本系列第一篇中看到了一组AIDL文件:ActivityInfo,ServiceInfo,ProviderInfo和ResolveInfo等等,这些都是可以在各个进程间传递的应用组件信息的数据结构。
关于整个包管理框架和机制下面有三篇博客大家学习时需要参看一下:
http://wenku.baidu.com/link?url=ODaK5SeUXBja2KZNuiOArrPdI1Cu7fuMdTWSm0xu5BV-ZO-hXrds450AahuwRMz8IHRqTe0QIpU1XvnbNj6tuliurok2kik-zh_q9Xumsv7###
http://blog.csdn.net/goohong/article/details/7881509
http://www.ibm.com/developerworks/cn/opensource/os-cn-android-sec/
- Android的包管理机制浅析(三)
- Android的包管理机制浅析(一)
- Android的包管理机制浅析(二)
- slackware包的管理机制
- 【浅析】Python的内存管理机制
- (一)Android的内存管理机制
- Android的内存管理机制
- Android的内存管理机制
- 浅析Objective-C的内存管理机制
- 浅析Android下的Android.mk文件(三)
- 轻量级操作系统FreeRTOS的内存管理机制(三)
- 了解全新的 Eclipse 包管理机制
- Android电源管理机制的实现
- Android 6.0的权限管理机制
- 浅析C++内存管理机制
- 浅析java内存管理机制
- Android Launcher浅析(三)
- 深入SQLSERVER2000的内存管理机制(三)
- 两个栈实现队列 两个队列实现栈
- 【android】让listview的顶部或者底部也显示分割线
- 黑马程序员——学习日记6——线程间通信
- Java 中的JOption函数
- Ubuntu下VIM使用指南
- Android的包管理机制浅析(三)
- yii2 - 模块(modules)的view 映射到theme里面
- [leetcode]Search a 2D Matrix
- Apktool|ShakaApktool 简体中文汉化版|APK反编译工具(更新)
- 题目1049:字符串去特定字符
- VB.NET与 sql数据库
- 红茶一杯话Binder(经典Binder解析)
- 发布网站-DoNetAsp-Win7
- 使得防守对方 但是 地方使得范德萨发生的范德萨发生的