1、使用merge
概念: 顾名思义,就是合并、融合的意思。使用它可以有效的将某些符合条件的多余的层级优化掉。
使用:自定义View中使用,父元素尽量是FrameLayout,当然如果父元素是其他布局,而且不是太复杂的情况下也是可以使用的
Activity中的整体布局,根元素需要是FrameLayout
限制:
(1)merge只能用在布局XML文件的根元素
(2)使用merge来inflate一个布局时,必须指定一个ViewGroup作为其父元素,并且要设置inflate的attachToRoot参数为true。(参照inflate(int, ViewGroup, boolean))
(3)不能在ViewStub中使用merge标签。最直观的一个原因就是ViewStub的inflate方法中根本没有attachToRoot的设置
2、使用ViewStub
使用viewstub来实现延迟加载
3.使用include
把重复的布局提取出来,用include重用代码
include android:layout_width="fill_parent" android:layout_height="wrap_content" layout="@layout/head" />
4.优化Bitmap图片
通过设置BitmapFactory.Options 的inJustDecodeBounds为true取出图片的原始高度和宽度进行缩放inSampleSize来进行优化
优化的原则:
1.避免不必要的嵌套
2.避免使用太多的视图,在一个布局中每增加一个视图,都会在过度操作时消耗很多资源
3.避免使用深度嵌套。