ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Android GUI 系统总结之Window

2021-09-18 11:01:26  阅读:191  来源: 互联网

标签:GUI PhoneWindow windowManager Window DecorView window Android view


Android GUI 系统总结之Window

本文内容均来源于网络,总结起来方便复习

文章目录


网址
https://www.cnblogs.com/samchen2009/p/3364327.html
https://blog.csdn.net/qian520ao/article/details/78555397

1 AndroidGUI总结

转载
https://www.cnblogs.com/samchen2009/p/3364327.html

在这里插入图片描述

2 Window说明

转载
https://blog.csdn.net/weixin_43766753/article/details/108350589

在这里插入图片描述
window的实现类只有一个:PhoneWindow,他继承自Window抽象类。

WindowManager相关
windowManager就是window管理类。这一部分的关键类有windowManager,viewManager,windowManagerImpl,windowManagerGlobal。windowManager是一个接口,继承自viewManager。viewManager中包含了我们非常熟悉的三个接口:addView,removeView,updateView。
windowManagerImpl和PhoneWindow是成对出现的,前者负责管理后者。WindowManagerImpl是windowManager的实现类,但是他本身并没有真正实现逻辑,而是交给了WindowManagerGlobal。WindowManagerGlobal是全局单例,windowManagerImpl内部使用桥接模式,他是windowManager接口逻辑的真正实现

view相关
这里有个很关键的类:ViewRootImpl。每个view树都会有一个。当我使用windowManager的addView方法时,就会创建一个ViewRootImpl。ViewRootImpl的作用很关键:

负责连接view和window的桥梁事务
负责和WindowManagerService的联系
负责管理和绘制view树
事件的中转站
每个window都会有一个ViewRootImpl,viewRootImpl是负责绘制这个view树和window与view的桥梁
WindowManagerService
这个是window的真正管理者,类似于AMS(ActivityManagerService)管理四大组件。所有的window创建最终都要经过windowManagerService。整个Android的window机制中,WMS绝对是核心,他决定了屏幕所有的window该如何显示如何分发点击事件等等。

2-1 PhoneWindow作用

第一、提供DecorView模板
在这里插入图片描述
Activity是通过setContentView把布局设置到DecorView中,那么DecorView本身的布局,就成为了Activity界面的背景。同时DecorView是分为标题栏和内容两部分,所以也可以可界面设置标题栏。同时,由于我们的界面是添加在的DecorView中,属于DecorView的一部分。那么对于DecorView的window属性设置也会对我们的布局界面生效。
第二、抽离Activity中关于window的逻辑。

3 window创建

TODO

标签:GUI,PhoneWindow,windowManager,Window,DecorView,window,Android,view
来源: https://blog.csdn.net/manchesterutd/article/details/120361095

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有