一直想整理一篇关于Android性能优化的博客,正好今天借鉴一些书籍资料,总结一下自己对于这块的一些认识。相信大家都听说过16ms的原则,即每两个画面之间的绘制时间间隔不能超过16ms,否则人眼能够感觉到明显的卡顿。基于这个角度出发,我们将从一下三个方面进行分析性能优化的问题。
布局优化,避免OverDraw就是过度绘制,比如一个Activity里面,你针对一个控件重复设置了背景颜色那么就属于OverDraw了。在Android中,系统针对View进行测量、布局和绘制时,都是通过对View数的遍历来进行操作的。如果一个View树的高度太高,就会严重影响测量、布局和绘制的速度,Google也在其Api建议View树的高度不宜超过10层。所以我们在进行布局的时候,尽量减少View的高度,可以使用include标签重用Layout,或者使用ViewStub标签实现View的延迟加载。可以通过Hierachyviewer工具来检测视图树,从而找出冗余的布局。
内存优化,首先我们来看一下Android的内存分类:堆(GC托管),栈,寄存器,静态存储区域,常量池。针对内存优化,我们又可以区分一下两种场景:大文件压缩缓存机制和代码优化。大文件压缩缓存机制是什么意思呢?比如Bitmap加载大图片的时候,我们可以在BitmapFactory里面设置一定的压缩参数,然后在Bitmap对象使用完成以后,手动调用recycle()方法释放内存资源。最后还可以使用缓存机制LruCache和DiskLruCache两种机制可以更好的使用Bitmap,下面我们来详细列举一下代码优化的实例。
性能优化的工具介绍:
原文:http://www.cnblogs.com/xiaocai20091687/p/xiaocai_android_new_9.html