Android性能优化有多种方式,在多个方面都有体现:缓存
布局优化:布局优化的思想就是减小布局的层级,使用<include/>, <merge/> , <ViewStub/>
来优化布局。性能优化
绘制优化:绘制优化是指在View
的onDraw()
方法内避免执行大量的操做。不要在在onDraw()
方法内建立大量的局部对象,这不只会占用过多内存还会频繁gc
,下降程序的效率;不要在onDraw()
方法内执行耗时操做,绘制时间要保持在16ms之内,防止界面卡顿。异步
内存泄漏优化:内存泄漏,是指一段内存在该释放的时候却得不到释放,致使App内内存越用越少。一,静态变量致使的内存泄漏,静态变量的生命周期是整个程序的生命周期,因此不要让静态变量引用生命周期比程序生命周期短的对象;二,单例模式致使的内存泄漏,单例模式对象引用局部对象致使内存泄漏;三,属性动画或线程致使的内存泄漏,属性动画和线程不去主动中止,会一直执行下去的,要在适当的时候中止属性动画和线程。布局
响应速度优化和ANR
:响应速度优化是指避免在主线程作耗时操做,由于操做都是在主线程响应的 ;解决ANR
问题,若是不能在代码中找到致使ANR
的缘由,则能够分析traces.txt
找到缘由,traces.txt
文件会记录致使ANR
的缘由的。性能
ListView
和Bitmap
优化:ListView
采用convertView+ViewHolder
缓存策略,来避免在getView()
中执行耗时操做,三级缓存,异步加载,不要在滑动的时候去加载图片,开启硬件加速,来加速渲染;Bitmap
的优化则是加载压缩后的Bitmap
,采样率。优化
线程优化:不要开启大量线程,采用线程池。动画
参考 《Android开发艺术探索》线程