什么是Overdraw?就是过度绘制
Android提供了测量Overdraw的选项,在开发者选项-调试GPU过度绘制(Show GPU Overdraw),打开选项就可以看到当前页面Overdraw的状态,就可以观察屏幕的绘制状态。该工具会使用三种不同的颜色绘制屏幕,来指示overdraw发生在哪里以及程度如何,其中:
没有颜色: 意味着没有overdraw。像素只画了一次。
蓝色: 意味着overdraw 1倍。像素绘制了两次。大片的蓝色还是可以接受的(若整个窗口是蓝色的,可以摆脱一层)。
绿色: 意味着overdraw 2倍。像素绘制了三次。中等大小的绿色区域是可以接受的但你应该尝试优化、减少它们。
浅红: 意味着overdraw 3倍。像素绘制了四次,小范围可以接受。
暗红: 意味着overdraw 4倍。像素绘制了五次或者更多。这是错误的,要修复它们。
布局选择
1. Framelayout 能实现的优先使用 Framelayout
2. 优先选择 Relativelayout
3. 当在 Relativelayout 和 Linearlayout 在不嵌套的情况下 同时能满足需求时 优先选择 Linearlayout
Constraintlayout 优先选择布局
性能比较结果表明:Constraintlayout 在测量/布局阶段的性能比Relativelayout 大约高40%
注: View Tree 和 HierarchyView 的使用
优化标签的使用
1. include
目的是提高代码的复用性,减少代码;将布局中公共部分抽取供其他layout使用
2. merge
解决布局层级的优化,减少布局嵌套的层次,提高布局加载的效率
3. ViewStub
ViewStub只有加载该布局的时候才占用资源,INVISIBLE状态是不会绘制出来的
原生View控件的优化 WebView的优化
全局WebView
客户端代理请求数据
优化网页加载速度 先禁止加载图片 页面加载结束后再加载图片 先加载文本再加载图片 图片加载比文本慢
参考链接:https://www.imooc.com/learn/1030
参考链接:https://www.jianshu.com/p/145fc61011cd