- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Android应用程序窗口(Activity)的运行上下文环境(Context)的创建过程分析解析
Android应用程序窗口(Activity)的运行上下文环境(Context)的创建过程分析
在前文中,我们简要介绍了Android应用程序窗口的框架。Android应用程序窗口在运行的过程中,需要访问一些特定的资源或者类。这些特定的资源或者类构成了Android应用程序的运行上下文环境,Android应用程序窗口可以通过一个Context接口来访问它,这个Context接口也是我们在开发应用程序时经常碰到的。在本文中,我们就将详细分析Android应用程序窗口的运行上下文环境的创建过程。
在前面一文中提到,Android应用程序窗口的运行上下文环境是通过ContextImpl类来描述的,即每一个Activity组件都关联有一个ContextImpl对象。ContextImpl类继承了Context类,它与Activity组件的关系如图1所示:
这个类图在设计模式里面就可以称为装饰模式。Activity组件通过其父类ContextThemeWrapper和ContextWrapper的成员变量mBase来引用了一个ContextImpl对象,这样,Activity组件以后就可以通过这个ContextImpl对象来执行一些具体的操作,例如,和等操作。同时,ContextImpl类又通过自己的成员变量mOuterContext来引用了与它关联的一个Activity组件,这样,ContextImpl类也可以将一些操作转发给Activity组件来处理。
在前面一文中,我们已经详细分析过一个Activity组件的启动过程了。在这个启动过程中,最后一步便是通过ActivityThread类的成员函数performLaunchActivity在应用程序进程中创建一个Activity实例,并且为它设置运行上下文环境,即为它创建一个ContextImpl对象。接下来,我们就从ActivityThread类的成员函数performLaunchActivity开始,分析一个Activity实例的创建过程,以便可以从中了解它的运行上下文环境的创建过程,如图2所示:
这个过程一共分为10个步骤,接下来我们就详细分析每一个步骤。
Step 1. ActivityThread.performLaunchActivity
[java] view plain copy 在CODE上查看代码片派生到我的代码片
public final class ActivityThread {
......
Instrumentation mInstrumentation;
......
private final Activity performLaunchActivity(ActivityClientRecord r, Intent customIntent) {
......
ComponentName component = ent.getComponent();
......
Activity activity = null;
try {
java.lang.ClassLoader cl = r.packageInfo.getClassLoader();
activity = mInstrumentation.newActivity(
cl, component.getClassName(), ent);
......
} catch (Exception e) {
......
}
try {
Application app = r.packageInfo.makeApplication(false, mInstrumentation);
......
if (activity != null) {
ContextImpl appContext = new ContextImpl();
......
appContext.setOuterContext(activity);
您可能关注的文档
- Altium_designer_rule规则模版说明解析.ppt
- Altuim设计规则检查解析.docx
- Altium_Designer电子工程师培训4解析.ppt
- Altera可编程逻辑器件结构解析.ppt
- Altium_Designer使用解析.ppt
- AMETEK石英玻璃窗200887001解析.doc
- AndroidART运行时无缝替换Dalvik虚拟机的过程分析解析.doc
- AndroidBLE与终端通信(三)——客户端与服务端通信过程以及实现数据通信解析.doc
- altiumdesigner教学PPT第2章解析.ppt
- an,en,in教学课件解析.ppt
- 中国国家标准 GB/T 45154-2024老龄化社会 年龄包容性劳动力通用要求与指南.pdf
- 《GB/T 45154-2024老龄化社会 年龄包容性劳动力通用要求与指南》.pdf
- 中国国家标准 GB/T 7019-2024纤维水泥制品试验方法.pdf
- GB/T 7019-2024纤维水泥制品试验方法.pdf
- GB/T 45150-2024老龄化社会 认知症包容性社群框架.pdf
- 中国国家标准 GB/T 25320.4-2024电力系统管理及其信息交换 数据和通信安全 第4部分:包含MMS的协议集及其附件.pdf
- 中国国家标准 GB/T 45150-2024老龄化社会 认知症包容性社群框架.pdf
- 《GB/T 25320.4-2024电力系统管理及其信息交换 数据和通信安全 第4部分:包含MMS的协议集及其附件》.pdf
- 《GB/Z 44938.1-2024机械电气安全 第1部分:用于保护人员安全的传感器》.pdf
- 中国国家标准 GB/T 21551.3-2024家用和类似用途电器的抗菌、除菌、净化功能 第3部分:空气净化器的特殊要求.pdf
最近下载
- 奥数奶茶背后的秘密统计综合应用课件三年级上册数学苏教版.pptx
- 一次性使用可视气管插管产品技术要求完整版2022年新版.pdf
- 2025云南省普洱市搬迁安置办公室招聘劳务派遣人员(1人)笔试备考题库及答案解析.docx VIP
- Unit4 Journey across a vast land (直击高考+写作指导+素材宝库+实战演练)-【同步作文课】高二英语单元写作深度指导(人教版2019选择性必修第二册).docx VIP
- 大学生就业指导(第4版)PPT全套完整教学课件.pptx
- 陕西专升本 英语 基础高频词.pdf VIP
- 桥博问题整理.pdf VIP
- 中国华能集团有限公司供应商管理实施细则(华能制度[2019]).doc
- 学校财务部工作总结PPT.pptx
- 2024年保安员(初级)证考试题库(附答案).pdf VIP
文档评论(0)