您的位置:首页 > 移动开发 > Android开发

Android性能优化

2016-06-29 11:34 344 查看


前言

Android性能优化主要包括布局优化、绘制优化、内存泄露优化、响应速度优化、ListView优化、Bitmap优化、线程优化以及一些优化建议.

实际上每个面都可以扩展很多,书中讲的不太多(篇幅少),需要在实际中多去运用.

后面还有MAT的基本使用,我没记,可以去搜,资料不少~

布局优化

减少布局文件的层级(测量/布局/绘制的时间减少):可以使用RelativeLayout来减少嵌套,从而达到减少层级的目的,另外在相同层级的情况下使用LinearLayout(相比于RelativeLayout更高效)

使用
include
标签复用,
merge
标签降低层级,
ViewStub
来实现懒加载,另外补充一个
Space
可以用来占位

绘制优化(onDraw)

主要是避免执行大量的操作.

不要创建新的局部对象,因为onDraw可能会被频繁调用,会在一瞬间产生大量的临时对象,会导致占用过多内存,系统更加频繁的gc,降低执行效率
不要做耗时的任务

内存泄露优化

其实内存泄露有很多种情况,但是书中列举的比较少

静态变量导致的内存泄露(比如静态的context,静态的view)
单例模式持有Activity
属性动画(repeatCount为无限模式)

ListView和Bitmap优化

ListView使用viewholder模式,Bitmap在12章有讲,这里不重复.

线程优化

主要是采用线程池(11章有讲)

避免存在大量的Thread
重用Thread,避免线程创建和销毁所带来的开销
线程池还能控制最大并发数,避免大量线程因互相抢占系统资源从而导致阻塞

其他的一些性能优化建议

避免创建过多的对象
不要过多使用枚举(枚举占用的内存空间要比整型的大)
常量使用
static final
来修饰
使用一些Android特有的数据结构,比如
SparseArray
Pair
等,它们都具有更好的性能(注:减少了自动装箱和拆箱的消耗)
适当使用软引用和弱引用
尽量采用静态内部类(不会持有外部类的实例)

提高可维护性

命名规范
代码排版
给非常关键的代码写注释
代码要有层次性,可扩展

其他的资料推荐

10-ways-to-improve-your-android-app

Android性能优化典范 - 第4季

Android性能优化典范 - 第3季

Android性能优化典范 - 第2季

Android性能优化典范 - 第1季
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  性能优化 android