APP开发实战124-APP UI性能优化

30.4UI性能优化

1 通过标签嵌入布局。

2 使用Fragment复用布局。

3 通过标签减少布局层次。

4 使用ViewStub减少创建布局时加载的资源。

5 使用Android:visibility="gone"代替android:visibility="invisibility",减少布局时要处理的控件。

6 在某个方向上使用了weight ,那在对应的方向上设置android:layout_width="0dp"或者 android:layout_height="0dp",以减少布局时的运算量。

7 尽量避免在测量(OnMeasure)、布局(OnLayout)和绘制(OnDraw)中做过于耗时及耗内存操作,尽量减少这些步骤的执行次数。

8 避免不必要的android:background属性设置或代码中对背景的设置;父视图和子视图的背景色是一样的时候,子视图中不必再设置背景;尤其是用这种方式嵌入布局的时候,注意include的布局文件中是否有重复设置背景。

9 使用clipRect绘制特定区域,减少绘制的工作量。

10 在ListView等列表组件中,尽量避免使用LinearLayout的layout_weight属性。

11 尽量减少布局的嵌套层数,如包含一个ImageView和TextView的线性布局,可以用CompoundDrawable的TextView来代替。

12 在ListView滑动,广告动画变化等过程中,图片和文字有变化,经常会发现整个界面被重新布局,影响了性能。尤其布局复杂时,测量过程很费时导致明显卡顿。对于大小基本固定的控件和布局例如TextView,ImageView来说,这是多余的损耗。可以用自定义控件来阻断,重写方法requestLayout、onSizeChanged,如果大小没有变化就阻断这次请求。对于ViewPager等广告条,可以设置缓存子view的数量为广告的数量。

你可能感兴趣的:(APP开发实战124-APP UI性能优化)