Android性能优化
部分内容参考他人,纯分享,无商业目的
1.避免过度绘制
过度重绘是指在屏幕上的某个像素在同一帧的时间内被绘制了多次。
可以打开开发者选项中--调试GPU过度绘制---显示过度绘制区域
例如:
ListView中把ImageView的Background设置为Transparent,只有当图像没有获取到时,才设置对应Background占位图,这样可以避免给Avatar设置背景图而导致的过度渲染。
避免过度绘制的一些方法:
1.移除XML中非必须的背景
2.移除window默认的背景
3.按需显示站位背景图片。
4.自定义view优化:可以通过canvas.clipRect()来帮助系统识别那些可见的区域。
this.getWindow().setBackgroundDrawable(null);
2页面刷新
要合理的控制页面的刷新机制,尽量减少刷新次数和缩小刷新区域。如列表中的单条数据局部刷新
3动画
Android提供了3种动画机制,其中帧动画是最消耗内存的,效果也最差,所以一般不推荐使用,补间动画也会导致view重绘频繁,而且事件也不会跟随动画,所以推荐基于性能考虑推荐使用属性动画,属性动画递归的次数要明显小于补间动画,也没有补间动画事件的问题。
4App启动
参考 https://blog.csdn.net/qian520ao/article/details/81908505#_127
5布局
include,merge,ViewStub
使用ViewStub中引用的layout不能是merge
ViewStub中layout布局里面的view,不能通过viewStub.findViewById();获取不到View
merge只能使用在根布局,不要在item的布局中使用

网友评论