Android中常见的优化技术

来源:互联网 发布:对象数组的地址 编辑:程序博客网 时间:2024/06/07 07:00

内存优化

(1)避免创建不必要的对象
就像世界上没有免费的午餐,世界上也没有免费的对象。虽然gc为每个线程都建立了临时对象池,可以使创建对象的代价变得小一些,但是分配内存永远都比不分配内存的代价大。如果你在用户界面循环中分配对象内存,就会引发周期性的垃圾回收,用户就会觉得界面像打嗝一样一顿一顿的。所以,除非必要,应尽量避免不必要对象的实例
(2) 静态方法代替虚拟方法(静态方法是使用公共内存空间的,就是说所有对象都可以直接引用,不需要创建对象再使用该方法)
如果不需要访问某对象的字段,将方法设置为静态,调用会加速15%到20%。这也是一种好的做法,因为你可以从方法声明中看出调用该方法不需要更新此对象的状态。
(3)将成员缓存到本地
访问成员变量比访问本地变量慢得多,下面一段代码:
for(int i =0; i

布局优化

(1)首先是善用相对布局Relativelayout
减少需要渲染的层级
(2)布局优化的另外一种手段就是使用抽象布局标签include、merge、ViewStub

Include
include标签常用于将布局中的公共部分提取出来,比如我们要在activity_main.xml中需要上述LinearLayout的数据,那么就可以直接include进去了。

图片的三级缓存

原理
● 首次加载 Android App 时,肯定要通过网络交互来获取图片,之后我们可以将图片保存至本地SD卡和内存中
● 之后运行 App 时,优先访问内存中的图片缓存,若内存中没有,则加载本地SD卡中的图片
● 总之,只在初次访问新内容时,才通过网络获取图片资源
1. 自定义的图片缓存工具类(MyBitmapUtils)

http://www.jianshu.com/p/2cd59a79ed4a