Android性能优化---笔记

1-布局优化

尽量减少布局的层级

删除布局中的无用控件和层级 使用性能较低的ViewGroup、

<include>,<merge>标签

ViewStub提供按需加载功能;

2-绘制优化

onDraw 方法避免大量的操作

3-内存泄漏优化

避免写内存泄漏的代码,使用内存分析工具找出潜在的内存泄漏继而解决;

1.静态变量导致的内存泄漏

2.单例模式导致的内存泄漏

3.属性动画导致的内存泄漏

4-响应速度优化

核心思想避免在主线程中做耗时的操作

发送ANR异常后 系统会在/data/anr目录下创建一个traces.txt文件 分析文件找出原因;

5-ListView的优化

1.采用ViewHolder避免在getView方法中执行耗时的操作;

2.根据列表的滑动状态来控制任务的执行频率;

3.开启硬件加速

6-Bitmap的优化

BitmapFactory.Options对图片进行采样;

7-线程优化

采用线程池避免程序中有大量的Thread

8-其他优化方式

避免创建过多的对象;

不要过多的使用枚举;

常量使用 static final 修饰;

采用双缓存机制

适当使用软引用 弱引用

尽量采用静态内部类

———————————————————————————————————————————————————————————————————-

一、减少Reduce

差异化对待缓存容量

差异化对待图片资源

资源按需加载

减少bitmap对象的内存占用

inSampleSize

decodeformat (ARGB_8888,ARGB,ARGB_4444,A_LPHA_8);

二、重用Reuse

Bitmap对象的复用inBitmap

ListView,GridView中convertView的复用

避免频繁的创建和回收对象

三、回收利用再循环。Recycle

Activity泄漏内部类static,singleton,

容器对象的泄漏

选择适合的context,

注意生命周期内对象的注销。

大胖子bitmap对象的回收

大胖子webview对象的回收

大胖子cursor对象的回收

onTrimMemory

onLowMemory

四、重构Refactor

使用优化过的数据结构

减少内存的碎片化

优化布局减少内存消耗

———

    原文作者:Kevin_Curry
    原文地址: https://www.jianshu.com/p/94ea5a3df170
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞