一、数据结构优化
1、频繁字符串拼接使用StringBuilder;
***字符串通过+的方式进行字符串拼接,会产生中间字符串内存块,这些都是没有用的;
2、ArrayMap、SparseArray替换HashMap
3、再小的Class耗费0.5KB;
4、HashMap一个entry需要额外占用32B;
二、对象复用
1、复用系统自带的资源;
2、ListView/GridView的ConvertView复用;
3、避免在onDraw方法里面执行对象的创建;
三、避免内存泄漏
***内存泄漏:由于代码瑕疵,导致内存虽然是停止不用了,但是依然被其他东西引用这,导致GC无法进行回收;
1、内存泄漏会导致剩余可用的Heap越来越少,频繁触发GC;
2、Activity泄漏:activity关闭,线程未杀死;
3、用Application Context 而不是Activity的Context(Activity会经常进入退出);
4、注意Cursor对象是否及时关闭(操作数据库的时候);