Android UI优化—从Android渲染原理理解UI卡顿
Android渲染机制
1、Android系统每隔16ms发出VSYNC信号,触发对UI进行渲染
2、渲染的过程是由CPU与GPU协作完成
如下图:
为什么是16ms?
1、人眼与大脑之间的协作无法感知超过60fps的画面更新
2、1000/60hz,相当于16ms
什么是GPU?
解释什么是GPU,首先要弄清楚一个概念—栅格化。
栅格化就是将Button,Shape,Path,String,Bitmap等UI组件拆分到不同的像素上进行显示。如下图:
UI的渲染过程由CPU和GPU共同完成,其中CPU负责把UI组件计算成Polygons,Texture纹理,然后交给GPU进行栅格化渲染。 GPU的引入就是为了加快栅格化的操作。
CPU和GPU协同工作的示意图如下:
UI卡顿的原因
没有办法在16ms内完成UI更新操作
如何解决UI卡顿
1、优化UI层次结构,去除不必要的嵌套,尽量使布局扁平化
2、减少过度绘制
Android UI优化—从Android渲染原理理解UI卡顿相关推荐
- android11性能有提升吗,Android性能优化第(十 一)篇---卡顿分析,正确评测流畅度...
转载请注明文章出处LooperJing! 一.FPS评测应用流畅度不准确 说到应用的流畅度,都会想到FPS,系统获取FPS的原理是:手机屏幕显示的内容是通过Android系统的SurfaceFLing ...
- 【Android 性能优化】布局渲染优化 ( CPU 渲染优化 | 减少布局的嵌套 | 测量布局绘制时间 | OnFrameMetricsAvailableListener | 布局渲染优化总结 )
文章目录 一. 减少布局嵌套 二. 布局渲染时间测量 1. FrameMetrics 使用流程 2. FrameMetrics 参数解析 3. FrameMetrics 代码示例 三. 布局渲染优化总 ...
- 【Android 性能优化】布局渲染优化 ( GPU 过度绘制优化总结 | CPU 渲染过程 | Layout Inspector 工具 | View Tree 分析 | 布局组件层级分析 )
文章目录 一. GPU 过度绘制优化总结 二. CPU 渲染过程 三. CPU 渲染性能调试工具 Layout Inspector 四. Layout Inspector 组件树 DecorView ...
- 【Android 性能优化】布局渲染优化 ( 过渡绘制 | 背景设置产生的过度绘制 | Android 系统的渲染优化 | 自定义布局渲染优化 )
文章目录 一. 背景设置产生的过度绘制 二. Android 系统的渲染优化 1. 透明组件数据传递 2. GPU 存储机制 3. Android 7.0 之后的优化机制 三. 自定义布局渲染优化 一 ...
- 【Android 内存优化】Android 原生 API 图片压缩原理 ( 哈夫曼编码开关 | 哈夫曼编码原理 | libjpeg-turbo 函数库 )
文章目录 一. 哈夫曼编码开关 二. 哈夫曼编码原理 三. libjpeg-turbo 函数库 四. libjpeg-turbo 函数库下载 [Android 内存优化]图片文件压缩 ( Androi ...
- 【Android 内存优化】Android 原生 API 图片压缩原理 ( Bitmap_compress 方法解析 | Skia 二维图形库 | libjpeg 函数库 | libpng 函数库 )
文章目录 一. 图片质量压缩方法 二. Skia 二维图形库 三. libjpeg.libpng 函数库引入 在博客 [Android 内存优化]图片文件压缩 ( Android 原生 API 提供的 ...
- 【Android 内存优化】Android 原生 API 图片压缩原理 ( 图片质量压缩方法 | 查找 Java 源码中的 native 方法对应的 C++ 源码 )
文章目录 一. 图片质量压缩方法 二. 查找对应的 Native 方法源码 三. 分析 Bitmap.cpp 中动态注册 Native 方法 在博客 [Android 内存优化]图片文件压缩 ( An ...
- 【Android 内存优化】Android 工程中使用 libjpeg-turbo 压缩图片 ( 初始化压缩对象 | 打开文件 | 设置压缩参数 | 写入压缩图像数据 | 完成压缩 | 释放资源 )
文章目录 一.使用 libjpeg-turbo 压缩图片流程 二.初始化 JPEG 压缩对象 三.打开文件 四.设置压缩参数 五.开始压缩 六.循环写入压缩数据 七.完成图片压缩及收尾 八.libjp ...
- 【Android CPU 优化】Android CPU 调优 ( Trace 文件分析 | Android Profiler 工具 | CPU Profiler 工具 )
文章目录 一.Android CPU 优化 二.CPU Profiler 工具 三.相关资源 一.Android CPU 优化 在 Android 中 , 出现 动画掉帧 , 页面切换白屏 , 卡顿 ...
最新文章
- 各种格式的视频播放的代码(wma格式)
- 常用eclipse插件集合, 持续更新
- QT误修改了系统内的头文件处理
- 公众号服务器配置url证书问题,公众号服务器配置url,验证token一直出错,为什么?...
- Django 时间与时区设置问题
- vs 2008 Ide 设置
- web前端开发要不要找个师傅带?
- 微星刀锋 无法进入bios_微星MPG X570 GAMING EDGE WIFI刀锋板主板BIOS设置u盘启动教程...
- 逆向工具IDA下载网址
- 搜狗输入法界面简化设置
- 四个vue后台常用模板,你用过几个?
- 查理·芒格:投资与人生皆是自我修行-1
- 2019第十届蓝桥杯大赛软件类省赛C++ C组真题题解
- 小白学 Python 爬虫(26):为啥上海二手房你都买不起
- iPhone开发秘籍(一)--第一章 iPhone SDK简介
- 国庆活动征文 | 庆国庆,作几首打油诗在此
- Leetcode1367.二叉树中的列表
- vue2集成海康摄像头
- wordpress谷歌字体_适用于WordPress网站的10种性能最高的Google AdSense标语尺寸和格式
- C++进阶与拔高(二)(C++数据结构的具体实现:向量与列表)