Android手机对应用都有个最大内存使用限制
// 打印看一下手机跟APP分配的内存信息
public void getMemoryInfo() {
StringBuilder sb = new StringBuilder();
ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
int memoryMax = am.getMemoryClass();
int memoryLarge = am.getLargeMemoryClass();
sb.append("memoryMax:" + memoryMax + " | ");
sb.append("memoryLarge:" + memoryLarge);
Log.i("MEMO", sb.toString());
}
Android代码中内存使用注意点
- String拼接采用StringBuilder
- 复用系统自带资源
- RecycleView的ViewHoder复用
- 避免onDraw()方法中执行对象的创建
- 避免Activity泄露
- 用Application的Context
- 注意Cursor对象及时关闭
- ArrayMap跟HashMap相比效率高
- 图片压缩(鲁班压缩等)
- 代码编写规范,避免内存抖动等问题
参考链接