码迷,mamicode.com
首页 > 移动开发 > 详细

Android4.4 Framework分析——Activity窗口的创建过程(一)

时间:2014-12-04 23:17:04      阅读:211      评论:0      收藏:0      [点我收藏+]

标签:activity窗口创建   gui   

学习android的窗口模块一周多了,感觉自己对这个模块的理解还是比较模糊,先把get的知识点记录一下。

下图是学习过程记录的activity窗口启动过程序列图,没有或者没办法完整的描绘出来,整个过程比较复杂:

bubuko.com,布布扣

整个学习过程中是参照老罗的android之旅博客和《深入理解android内核设计思想》一书来辅助的,非常感谢前辈。

Activity的整体启动过程可查看Android4.4 framework分析——Launcher中启动应用程序(startActivity)的过程 的序列图,本文关注Activity窗口创建细节部分(也许不够细)。

step3~step13,是Activity上下文Context的创建过程,Activity本身是Context的间接子类,而此处创建的ContextImpl与它们的关系,可查看Android与设计模式——装饰者(Decorator)模式一文。step3~step13的详细分析,建议查看老罗的Android应用程序窗口(Activity)的运行上下文环境(Context)的创建过程分析 ,这篇文章写的比较详细。

step14~step16,是PhoneWindow的创建,我们标题提到的Activity窗口其实就是这个,所有的View都是在这window上建立起来的。

step19~step22,是WindowManager的创建过程。

step24~step33,是DecorView的创建过程,这个DecorView后面会被add到PhoneWindow里。

step40~step42,XXXActivity的onResume()的调用过程,标志着这个activity要被显示出来了。

step47,开始将窗口添加到WMS中。

step50,ViewRootImpl创建了。

step51~step57,将window与WMS关联起来了,WMS中将会记录这个window的相关信息。

step63,将逐步将我们在xml文件中的布局添加到ViewRootImpl中。


后面会用SurfaceFlinger来关联Surface之类的,这部分C++代码不太理解,整个过程有不少地方需要加深理解,继续啃代码。。。。


右键复制图片地址,在浏览器中打开即可查看大图。

未完待续,有不对的地方,请指正。



Android4.4 Framework分析——Activity窗口的创建过程(一)

标签:activity窗口创建   gui   

原文地址:http://blog.csdn.net/canghai1129/article/details/41731417

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!