Android与IOS渲染流程对比
目录
Android
CPU计算图元信息
GPU干预 几何阶段等后处理
Android
APP通过WindowManager统一提供所有Surface的缓冲区【不管是SurfaceView还是普通的布局流程都会将数据提交到Surface的BufferQuene中】 Java中的Surface是null,最终都是由Native层的Surface处理。
Native中的Surface持有的一个接口用于和bufferQuene交互,渲染到Surface上,其实是渲染到了BufferQuene中的GraphicBuffer,通过接口将GraphicBuffer提交到BufferQuene中
通过canvas的操作之前的版本渲染是在主线程执行会耗时卡死主线程,后续通过RenderThrad(FM层)单独处理渲染,主线程耗时操作不影响渲染处理,渲染过程中会使用到OPENGl 系统进程接收到BufferQuene之后SurfaceFlinger统一合成多个Surface也就是Layer。
SurfaceFliger通过OpenGl生成图层放到缓冲区frameBuffer中,hwcomposer取出frameBuffer进行再次处理并放置到frameBuffer中。
Graph Core用于分配图形缓冲区,Display用于取出缓冲区数据进行展示
CPU计算图元信息
IOS的UIView对应一个CaLayer,Android的一个Window对应一个Surface(Surface也可由SurfaceView申请创建)
IOS的CALayer中有content属性存储要显示的bitmap数据(可由纹理2D图片直接使用),数据来源是由视图树的测量布局,渲染提交后将数据打包发送给RenderServer进程处理,RenderServer进程解析包,将其提交到缓冲区中,GPU进行读取进行几何阶段后面的处理
GPU干预 几何阶段等后处理
Android的是WindowManager将计算出所有的Window(Surface),也是通过CPU计算图元信息【测量布局绘制】,Surface中有一个BufferQuene类似于CALayer的content属性。
CPU计算图元信息的时侯只记录操作指令,具体的渲染操作由FM层维护的RenderServer线程去渲染通过openGl比较耗时 。
WindwoManager将所有信息给到SurfaceFlnger后,SurfaceFlinger先自己通过opengl操作一部分数据放到frameBuffer中,再通过hwComposer具体的合成策略去合成图层(本质也是几何阶段后面的处理),GraphCore用于分配图形缓冲区 Andrid和ios原理大致一样 都是CPU计算图元信息,IOS通过RenderServer进程去处理渲染,Android是FM层的RenderServer线程去处理渲染操作。 图元计算完成后都是GPU去取数据进行几何阶段后面的处理 。 Android除了用canvas设置Surface内容也可以使用OPENGL设置Surface。
相关文章:
Android与IOS渲染流程对比
目录 Android CPU计算图元信息 GPU干预 几何阶段等后处理 Android APP通过WindowManager统一提供所有Surface的缓冲区【不管是SurfaceView还是普通的布局流程都会将数据提交到Surface的BufferQuene中】 Java中的Surface是null,最终都是由Native层的Surface处理。…...
正则表达式以及 pattern 的撰写方式
正则表达式的撰写方法 在Python中,可以使用re模块来进行正则表达式的撰写和匹配。下面是一个基本的正则表达式撰写方法示例: 导入re模块: python import re定义正则表达式模式: python pattern = r正则表达式其中,r表示原始字符串,可以避免转义字符的问题。 使用re模…...
K8s Error: ImagePullBackOff 故障排除
Error: ImagePullBackOff 故障排除 1. 起因 起因是要在一组k8s环境下做个Prometheus的测试,当时虚拟机用完直接暂停了. 启动完master和node节点后重启了这些节点. 当检查dashboard时候发现Pod处于ImagePullBackOff状态,使用命令查看详细情况 kubectl describe pods -n kuber…...
爬虫之爬虫介绍、requests模块、携带请求参数、url 编码和解码、携带请求头
爬虫介绍 爬虫是什么? 网页蜘蛛,网络机器人,spider在互联网中 通过 程序 自动的抓取数据 的过程根上:使用程序 模拟发送http请求 ⇢ \dashrightarrow ⇢ 得到http响应 ⇢ \dashrightarrow ⇢ 把响应的数据解析出来 ⇢ \dashr…...
pytorch笔记:split
torch.split 是 PyTorch 中的一个函数,用于将张量按指定的大小或张量数量进行分割 1 基本使用方法 torch.split(tensor, split_size_or_sections, dim0)tensor要分割的输入张量split_size_or_sections以是整数或整数列表。 如果是整数,那么它表示每个分…...
K8S运维 解决openjdk:8-jdk-alpine镜像时区和字体问题
目录 一、问题 二、解决 三、完整代码 一、问题 由于项目的Dockerfile中使用openjdk:8-jdk-alpine作为基础镜像来部署服务,此镜像存在一定问题,例如时差8小时问题,或是由于字体问题导致导出excel文件,图片处理内容为空等。 二…...
Kubectl详解(陈述式、声明式)
目录 1、陈述式资源管理方法 1.1 基本信息查看 1.2 项目的生命周期:创建-->发布-->更新-->回滚-->删除 1.3 金丝雀发布(Canary Release) 2、声明式管理方法 1、陈述式资源管理方法 1.kubernetes 集群管理集群资源的唯一入口是…...
使用HttpClient库的爬虫程序
使用HttpClient库的爬虫程序,该爬虫使用C#来抓取内容。 using System; using System.Net.Http; using System.Threading.Tasks; namespace CrawlerProgram {class Program{static void Main(string[] args){// 创建HttpClient对象using (HttpClient client new…...
VSIX:C#项目 重命名所有标识符(Visual Studio扩展开发)
出于某种目的(合法的,真的合法的,合同上明确指出可以这样做),我准备了一个重命名所有标识符的VS扩展,用来把一个C#库改头换面,在简单的测试项目上工作很满意,所有标识符都被准确替换…...
【CSDN 每日一练 ★★☆】【动态规划】最小路径和
【CSDN 每日一练 ★★☆】【动态规划】最小路径和 动态规划 题目 给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 说明:每次只能向下或者向右移动一步。 示例 示例 1&#x…...
前端学习之webpack的使用
概述 webpack是一个流行的前端项目构建工具(打包工具),可以解决当前web开发中所面临的问题。 webpack提供了友好的模块化支持,以及代码压缩混淆、处理js兼容问题、性能优化等强大的功能,从而让程序员把工作重心放到具…...
【java学习—十一】泛型(1)
文章目录 1. 为什么要有泛型Generic2. 泛型怎么用2.1. 泛型类2.2. 泛型接口2.3. 泛型方法 3. 泛型通配符3.1. 通配符3.2. 有限制的通配符 1. 为什么要有泛型Generic 泛型,JDK1.5新加入的,解决数据类型的安全性问题,其主要原理是在类声明时通过…...
CN考研真题知识点二轮归纳(4)
持续更新,上期目录: CN考研真题知识点二轮归纳(4)https://blog.csdn.net/jsl123x/article/details/134135134?spm1001.2014.3001.5501 1.既可以扩展网段又是二层的设备 网段一般指一个计算机网络中使用同一物理层设备ÿ…...
ROS学习笔记(4):ROS架构和通讯机制
前提 前4篇文章以及帮助大家快速入门ROS了,而从第5篇开始我们会更加注重知识积累。同时我强烈建议配合B站大学的视频一起服用。 1.ROS架构三层次: 1.基于Linux系统的OS层; 2.实现ROS核心通信机制以及众多机器人开发库的中间层;…...
深度新闻稿件怎么写?新闻稿怎么写得有深度?
深度新闻稿件,顾名思义,是对新闻事件进行深入挖掘和分析的稿件。它不仅仅是对事件的简单报道,更注重对事件背后的社会现象、原因、影响等方面进行深度剖析,从而使读者能够全面、深入地了解事件。这种稿件要求作者具备较高的新闻敏…...
百度智能云千帆大模型平台黑客马拉松报名开启!
比赛简介 创造是生成式 AI 的核心。无论是智能导购带来的线上购物体验升级,还是主图生成带来的素材生产效率提升,又或是游戏场景的快速设置、智能 NPC 的全新交互、数字广告的精准推荐和个性化定制,亦或者是为学生提供更符合真实的口语练习环…...
数据库 | 看这一篇就够了!最全MySQL数据库知识框架!
大家好! 作为一名程序员,每天和各种各样的“数据库”打交道,已经成为我们的日常。当然,立志成为一名超级架构师的我,肯定要精通这项技能。咳咳!不过饭还是要一口一口吃的,“数据库”这个内容实在…...
Android 控件背景实现发光效果
主要实现的那种光晕效果:中间亮,四周逐渐变淡的。 这边有三种发光效果,先上效果图。 第一种、圆形发光体 实现代码:新建shape_light.xml,导入以下代码。使用时,直接给view设置为background。 <?xml …...
安全狗亮相厦门市工信领域数据安全宣贯培训会
10月31日,厦门市工业和信息化局(市大数据管理局)顺利举办厦门市工信领域数据安全宣贯培训。 作为国内云原生安全领导厂商,安全狗以厦门市工业领域数据安全管理支撑单位身份受邀出席此次会议。 据悉,此次活动旨在贯彻…...
最长回文子串
问题 给你一个字符串 s,找到 s 中最长的回文子串。 如果字符串的反序与原始字符串相同,则该字符串称为回文字符串。 示例 1: 输入:s "babad" 输出:"bab" 解释:"aba" 同…...
10B小模型为何在真实业务中碾压百B大模型
1. 项目概述:小模型正在悄悄改写大模型的游戏规则最近在几个技术团队的内部分享会上,我连续三次被问到同一个问题:“你们还在追着百B参数的大模型跑吗?”——问话的人里,有刚从云厂商调来的架构师,有带AI产…...
独立站 AI 智能推荐商品功能落地实操:从 0 到 1 提升转化与客单价
在独立站运营中,流量成本持续走高,很多站点陷入 “有流量、没转化、客单价低” 的困境。2026 年跨境电商数据显示,部署 AI 智能推荐的独立站,平均转化率提升 4.7%-15%,客单价上涨 20%-30%,复购率提高 18% 以…...
【论文阅读】GEN-1: Scaling Embodied Foundation Models to Mastery
快速了解部分 基础信息(英文): 1.题目: GEN-1: Scaling Embodied Foundation Models to Mastery 2.时间: 2026.04 3.机构: Generalist AI 4.3个英文关键词: GEN-1, Embodied Intelligence, VLA 1句话通俗总结本文干了什么事情 本文发布了新一…...
股票打分制方法论
人工列提纲做评审,AI丰富内容AI模型:Deepseek仅供参考,市场有风险,投资需谨慎打分制股票算法:构建系统化、多维度的股票评估体系在股票投资领域,面对纷繁复杂的市场信息和海量数据,如何科学、客…...
11. 架构:前端工程化与状态管理实战
写在前面: 如果说后端 MVT 引擎是 GIS 系统的“心脏”,那么前端就是它的“大脑”和“面孔”。在现代 WebGIS 开发中,如何优雅地管理复杂的图层状态、如何处理海量瓦片的渲染逻辑,是决定项目成败的关键。 今天,我们将深入 light-mvt-server 的前端核心,看看如何利用 Vite …...
pointer reference作为顶层参数(三)
一、核心代码#include "array_FIFO.h"//void array_FIFO (dout_t d_o[4], din_t d_i[4], didx_t idx[4]) { void array_FIFO (dout_t d_o[4], din_t *d_i, didx_t idx[4]) { #pragma HLS INTERFACE m_axi depth4 portd_i //#pragma HLS INTERFACE s_axilite register…...
2026年AI面试准确率TOP榜:92%一致性背后,谁在定义行业新标准?
当年ChatGPT的横空出世,让全世界第一次见识到通用大模型的对话能力;DeepSeek 的爆发,则将AI的火种真正播撒到中国各行各业的毛细血管中,而在人力资源行业作为数字化转型的前沿阵地,首当其冲迎来了AI的全面渗透 &#x…...
26-cv-3948 NASCAR 纳斯卡赛车北美赛车巨头NASCAR商标维权!年认证超1500场赛事,全球布局品牌产品与授权营销。
案号:26-cv-3948原告品牌:NASCAR 纳斯卡赛车品牌方:National Association for Stock Car Auto Racing, LLC起诉地:美国纽约州南区代理律所:Whitewood Law PLLC起诉时间:2026年05月12日起诉类型:…...
邻近连接技术伯远邻近连接技术深耕邻近连接技术
我公司是国家级专精特新小巨人企业,拥有国家级重点实验室,科研技术人员500,各类仪器设备投资超1个亿,牵头多项省部级重大专项。 武汉伯远生物医学领域的“邻近标记”( 医学PLA 医学PLA )是一类在活细胞或组…...
FLUX.1-dev-Controlnet-Union:一站式多模态图像控制解决方案,让AI生成更精准可控
FLUX.1-dev-Controlnet-Union:一站式多模态图像控制解决方案,让AI生成更精准可控 【免费下载链接】FLUX.1-dev-Controlnet-Union 项目地址: https://ai.gitcode.com/hf_mirrors/InstantX/FLUX.1-dev-Controlnet-Union 你是否曾经在AI图像生成中遇…...
