Android 内存优化汇总

来源:互联网 发布:无线电频率测量软件 编辑:程序博客网 时间:2024/06/07 01:07

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. 第三方推送占用内存

0 0