2017/10/21 学习笔记
来源:互联网 发布:女朋友是双性恋 知乎 编辑:程序博客网 时间:2024/06/04 18:11
学习自http://www.cnblogs.com/samchen2009/p/3364327.html,虽然是13年的文章,但是总结的真的非常棒。
关于GUI系统:
GUI组成部分:ActivityManager,Activity,InputManager,WindowManager,surfaceFlinger
关于窗口:对于Activity来说,是一个抽象类,Activity中最外层的不可见容器,每个Activity中都对应一个Window.
对于WindowManagerService来说,对应WindowManagerService中的windowState,它对应着ViewRootImpl中的mWindow,即Activity中的RootView.
窗口主要分为:应用程序窗口,即应用自己创建的窗口。第二为子窗口,比如对话框,输入法弹出框。第三为系统窗口,即为Dialog,Toast等。
关于DecorView:之前的学习笔记中提到过DecorView是在Activity的OnCreat阶段通过调用setContentView来调用mWindow的setContentView来创建DecorView,即DecorView为Window下的整个应用的最顶层View。它是FrameLayout的子类,是一个简单的单帧布局。关于我们之前提到过的ViewRoot可以理解为所用通过WindowManager的addView方法来添加的View都可以理解为RootView.
关于WindowManager:接口类,用来管理我们Activity中的窗口。
关于WindowManagerImpl:它是WindowManager的一个实例。
关于WindowManagerGlobal:一个singleton对象,一个应用中只能存在一个实例,在这个类中维护了三个数组,分别是Roots(存储ViewRootImpl),Views(存储ViewRoot),params(存储布局信息), 在WindowManagerGlobal的addView方法比较重要,它会通过ViewRoot创建ViewRootImpl实例,再向三个数组中添加对象,然后再调用ViewRootImpl的setView方法去触发View的绘制。
暂时总结至此,晚上继续。
- 2017/10/21 学习笔记
- 2017/10/10学习笔记
- 2017-3-10学习笔记
- 2017/10/03 学习笔记
- 2017/10/12学习笔记
- 2017/10/20学习笔记
- 2017/10/22学习笔记
- 2017/10/28 学习笔记
- 2017/10/30 学习笔记
- Servlet 学习笔记(始于2017/8/10)
- 2017-8-10 Struts2学习笔记二
- 2017/10/2 上午 学习笔记
- PYTHON 学习笔记10-27-2017
- PYTHON 学习笔记10-30-2017
- python学习笔记【2017-12-10】
- Spring学习笔记21
- 每日学习笔记(21)
- java学习笔记21
- lnmp分布式安装
- 简单版---JS获得某天是一年当中的第几天
- 17、高级IO
- 求斐波拉契数列的任一项(如:第110项)
- 浅析Java中的final关键字
- 2017/10/21 学习笔记
- 树状数组
- 欢迎使用CSDN-markdown编辑器
- 《精通CSS》 chapter 7 表单表格
- 项目管理和软件开发的边界
- 算法练习
- MySQL视图与索引
- 【Oracle】常用命令
- tensorflow学习1-mnsit的regression案例