Android 内存优化汇总

1. Api

    SparseArray        -> HashMap

    SparseBooleanArray -> HashMap

    SparseIntArray          -> HashMapInteger>

    SparseLongArray      -> HashMapLong>

    ArrayMap        -> HashMap


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

你可能感兴趣的:(Android 内存优化汇总)