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之间到底有什么联系呢? 阅读详情

相关推荐

使用WSL2安装ubuntu系统并配置深度学习环境

wsl2安装ubuntu部署深度学习环境的方法

u013358093的博客 2702

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

ISCE+Mintpy进行SBASInSAR处理(持续更新)

通过调用pairs_misregistration方法,利用safe_dict中的数据信息,对每对SLC数据进行配准误差的计算和分析,以确定数据之间的精确差异,为后续的时间序列处理提供基础。给定同一地区的两景SAR影像,经过配准之后,对应像元进行共轭相乘得到相位差,并形成干涉图,但是从干涉图中得到的相位差实际上是主值,即在(-π,π)呈周期性变化,为了还原其真实的相位差,必须在主值的基础上加或减整数倍的相位周期2π,把被卷叠的相位展开,才能顺利地反演出地面目标的高程和形变。

Cyy2511250589的博客 3736

Android 活动、窗、DecorView、ViewRoot

Android 活动、窗、DecorView、ViewRoot

李青涛的博客 1959

【详细图文】使用MobaXterm的SSH功能远程连接服务器,并创建pytorch环境,使用yolov8训练数据集

使用MobaXterm的SSH功能远程连接服务器,并创建pytorch环境,使用yolov8训练数据集,以及MobaXterm使用介绍和linux基础命令介绍。

qq_62844901的博客 3385

将3DMax编辑的动画,导入给已经绑定蒙皮好的模型给Unity使用

现在程序猿想做独立游戏,即容易,也难。 说容易,引擎越来越傻瓜化。 说难,到哪去找靠谱的美术? 好在伟大的AssetStore(还有淘宝上)有大批不赖的资源可以用。 现成的模型,是好,但是,没有配套的动作,却是一件让人头疼的事情,即使用IK动画,也不能完美的弥补这一缺陷。 虽然Unity具备 retargeting 功能,但是,也不是万能的,很多情况下,非标准的骨骼会导致

正经的时候都在打游戏 1万+

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

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

PanicLin的博客 1637

Android SystemUI——自定义状态栏和导航栏(十二)

通过前面的文章内容,我们了解了Android系统原生的状态栏StatusBar和车载系统状态栏CarStatusBar的启动流程以及视图构建流程,这里我们来简单的看一下自定义状态栏和导航栏视图的实现流程。

小旭的专栏 2012

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

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

盐加三勺的博客 465

英飞凌TC3xx之一起认识GTM系列(六)如何实现GTM与VADC关联的配置

本文给出了GTM与EVADC之间关联的细节,并通过两个实例分别说明了如何对寄存器进行配置。

无所适从的我的博客 2933

评估篇| 大模型评测综述

1、基于人类的评测。与针对基础大语言模型的自动化评测不同,微调大语言模型的评测更加注重模型在实际应用场景中的表现,如与人类交互的自然度、对齐度等。2、基于模型的评测。例如,AlpacaEval 排行榜 基于由大语言模型合成的人类需求指令作为评测任务,然后收集待评估大模型的回应,并采用 GPT-4 等大语言模型作为评测员,将待评估大语言模型的输出与参考输出进行成对比较。1、大语言模型对评估设置极为敏感,包括问题的表述方式、提示样本的选择以及答案的解析策略等,这些细微的差别都可能导致评估结果的显著变化。

youbingchen的博客 637

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

Spatial-ORMLLM: Improve Spatial Relation Understanding in the Operating Room with Multimodal Larg...

手术室(OR)中的精准空间建模是众多临床任务的基础,可为术中感知、风险规避及手术决策提供支持。现有方法虽利用大规模多模态数据集进行 latent 空间对齐,以隐式学习空间关系,但却忽视了多模态大型语言模型(MLLM)的3D能力。然而,这种方法存在两个问题:1)手术室通常缺乏多台视频和音频传感器,多模态3D数据难以获取;2)仅依赖易获取的2D数据训练,无法捕捉复杂场景中的细粒度细节。为解决这一问题,我们提出——首个针对手术室3D空间推理的大型视觉语言模型。

UnknownBody_2的博客 592

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

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

aodiyi6351的博客 462

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

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

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

androidendure的专栏 556

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

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

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

wnk19900925的博客 2599

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

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、付费专栏及课程。

余额充值