首页 > 其他分享 >Android 12 Window ViewRootImpl Activity的关系

Android 12 Window ViewRootImpl Activity的关系

时间:2023-06-02 11:44:39浏览次数:52  
标签:12 ViewRootImpl Window Activity new Android View

1 Window和ViewRootImpl有什么关系?

看右侧流程图,上层的UI大体分成两大类,一是Activity,另一类是Custom Window(如状态栏、toast等)。

但是他们都要经过WindowManager.addView这个接口添加到系统中。

经过WindowManagerGlobal,会new一个ViewRootImpl,ViewRootImpl会申请server端的Session执行addWindow。

ViewRootImpl可以理解成是对应这个Window的View的根。

2 ViewRootImpl做了什么

new ViewRootImpl后,随后就会调用setView()方法,我这里梳理了三个重要代码:

  • 保存view对象。它会作为很多操作的基础,比如随后的requestLayout方法,作为绘制的对象
  • 实际调用WindowSession,向系统请求将View/Window添加到系统中
  • 初始化Input通道,使InputFlinger的事件可以分发给View

3 Activity是什么角色?

和本篇博客相关的:

  • 从UI的角度,Activity中的Window和DecorView负责显示和交互。
  • 从事件传递角度,app端的Input事件的源头在ViewRootImpl,传递过程如图右下角。

标签:12,ViewRootImpl,Window,Activity,new,Android,View
From: https://www.cnblogs.com/yulisuo/p/17451308.html

相关文章

  • Windows 下 JNA 调用动态链接库 dll
    1.创建动态链接库项目创建jnaTest项目下一步中填写项目名称和存储的目录;然后直接创建即可创建结果2.定义头文件#pragmaonce#ifndefJNA_TEST_H#defineJNA_TEST_H#ifdef__cplusplusextern"C"{#endif__declspec(dllexport)intadd(inta,intb);__declspec......
  • windows10环境下安装RabbitMQ以及延时插件(图文)
    安装转载:https://www.cnblogs.com/saryli/p/9729591.html插件转载:https://blog.csdn.net/nbdclw/article/details/107441772安装及配置环境第一步:下载并安装erlang原因:RabbitMQ服务端代码是使用并发式语言Erlang编写的,安装RabbitMQ的前提是安装Erlang。下载地址:http://ww......
  • Windows11 访问WINOWS 2003 远程桌面提示 由于这台计算机没有远程桌面客户端许可证,远
    今天遇到,,Windows11访问WINOWS2003远程桌面 提示如下,解决方法在提示由于由于这台计算机没有远程桌面客户端许可证,远程会话连接己断开的计算机上,  打开注册表regedit计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSLicensing\Store\ 选中LICENSE000,将其删除 ......
  • 12. 整数转罗马数字
      贪心策略:classSolution{int[]values={1000,900,500,400,100,90,50,40,10,9,5,4,1};String[]symbols={"M","CM","D","CD","C","XC","L","XL","X","IX&q......
  • window10子系统下 libuv clone本地编译提示./autogen.sh: aclocal: not found错误
    libuv文档https://docs.libuv.org/en/v1.x/guide/introduction.htmlCodeAlltheexamplecodeandthesourceofthebookisincludedaspartofthelibuvprojectonGitHub.CloneorDownloadlibuv,thenbuildit:shautogen.sh./configuremakeThereisnoneed......
  • 西门子PCL-1200(tcp)
    usingSystem;usingSystem.Net;usingSystem.Net.Sockets;usingSystem.Text;namespaceTest1{usingSystem;usingSystem.Net;usingSystem.Net.Sockets;usingSystem.Collections.Generic;usingSystem.Text;usingSystem.IO;usingSystem.Th......
  • windows cmd使用ssh连接Linux以及文件上传
    CMD连接服务器命令(47.102.144.221为服务器IP)[email protected]文件上传(scp后面参数为本地文件地址,47.102.144.221为服务器IP,冒号后面指将文件上传到服务器哪个目录下)scpD:\[email protected]:/server/tmp如何要从服务器下载文件还是使用scp命令如下:sc......
  • windows10 系统默认备份后如何还原?
     在控制面板中如下操作: 选着开始系统还原: 选着备份的还原文件   ......
  • CF101234A Hacker Cups and Balls【二分+线段树】
    Description给一个长度为n的排列,对它做m次操作,每次对[l,r]区间内进行升序/降序排序。问最后的序列处于最中心的数是多少(n为奇数)。Solution是一类没有写过的题,参考题解。二分答案,对于当前的mid,将大于等于mid的数设置为1,小于mid的数设置为0。这样一来,叶结点的值......
  • BGV12
    BGV12,论文:(Leveled)FullyHomomorphicEncryptionwithoutBootstrapping密钥交换⚠️矩阵\(A_{N*n_2}\)矩阵\(B_{N*n_2}\):“矩阵\(A\)+\(powersof2(s_1)\)”,具体为:所以\(B.s_2=(2e_2+Powersof2(s_1))\):应该是:\(\mathbf{c}_2=B^T\cdot\mathsf{BitDecomp}(\math......