Android性能优化总结,必须知道的重点!!!

说到Android性能优化主要从以下六点说一下 

1.布局优化

主要就是尽量减少布局文件的层次,Android绘制的工作量少,程序的性能就高了。首先在布局中可以采用LinearLayout也可以采用RelativeLayout的时候尽量使用LinearLayout,因为在绘制的时候它只会绘制一次。也可以采用<include>标签 它可以指定一个布局文件加载到当前的布局文件,大多实现一些布局文件的复用。<merge>标签一般和<include>一起使用 减少布局层次。还有一个是ViewStub控件,它是非常轻量级的宽高都是0,它本身不参与布局和绘制过程。(可以理解为ViewPager的懒加载)在使用的时候再加载,从而提高性能。

2.绘制优化

绘制优化是指View的onDraw方法要避免执行大量的操作,这个主要体现在两个方面:一、不要在onDraw中创建新的局部对象,因为这个方法会被重复调用,这样会产生大量的临时对象,占用内存。二、不要在onDraw中耗时操作,尽量降低onDraw方法的复杂度,(保证View的每帧绘制时间在16ms左右)

3.内存泄漏优化

内存泄漏优化也可以分为两个方面来说 一个是避免在代码编写过程中有内存泄漏的代码,第二个是通过一些第三方的检测工具来找出潜在的内存泄漏的问题所在从而解决。

需要注意的一些点:(1)静态变量进行强应用导致的内存泄漏。(2)属性动画导致的内存泄漏,从3.0开始Google提供了属性动画,他其中有一类是是无限循环的动画  我们需要在当前Activity销毁的时候对动画进行终止 若不停止会导致View对Activity一直持有,最终Activity无法释放。

4.响应速度优化

响应速度优化的核心思想是在避免在主线程中耗时操作(防止ANR),若有需要采用异步的方式去执行。当我们在应用启动的时候会出现白屏现象,我们可以采用改变启动页样式,给他设置一个背景,来提升用户体验。这也是一个开发的小技巧。(Android规定 Activity如果5秒钟无法响应或者是BroadcaseReceiver10秒钟没有执行完操作会出现ANR。当我们在开发过程中遇到ANR了,系统会在/data/anr目录下创建一个traces.txt文件,我们可以去查看文件。)

5.ListView优化和Bitmap优化

Listview优化主要有两个个方面:(1)采用ViewHolder来实现item的复用,并避免在getView方法中执行耗时操作。(2)根据列表的滑动状态来控制任务的执行效率,比如当列表快速滑动时不适合开启大量的异步任务。

Bitmap优化只要是采用BitmapFactor根据需要来对图片进行二次采样(这个有专门对Bitmap的操作)

6.线程优化

线程优化就是考虑采用线程池,避免程序中存在大量的线程进行创建销毁带来的性能开销,同时能有效地控制线程的最大并发数,避免出现线程抢占cpu从而出现阻塞现象(这时候可给说一下关于线程池的一些东西,有做专门总结)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章