Android 内存优化汇总

1. Api

    SparseArray<E>        -> HashMap<Integer, E>

    SparseBooleanArray -> HashMap<Integer, Boolean>

    SparseIntArray          -> HashMap<Integer,Integer>

    SparseLongArray      -> HashMap<Integer, Long>

    ArrayMap<K, V>        -> HashMap<K, V>


2. 布局

    使用merge减少层级

    使用ViewStub延迟加载

    使用include减少重复代码

    TextView drawableTop等替换ImageView和TextView的组合

    LinearLayout使用showDivider

    减少重复绘制(overdraw)

3. Bitmap

    使用SoftReference加速回收

    使用LruCache比SoftReference更有效率

4. View

    ListView的convertView的复用

5. Resources

    及时关闭Cursor, InputStream, OutputStream等

    及时释放Bitmap

6. 内存泄漏

    1. 避免Handler泄漏, 使用静态内部类

    2. BraodcastReceiver,ContentObserver,FileObserver,Cursor在Activity onDeatory或者某类声明周期结束之后一定要

        unregister或者close掉,否则这个Activity类会被system强引用,不会被内存回收

    3. 对activity的引用应该控制在activity的生命周期之内

    4. 如果不能就考虑使用getApplicationContext或者getApplication

    5. 尽量不要在静态变量或者静态内部类中使用非静态外部成员变量

7. 第三方推送占用内存

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值