一、屏幕UI刷新机制-----------16毫秒
16毫秒:
人眼与大脑之间的协作,无法感知超过60帧的画面更新。16ms即每秒刷新60帧,1s即1000ms/60帧约等于16ms,超过16ms人眼就会感到卡顿。
刷新率与帧率
刷新率:一秒内刷新屏幕的次数,HZ;
帧率:GPU在一秒内操作画面的帧数,fps;
二、布局的选择
1.FrameLayout能实现的优先使用FrameLayout;
2.优先选择RelativeLayout;(会有重复绘制的情况)
3.当在RelativeLayout和LinearLayout同事能够满足需求时,优先选择LinearLayout。
****重复绘制:
RelativeLayout需要对他的子视图多次测量,保证他们放在指定位置。
****过度绘制(Overdraw):
屏幕上某一个像素点在同一帧时间绘制了多次。
三、CoordinatorLayout
as不嵌套的情况下构造复杂布局。
四、优化标签的使用
1.include:提高代码的复用性,减少代码;将布局中的公共部分抽取供其他layout使用。
2.merge:解决布局层级的优化,减少布局嵌套的层次,提高布局加载的效率。
3.ViewStub:只有在加载该布局的时候才占用资源,invisible状态是不会绘制出来的。
五、原生view控件的优化
1.ListView的优化:viewHolder,分页加载;
2.WebView的优化:
1)全局WebView:减少首次打开初始化的时间;
2)客户端代理请求数据
3)优化网页加载速度:优先加载文本;