Android获取内存大小的地方:
ActivityManager.getMemory();
ActivityManager.MemoryInfo.totalMem;
ActivityManager.MemoryInfo.availMem;
Runtime.getRuntime().totalMemory();
Runtime.getRuntime.freeMemory();
Runtime.getRuntime().maxMemory();
ActivityManager.getMemoryClass();
在Android系统中除了因为内存不足而出现的OOM之外,还会因为内存在充足的情况下,因为其他原因而导致的OOM。
java.lang.OutOfMemoryError:Could not allocate JNI Env
或者
java.lang.OutOfMemoryError:pthread_create failed: Out of memory
创建线程时造成的OOM。
1:打开的文件描述符超过系统配置
proc/pid/fd下的文件数目超过 proc/pid/limits
2:一个进程打开线程数量有限
proc/pid/status 记录的线程数超过 proc/sys/kernel/threads-max 中的的一个进程创建最多线程数。