android中View, Window, Activity, WindowManager,ViewRoot几者之间的关系

理性分析Window、Activity、DecorView以及ViewRoot之间关系 将DecorView建立起来,通过setContentView设置的界面,如何在onResume后对用户可见,需要从ActivityThread说起;重点看下handleResumeActivity(),在这其中,DecorView将会显示出来,同时重要的一个角色;ViewRoot也将登场;当我们执行了Activity.makeVisible()方法之后,界面才对我们是可见的;Activity和window,DecorView ,viewRoot是什么关系。今天我们就来讲解下,这样你在面试时候,游刃有余; 阅读详情

View:最基本的UI组件,表示屏幕上的一个矩形区域。


Window: 表示一个窗口,包含一个View tree和窗口的layout 参数。View tree的root View可以通过getDecorView得到。还可以设置Window的Content View。
Activity包含一个Window,该Window在Activity的attach方法中通过调用PolicyManager.makeNewWindow创建。
WindowManager:一个interface,继承自ViewManager。 有一个implementation class:android.view.WindowManagerImpl。其实WindowManager并不是整个系统的窗口管理器,而是所在应用进程的窗口管理器。系统全局的窗口管理器运行在SystemServer进程中,是一个Service。ViewRoot通过IWindowSession接口与全局窗口管理器进行交互。 将一个View add到WindowManager时,WindowManagerImpl创建一个ViewRoot来管理该窗口的根View。,并通过ViewRoot.setView方法把该View传给ViewRoot。
ViewRoot用于管理窗口的根View,并和global window manger进行交互。ViewRoot中有一个nested class: W,W是一个Binder子类,用于接收global window manager的各种消息, 如按键消息, 触摸消息等。 ViewRoot有一个W类型的成员mWindow,ViewRoot在Constructor中创建一个W的instance并赋值给mWindow。 ViewRoot是Handler的子类, W会通过Looper把消息传递给ViewRoot。 ViewRoot在setView方法中把mWindow传给sWindowSession。
总之,每个窗口对应着一个Window对象,一个根View和一个ViewRoot对象。要想创建一个窗口,可以调用WindowManager的addView方法,作为参数的view将作为在该窗口上显示的根view。

Android面经(17/30)Activity、Window、DecorView以及ViewRoot之间的层级关系 安卓应用开发经常会接触到UI开发,除了对View的绘制流程需要有所了解,对我们目光所及的界面的层级也需要有所了解。Activity、Window、DecorView以及ViewRoot之间到底有什么联系呢? 阅读详情

相关推荐

Ubuntu 22.04下Colmap带CUDA支持的编译安装全攻略(附显卡架构查询指南)

本文详细指导在Ubuntu 22.04系统上从源码编译安装支持CUDA加速的Colmap,解决了官方版本无GPU支持导致处理速度慢的问题。重点包括环境依赖准备、CUDA工具链配置、显卡计算能力查询以及完整的编译安装步骤,旨在帮助研究者和开发者高效部署高性能三维重建工具。

gold8的专栏 345

androidP: View的工作原理-初识ViewRoot和DecorView

参考链接: Activity、Window、DecorView与ViewRoot之间的关系 : https://blog.csdn.net/m0_37698652/article/details/101381021?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1.pc_relevant_paycolumn_v3&depth_

zhuowalun8427的博客 393

专栏丨华为HN8145XR光猫获取超级管理员密码

摘要:本文详细介绍了华为HN8145xr光猫获取超级管理员权限的完整步骤。首先通过ONT使能工具补全shell,然后利用Telnet登录光猫后台进行操作。文章提供了多种获取超级密码的方法,包括配置文件解密、一键查询工具等,并针对联通光猫特别说明了默认密码格式(CUAdmin+后八位数字)。此外,还介绍了恢复出厂设置、修改SSID等实用操作,帮助用户完全掌控光猫设备。文末附有详细的命令行操作指南,适合有一定技术基础的用户参考。

8278

Android 活动、窗、DecorView、ViewRoot

Android 活动、窗、DecorView、ViewRoot

李青涛的博客 1959

AD7920实战:从咪头到ADC的音频信号采集电路设计全解析(附电路图)

本文详细解析了基于AD7920 ADC芯片的音频信号采集电路设计全流程。从驻极体咪头的驱动、AD8542运放的两级增益与偏置设计,到关键的抗混叠滤波器配置,以及ADC接口的驱动缓冲与PCB布局要点,提供了完整的实战指南与电路图,帮助开发者实现高质量音频信号采集。

red88的博客 803

【学习路线】 游戏客户端开发入门到进阶

游戏开发是一个交叉性极强的技术领域,对开发者提出了高维度的要求。作为初学者,不要急于求成,打牢基础、注重原理、勤于实践,你的成长将会非常快速而稳健。希望这份学习路线与书单能为你指明方向,迈出职业开发者的第一步。

hhw_hhw的博客 2130

【学习】Android中View的工作原理(上)——ViewRoot、DecorView、MeasureSpec

学习于《Android开发艺术探索》,本文讲解了对ViewRoot、DecorView、MeasureSpec的解析

PanicLin的博客 1637

贝塞尔曲线原理--曲线生成--路径规划--matlab代码

贝塞尔曲线有着很多特殊的性质, 在图形设计和路径规划中应用都非常广泛, 在路径规划中贝塞尔曲线完全由其控制点决定其形状, n个控制点对应着n-1阶的贝塞尔曲线,并且可以通过递归的方式来绘制.

bob595078694的博客 1万+

Android进阶之路------View的工作原理(1)初识ViewRoot与DecorView

ViewRoot 与 DecorView 了解View的工作原理之前,需要先了解ViewRoot与DecorView。 ViewRoot对应于ViewRootImpl类,它是链接WindowManager和DecorView的纽带,最终通过ViewRootImpl类中的performTraversals方法完成View的三大流程:measure,layout,draw。 那么ViewRoot是...

盐加三勺的博客 465

大数据平台符合信创(CDH国产化代替)详细方案(企业内部不外传方案)

信创旨在实现信息技术产业的自主可控,减少对外部技术的依赖,从而提升国家信息安全和经济发展的自主性。在此背景下,中国对信创提出了更高的要求,以期在激烈的市场竞争中占据有利地位。信创不仅关乎技术层面的创新,更涉及到产业链条的整合与优化。它要求从基础硬件、操作系统、数据库、中间件等各个层面实现国产替代,构建完整的信息技术生态体系。尤其是在做国企项目时,就有硬性要求使用符合信创(国产代替)。在信创背景下,符合要求的产品必须具备自主可控、安全可靠以及性能卓越等核心特点。

大模型大数据攻城狮的专栏 3512

Dify 第 4 篇 Dify 示例:数据库执行Agent

本文介绍了如何在Dify平台创建一个能够执行SQL查询的数据库Agent。通过安装并配置"通义千问"和"数据库"两个插件,实现自然语言到SQL语句的转换和执行。关键步骤包括:1)安装插件并配置API Key;2)设置默认数据库连接(建议使用只读账号);3)准备测试数据表结构。该Agent支持通过工具调用查询表结构、转换自然语言为SQL、执行查询并返回结果,同时提供了CSV查询和HTTP API接口功能。文中还提供了MySQL测试数据表的创建脚本和示例数据。

甘蓝的专栏 1158

Android之View的工作原理

文章目录一、ViewRoot二、DecorView三、MeasureSpec四、View的measure过程4.1 View的measure过程4.2、ViewGroup的measure过程4.3、注意:五、View的layout过程5.1、View的layout()过程5.2、ViewGroup的layout()过程5.3、注意: 对于重写onLayout方法,一定要对子View调用layout()方法,这样才能将子View放到合适的位置。六、view的draw过程 一、ViewRoot ViewRoot

zengke的博客 566

基于Simulink和Control System Toolbox的线控转向(Steer-by-Wire)系统设计

通过上述步骤,我们成功设计并实现了基于 Simulink 和 Control System Toolbox 的线控转向(Steer-by-Wire)系统。该系统能够接收来自方向盘的角度指令,经过控制器处理后,驱动转向执行器(如电动机),实现对车辆前轮转向角度的精确控制。通过虚拟场景仿真、硬件在环测试和实车测试,验证了系统的响应速度、控制精度、车辆稳定性和实时性能,并通过参数优化进一步提升了系统的性能。

MHD0815的博客 551

扫地机器人核心技术解析:从双线激光雷达到热水洗拖布,石头P20 Max如何实现智能清洁?

扫地机器人作为智能家居的核心设备,其核心技术围绕感知、决策与执行三大系统展开。感知系统依赖激光雷达(LDS)与视觉传感器构建环境地图,其中双线固态激光雷达通过提升扫描速度与精度,实现了更稳定的低矮空间导航与复杂光线下的避障。清洁系统则通过高吸力马达与旋转拖布模组协同工作,而热水洗拖布技术利用60℃高温有效溶解油污,提升了拖地卫生等级与自清洁效果。这些技术创新共同指向提升家庭清洁自动化程度与清洁品质,尤其适用于大户型、有宠物或对地面卫生有较高要求的场景。以石头P20 Max为例,其RR mason 10.0算

aodiyi6351的博客 462

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

android 中View, Window, Activity, WindowManager,ViewRoot几者之间的关系

(1)View:最基本的UI组件,表示屏幕上的一个矩形区域。 (2)Window: 表示一个窗口,不一定有屏幕那么大,可以很大也可以很小;                          它包含一个View tree和窗口的layout 参数。                          View tree的root View可以通过getDecorView得到。还可以设置Win

androidendure的专栏 556

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Android中Activity, View,Window,DecorView之间的关系

android中真正展示给用户的是window和view,activity在android中所的作用主要是处理一些逻辑问题,比如生命周期的管理、建立窗口等。在android中,窗口的管理还是比较重要的一块,因为他直接负责把内容展示给用户,并和用户进行交互。响应用户的输入等。 View是真正显示的矩形区域,DecorView是顶层View,也就是主View。 相互之间的关系可以理解为一个Activi

wnk19900925的博客 2599

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Android 中Activity,Window和View之间的关系

跟踪Activity的源码就会发现: Activity.attch() -> PolicyManager -> Policy -> PhoneWindow -> mLayoutInflater.inflate()&mContentParent.addView(...

chenglian3656的博客 156

android viewrootimpl中view的前后关系,android ViewRoot学习,WindowManager和ViewRoot的关系

ViewRoot是GUI管理系统与GUI呈现系统之间的桥梁,根据ViewRoot的定义,我们发现它并不是一个View类型,而是一个Handler。它的主要作用如下:A. 向DecorView分发收到的用户发起的event事件,如按键,触屏,轨迹球等事件;B. 与WindowManagerService交互,完成整个Activity的GUI的绘制。1、View和ViewRootViewRoot从名称...

weixin_39664994的博客 283
上一篇: Android屏幕元素层次结构
下一篇: 《设计模式》之Java解读--桥接Bridge
dp1234
博客等级 码龄23年 38粉丝 16原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值