Android Display Graphics #User APP的绘制与WMS

news2024/11/15 9:47:11

如果图片链接失败,请扫码查看文章详情。

Android Display Graphics系列文章-汇总

系列文章请扫关注公众号!

1、User APP的绘制

用户APP在调用ViewRootImpl#setView()方法时,首次请求VSync信号。之后进入loop循环,等待显示事件。当有显示内容时,会调用到ViewRootImpl#doTraversal()方法执行绘制,这个函数包含了View三个绘制Step:measure、layout、draw.

Step 1:View#onMeasure()

performMeasure()调用View#measure(),而ViewRootImpl成员变量mView是DecorView对象,所以,measure()方法将会从根视图逐层向下遍历。

measure()方法计算每一个View的大小,执行完成后,各View的大小也随之确定了。

Step 2:View#onLayout()

performLayout()调用View#layout(),layout()方法计算每一个View的位置,layout()方法执行完成以后,各个View的位置也都确定了。

Step 3: View#onDraw()

mView.draw()函数就是绘制了,也就是渲染。这个一般是在GPU上运行的。一般主线程是渲染线程RenderThread。上层用户是无感知的。

2、图形组件WMS

WindowManagerService(WMS)窗口管理服务,管理系统中所有的窗口。

  • 管理window (view的容器)

  •  Window与surface对应,表示一块显示区域。添加一个window,就是WMS 为其分配一块 Surface 的过程。

  • WindowManager为 SurfaceFlinger 提供窗口元数据(window metadata)。

Android setContentView就是将View设置到widow上。

WMS角色在整个流程的位置:

Android Display Graphics系列文章-汇总

系列文章请扫关注公众号!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1940988.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【数据结构】:链表实现洗牌功能

此操作包含的基本功能有: 组牌:组建 52 张扑克牌 四种花色:“♥️”,“♠️”,“⬛️”,“♣️”每种花色 13 张牌:1~13 洗牌:将 52 张扑克牌打乱顺序发牌:给三个人每人发…

关于光伏电站监控数据

电站监控后台显示的发电量数据不能真实的反应不同逆变器方案的发电量差异。组串式逆变器由于交流线缆长,损耗的电量比集中式方案高1-2%左右。在通过监控后台显示的发电量衡量不同逆变器的差异时,需要减掉这部分差值。 光伏电站监控后台统计的发电量是从光…

桌面小宠物发布一周,第一次以独立开发者的身份赚到了100块

收入数据(AppStore一周收入统计) AppStore付费工具榜第七 应用简介 桌面新宠(NewPet),是我耗时半年开发的一款桌面宠物。我是被 QQ 宠物影响的那批人,上学时天天给 QQ 宠物喂食,很可惜它现在不在了。所以,我开发的初衷是想要在电…

图像分类算法概述:深度学习方法

图像分类算法概述:深度学习方法 图像分类是计算机视觉中的一个基本任务,近年来随着深度学习的发展,图像分类算法取得了巨大的进步。本文将概述主要的深度学习图像分类算法。 #mermaid-svg-fkTtkPLl9ahuVT6w {font-family:"trebuchet ms…

Linux(CentOS7)部署PHP-7.2.17源码包

PHP-7.2.17源码包部署 安装php1. 解压并进入php-7.2.17文件夹2. 编写php.sh脚本3. 执行php.sh 配置Apache与PHP1. 编写httpd.conf配置文件2. 编写php测试脚本 部署HTTPD-2.4.37源码包点击跳转 部署MySQL-5.6.31源码点击跳转 下载源码包和依赖的源码包,资源见文章顶…

TiDB实践—索引加速+分布式执行框架创建索引提升70+倍

作者: 数据源的TiDB学习之路 原文来源: https://tidb.net/blog/92d348c2 背景介绍 TiDB 采用在线异步变更的方式执行 DDL 语句,从而实现 DDL 语句的执行不会阻塞其他会话中的 DML 语句。按照是否需要操作 DDL 目标对象所包括的数据来划分…

linux学习week4+5

linux学习 十四.shell编程 9.单分支多分支 基本语法: if [ 条件 ] then代码 elif [ 条件 ] then代码 fi10.case语句 基本语法: case $变量名 in "值1") 程序1(如果变量的值等于值1,则执行程序1) ;; &q…

LeetCode刷题记录(第三天)55. 跳跃游戏

题目: 55. 跳跃游戏 标签:贪心 数组 动态规划 题目信息: 思路一:动态规划 确定dp数组含义: dp[i] 第[i]个位置能否达到确定递推公式: dp[i] 能不能达到,取决于前面d[i-j],d[i-j…

Linux TFTP服务搭建及使用

1、TFTP 服务器介绍 TFTP ( Trivial File Transfer Protocol )即简单文件传输协议是 TCP/IP 协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。端口号为 69 2、TFTP 文件传输的特点 tftp…

【博主推荐】HTML5实现简洁的实用的个人网站、个人主页七个页面源码

文章目录 1.设计来源1.1 个人主页界面1.2 关于我界面1.3 我的技能界面1.4 我的经验界面1.5 我的教育界面1.6 我的项目界面1.7 联系我界面 2.效果和源码2.1 动态效果2.2 源代码 源码下载万套模板,程序开发,在线开发,在线沟通 作者:…

【MQTT(2)】开发一个客户端,ubuntu版本

基本流程如下,先生成Mosquitto的库,然后qt调用库进行开发界面。 文章目录 0 生成库1 有界面的QT版本2 无界面版本 0 生成库 下载源码:https://github.com/eclipse/mosquitto.git 编译ubuntu 版本很简单,安装官方说明直接make&am…

1分钟带你了解等保测评流程

常言道:“安全无小事,防患于未然。” 在信息化高速发展的今天,网络安全已成为国家安全的重要组成部分,等级保护(简称“等保”)测评作为网络安全防护的重要手段,对于确保信息系统安全、稳定运行…

总台数430!2023年度各省燃机台数及装机容量一览

重型燃气轮机发电作为清洁能源战略的核心,将持续被强化以推动“双碳”目标的达成。鉴于其高度复杂的设计与制造流程,它成为了国家高端制造水平的象征。近年来,在科技强国战略的推动下,我国重型燃气轮机行业正迈向自主研发、创新突…

Elasticsearch基础(五):使用Kibana Discover探索数据

文章目录 使用Kibana Discover探索数据 一、添加样例数据 二、数据筛选 三、保存搜索 使用Kibana Discover探索数据 一、添加样例数据 登录Kibana。在Kibana主页的通过添加集成开始使用区域,单击试用样例数据。 在更多添加数据的方式页面下方,单击…

AJAX复习总结

AJAX复习总结 AJAX即“Asynchronous JavaScript and XML”(异步的JavaScript与XML技术),是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。简单来说,AJAX就是让网页变得更快、更灵活的一种方法 举个例子&#xff1a…

昇思25天学习打卡营第4天 | 网络构建

在学习和实践MindSpore神经网络模型构建的过程中,我深刻理解了MindSpore中如何通过nn.Cell类来构建和管理复杂的神经网络模型。通过这次的实践,我对神经网络的基本构建和应用有了更加全面的认识,以下是我学习过程中所总结的几点心得&#xff…

一行Python代码实现数据清洗的18种方法

目录 1. 去除字符串两边空格 2. 转换数据类型 3. 大小写转换 4. 移除列表中的重复元素 5. 快速统计元素出现次数 6. 字符串分割成列表 7. 列表合并 8. 数据填充 9. 提取日期时间 10. 字符串替换 11. 快速排序 12. 提取数字 13. 空值处理(假设是列表&am…

powe bi界面认识及矩阵表基本操作 - 1

powe bi界面认识及矩阵表操作 1. 界面认识1.1 选择数据源1.2 选择相关表及点击加载1.3 表字段显示位置1.4 表属性按钮位置1.5 界面布局按钮认识 2. 矩阵表基本操作2.1 选择矩阵表2.2 创建矩阵表2.3 设置字体大小2.4 行填充:修改高度2.5 列宽:设置列的宽度…

内置华为视频终端API接口的中央控制系统

内置华为视频终端API接口的中控系统是一种高度集成化的智能控制系统,它通过将华为视频终端的控制功能集成到中控系统中,实现了对华为视频终端的远程控制和集中管理。以下是对该系统的详细介绍: 一、系统概述 该系统通过调用华为视频终端提供…

自建网站统计工具 Umami 替代 Google Analytics

本文首发于只抄博客,欢迎点击原文链接了解更多内容。 前言 Umami 是一款开源的网站统计工具,与 Google Analytics 相比更加的轻量,且不会收集网站用户的个人信息。同时,Umami 的仪表盘界面简洁,UI 精美,方便我们查看网站的历史统计数据。 Umami 使用方式也与 Google Ana…