Android之的性能优化方法

来源:互联网 发布:易语言mysql数据库 编辑:程序博客网 时间:2024/06/17 23:24

1、布局优化:

原理:尽量减少布局的文件的层级,层级越少,Android绘制时的工作量少了,程序性能提高

1、删除无用的控件和层级,选择使用性能较低的ViewGroup,比如RelativeLayout

2、如果布局在有LinearLayout和RelativeLayout,建议使用LinearLayout,RelativeLayout功能复杂,布局花费更多的CPU时间,如果嵌套还是用RelativeLayout

3、采用<include>标签 <merge> 标签和ViewStub标签


2、绘制优化:

绘制优化是只View的onDraw方法要避免大量操作,

1、在onDraw方法里面不要创建新的布局对象,因为onDraw方法可能频繁调用
2、在onDraw方法中不要做耗死的任务,不嫩执行成千上万的耗时操作,这样会抢CPU的时间片,造成View的绘制不流畅,尽量降低onDraw的时间复杂度。


3、内存泄露优化:

    1、静态变量导致内存泄露,比如activity里面有静态变量,导致activity无法销毁
    2、单例模式导致内存泄露,单例模式的特点是起生命周期和Application保持一致,因此activity无法及时释放
    3、属性动画导致内存泄露,属性动画是安卓3.0开始,Google提供的,属性动画有一类无限循环的动画,如果在Activity中播放没有onDestroy中停止动画,那么会一直播放下去,解决办法在Activity中onDestroy方法调用animator.cancel()停止动画


4、 响应优化和ANR日志分析

响应速度优化核心思想是避免主线程中做耗死操作,ANR发生 系统会在/data/anr目录下创建一个文件traces,txt.就嫩分析原因

5、ListView和Bitmap优化

 listView:

 1 采用ViewHolder并且避免在getView中执行耗时操作,
 2 要更具列表滑动状态来控制任务的执行频率,比如当初列表快速滑动时显然是不太适合开启大量的一部任务
 3、开启硬件加速来是ListView变得更加流畅


Bitmap优化:
Bitmap的优化主要是通过BitmapFactory.Options来更加需要对图片进行采样,采样过程中主要用到了BitmapFactory.Options的inSampleSize参数


6、线程优化

尽量使用线程池,避免大量使用Thread,线程池可以重用内部的线程,避免了线程的创建和销毁带来的性能开销,还能有效的控制线程池的最大并发数,避免占用系统资源从而导致阻塞现象的发生。

7、一些优化的建议

避免创建过多的对象
不要使用每局,枚举占用的内存空间要比整形大
常量尽量使用static final来修饰
使用Android特定的数据结构,比如SparseArray和Pair等,他们具有更好的性能
适当使用软引用
采用内存缓存和磁盘缓存
尽量采用静态内部类,这样可以皮面潜在的由于内部类导致的内存泄露




0 0
原创粉丝点击