Android优化(一)——布局优化
2015-12-11 22:07
393 查看
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"
b08e
/>
4.优化Bitmap图片
通过设置BitmapFactory.Options 的inJustDecodeBounds为true取出图片的原始高度和宽度进行缩放inSampleSize来进行优化
优化的原则:
1.避免不必要的嵌套
2.避免使用太多的视图,在一个布局中每增加一个视图,都会在过度操作时消耗很多资源
3.避免使用深度嵌套。
概念: 顾名思义,就是合并、融合的意思。使用它可以有效的将某些符合条件的多余的层级优化掉。
使用:自定义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"
b08e
/>
4.优化Bitmap图片
通过设置BitmapFactory.Options 的inJustDecodeBounds为true取出图片的原始高度和宽度进行缩放inSampleSize来进行优化
优化的原则:
1.避免不必要的嵌套
2.避免使用太多的视图,在一个布局中每增加一个视图,都会在过度操作时消耗很多资源
3.避免使用深度嵌套。
相关文章推荐
- Android布局的小窍门?
- Web布局连载——两栏固定布局(五)
- MySQL 优化
- Google排名优化的几个影响因素
- DB2优化(简易版)
- Mysql limit 优化,百万至千万级快速分页 复合索引的引用并应用于轻量级框架
- C#中尾递归的使用、优化及编译器优化
- 对优化Ruby on Rails性能的一些办法的探究
- 优化Ruby脚本效率实例分享
- 样式表CSS布局经验
- Asp编码优化技巧
- 如何监测和优化OLAP数据库
- mysql -参数thread_cache_size优化方法 小结
- 深入学习SQL Server聚合函数算法优化技巧
- css网页布局中注意的几个问题小结
- DL.DT.DD实现左右的布局简单例子第1/2页
- 使用CSS框架布局的缺点和优点小结
- div+CSS网页布局的意义与副作用原因小结第1/2页
- MySQL常见的底层优化操作教程及相关建议
- 详解mysql的limit经典用法及优化实例