关于过度绘制的解决方案
避免出现多个使用layout-weight属性的的LinearLayout。
给Activity设置背景
setContentView(R.layout.car_launcher);
getWindow().setBackgroundDrawableResource(R.drawable.bg);
或
在自己的AppTheme里面去除该背景色即可:
或者在Activity的onCreate方法中:
getWindow().setBackgroundDrawable(null);
使用Canvas的clipRect和clipPath方法限制View的绘制区域
减少视图深度
Android图片加载优化
可通过LruCache进行缓存,按需加载
正确使用Android性能分析工具——TraceView
Profile GPU Rendering
Android系统中是以每秒60帧为满帧,将1秒除以60帧,得出每帧为16毫秒为满帧的界限,每帧快于16ms即为流畅。
红色代表了“执行时间”,指的是Android渲染引擎执行这些绘制命令的时间
黄色通常较短,代表CPU通知GPU“你已经完成视图渲染了”,不过在这里CPU会等待GPU的回应,当GPU说“好的知道了”,才算完事。橙色很高的话,说明当前GPU过于忙碌。
蓝色,代表视图绘制所花费的时间,表示视图在界面发生变化的用时情况,用时越短,体验越好。蓝色低于绿线以下就不会出现卡顿