Android中的性能优化主要包括:
1.布局优化
2.绘制优化
3.内存优化
4.响应速度优化
5.listview优化
6.bitmap优化
1.先讲一下布局优化:尽量减少布局层级,relativeLayout性能比LinearLayout性能差一些,当层级比较多的时候尽量使用RelativeLayout,当层级比较少的时候尽量使用LinearLayout
<include>可以重用布局,<merge>可以减少层级,<ViewStub>先不加载布局,只有在用到的时候再加载。
2.view的draw操作会执行多次,所以不能在draw中进行大量操作
(1)onDraw方法中不要创建新的局部对象,因为onDraw方法可能被频繁的调用,这样一瞬间会产生大量的临时对象,这些对象不仅占用了过多的内存,而且还会导致系统频繁的gc,降低了程序的执行效率。 造成内存抖动。
(2)onDraw方法中不要执行耗时任务,也不能执行成千上万次的循环操作,大量的循环十分抢占CPU的时间片,这会造成view的绘制过程不流畅。
3.内存泄漏:
内存泄漏应该从两个方向上来分析:(1)尽量避免内存泄漏的代码 (2)要使用一些内存分析工具来查找,比如mat,monitor等
4.listview的优化
(1) 使用viewHolder来避免在getView()中进行重复初始化。
(2) 根据事件来判断,当正在滚动时应尽量避免加载网络图片或其他事件。
(3) 开启硬件加速。
5.bitmap优化:
主要是通过BitmapFactory.Options
来根据需要对图片进行采样,采样的过程主要使用到了BitmapFactory.Options
来根据需要对图片进行采样,采样的过程主要使用到了BitmapFactory.Options
的inSampleSize
参数
6.线程优化:
主要是采用线程池来避免重复创建线程。