十二、性能优化-绘制优化和布局优化

绘制性能的好坏主要影响:应用中的页面显示速度
优化方向:

  1. 降低View.onDraw()的复杂度
  2. 避免过度绘制,即布局优化

一、降低View.onDraw()的复杂度

二、布局优化

布局性能的好坏主要影响:应用中页面的显示速度

具体优化方案

1、选择耗费性能较少的布局

性能耗费低的布局 = 功能简单 = FrameLayout、LinearLayout
性能耗费高的布局 = 功能复杂 = RelativeLayout
注:

  1. 嵌套所耗费的性能 > 单个布局本身耗费的性能
  2. 即 完成需求时:宁选择 1个耗费性能高的布局,也不采用嵌套多个耗费性能低的布局

2、减少布局的层级(嵌套)

抽取公共布局时《merge》,子view定位是跟引用《merge》时的父布局有关

3、提高布局的复用性

使用 布局标签 《include》

4、减少初次测量和绘制时间

优化方案:使用 布局标签《ViewStub》 & 尽可能少用布局属性 wrap_content
所以在已知宽高为固定值时,不使用wrap_content

参考:https://www.jianshu.com/nb/21401973