当前位置: 移动技术网 > IT编程>移动开发>Android > 布局渲染笔记

布局渲染笔记

2019年05月20日  | 移动技术网IT编程  | 我要评论

陈纳德,北京生二胎新政策2014,特仑苏名仕会积分

cpu  处理逻辑计算和内存管理,显示操作。

gpu  cpu无法显示复杂的图形,gpu用于显示复杂图形,分担cpu的任务

xml布局到屏幕的显示流程:xml 通过 layoutinflater 加载到内存中,然后经过cpu计算处理为多维图形,在通过 opengl 调用gpu,gpu对图形进行栅格化显示到屏幕上,此时如果上面流程在16毫秒内完成,则直接显示到显示器,如果没能完成,则垂直同步等待下一帧完成。

由于人类的眼睛看到画面之帧率高于每秒约10-12帧的时候,就会认为是连贯的;

对于有声电影的拍摄和播放帧率均为每秒24帧,对人是可以接受的,但是早期的高动态电子游戏帧率如果少于每秒30帧的话就会不连贯,因为没有动态模糊使流畅度降低,在于手机交互的过程中,如果触摸反馈60帧以下人是可以感觉出来的,60帧以上不能察觉变化,当手机上帧率低于60fps的时候会感觉画面的卡顿和迟滞现象;

android系统每隔16ms发出信号,触发对ui进行渲染,如果每次渲染都成功,就能达到流程的画面所需要的60fps,为了能够实现60fps,这意味着计算渲染的太多数操作都必须在16ms内完成。

当一帧画面渲染时间超过16ms的时候,垂直同步机制(每隔16ms刷新帧率)会让显示器硬件等待gpu完成栅格化渲染操作,这样会让一帧画面多停留16ms甚至更多,这样就造成了用户看起来画面停顿。

优化:

  cpu 减少xml转换成对象的时间,比如减少层级

  gpu 减少重复绘制

gpu的绘制过程根据cpu传递的指令来绘制,16ms绘制一次,指令来了就绘制,哪怕是同样的绘制指令,如果层次太深,用户看不到的区域也会被绘制,以及自定义控件中,ondraw方法做了过多的绘制。

android手机开发者选项中,打开gpu过度绘制调试,蓝色 表示绘制了一次,淡绿色表示两次,淡红色表示三次,深红色表示四次。

注意:android的theme-主题中,是自带背景的,可以设置windowbackground为null

 

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网