【Android性能优化】-页面渲染优化

本文探讨了Android页面渲染的硬件层面,解析了页面从XML布局到GPU渲染的过程,强调了16ms刷新限制。分析了导致页面卡顿的因素,包括阻塞主线程、内存抖动和过度绘制,并提供了针对性的优化建议,如处理自定义View的过度绘制和布局优化,以提升应用性能。
摘要由CSDN通过智能技术生成

页面渲染流程(硬件层面)

想要开发一款性能优越的应用,我们必须了解底层是如何运行的。有一个主要问题就是,Activity是如何绘制到屏幕上的?那些复杂的XML布局文件和标记语言,是如何转化成用户能看懂的图像的?

实际上,android布局文件最终展现给用户图形界面是通过格栅化操作来完成的,格栅化就是将例如字符串、按钮、路径或者形状的一些高级对象,拆分到不同的像素上在屏幕上进行显示,格栅化是一个非常费时的操作。我们所有人的手机里面都有一块特殊硬件,它就是图像处理器(GPU显卡的处理器),目的就是加快格栅化的操作,GPU在上个世纪90年代被引入用来帮助加快格栅化操作。

在这里插入图片描述

android系统中整个页面的渲染大概要经过如下步骤,下图是google官网提供的一份关于页面渲染的过程

在这里插入图片描述
我们首先了解几个概念:

GPU显卡的处理器,目的就是加快格栅化的操作,GPU在上个世纪90年代被引入用来帮助加快格栅化操作。
GPU刷新GPU帮助我们将UI组件等计算成纹理Texture和三维图形Polygons
同时会使用OpenGL—会将纹理和Polygons缓存在GPU内存里面。

GPU使用一些指定的基础指令集,主要是多边形和纹理,也就是图片,CPU在屏幕上绘制图像前会向GPU输入这些指令,这一过程通常使用的API就是Android的OpenGL ES,这就是说,在屏幕上绘制UI对象时无论是按钮、路径或者复选框,都需要在CPU中首先转换为多边形或者纹理,然后再传递给GPU进行格栅化

OpenGl|Es 这个属于软件层面,提供了丰富的3d绘图的api

CPU到GPU的数据传递就类似于,电脑主机的cpu到显卡的数据传递过程,pc上是通过pcie总线来处理。手

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值