View的视图优化

基本原理:android

渲染机制算法

android的刷新频率是60fps,也就是说要在16ms内完成一次刷新,若是超时刷新,那么就容易看到卡顿的画像,也是丢帧的现象。若是刷新时间短,那么咱们就能够看到一个很是流畅的动画,Android系统每16m会向渲染硬件发出VSYNC命令让其渲染,缓存

VSYNC有两个概念:多线程

第一:刷新频率,指的是硬件定义的刷新频率,由硬件参数决定,优化

第二:GPU每秒绘制的频率,好比60,动画

若是GPU的频率大于硬件的刷新频率,那么能保证每次刷新都是新数据,若是小于,没那就会出现数据没有刷新,丢帧的现象。操作系统

渲染的流程线程

渲染是有CPU执行生成Texture纹理和Polygons,而后把这些数据交给GPU进行栅格化处理,最后把数据传递给显示器。对象

渲染优化ip

第一:内存优化:

出现的问题有:在一个16ms内,因为引起GC次数过多,致使没有完成刷新,致使最后的卡顿现象。那么须要解决内存的优化。优化思路是减小GC次数,那么就要节省内存开销以及及时释放内存。节省内存开销:减小没必要要的对象重复建立(循环内部建立对象,使用String进行+操做),减小内存泄漏,增长对象复用。

第二:CPU优化:

若是CPU过多的执行一些操做,致使没有CPU及时生成纹理数据交给GPU处理,那么也会致使源头数据得不到更新,那么CPU优化也很重要,优化思路是:减小CPU空转时间。那么回归操做系统,咱们的方法有:使用多线程处理,使用缓存和批处理,优化耗时的算法。对于android来讲,须要CPU执行的操做有视图的测量,建立,回收操做,那么咱们就须要减小没必要要的视图建立工做,那么咱们要减小试图嵌套层级,减小重绘,减小Gone的操做致使的从新测量操做。咱们的方案有:merge方法减小层级,ViewStub延缓试图加载,

第三:GPU优化:

一样是卡顿现象,GPU主要的工做是栅格化处理,那么减小重绘对GPU来讲就显得很是重要。减小重绘就是咱们重要的优化方案,解决方案有;对于背景色减小层级设置,自定义的空间要用clipRect方法减小绘制,

相关文章
相关标签/搜索