目录
内存溢出OOM
单应用可用的最大内存
导致 OOM 的常见原因
内存实时监控
内存溢出OOM
单应用可用的最大内存
dalvik.vm.heapstartsize,它表示堆分配的初始大小。
dalvik.vm.heapgrowthlimit,它表示单个进程内存限定值。
dalvik.vm.heapsize,单个进程可用的最大内存。
当定义了heapgrowthlimit,就会它的值来限定单个进程的内存值。通常情况下 heapsize 值会大于 heapgrowthlimit 的值。当设置 heapgrowthlimit 的值不够时,我们就可用在清单文件(AndroidManifest.xml)文件里添加 “android:largeHeap=true” 来使用 heapsize 的值。
导致 OOM 的常见原因
1. 加载大图片
2. 内存泄漏
java 异常体系
内存实时监控
JPDA
Java 平台调试体系 JPDA(Java PlatformDebugger Architecture),它是 Java 虚拟机为调试和监控虚拟机专门提供的一套接口。
JVMTI 是 JVM 对外暴露的接口,JDI 是实现了 JDWP 通信协议的客户端,调试器通过它和 JVM 中被调试程序通信。
JVMTI 重要功能
重新定义类
跟踪对象分配和垃圾回收过程
遵循对象的引用树,遍历堆中的所有对象
检测 Java 调用堆栈
暂停(和恢复)所有线程
ART TI
ART(Android Runtime)。在 Android 8.0及更高版本中,ART 工具接口(ART TI )可提供某些运行时的内部架构信息,并允许分离器和调试程序影响影响应用的运行时行为,这可用于实现最先进的性能工具。