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