内存指标在android应用程序

我编写了Android应用程序,它具有随机出现的Out Of Memory异常的一些奇怪问题。 是的,我知道OOM异常的问题通常是因为图像,我尽我所能避免了这个问题。 我能想到找到花费内存的地方的唯一方法就是将日志记录到每个地方的内存信息中。 但我真的很困惑我需要哪些值。

我使用了下一个值:

  • 调用Runtime.getRuntime()。maxMemory()
  • 调用Runtime.getRuntime()。freeMemory()
  • 调用Runtime.getRuntime()。totalMemory()
  • Debug.getNativeHeapAllocatedSize()
  • Debug.getNativeHeapFreeSize()
  • Debug.getNativeHeapSize()
  • 在OOM例外之前,我有下一个值:

  • maxMemory:57344K
  • freeMemory:9581K
  • totalMemory:22407K
  • NativeHeapAllocatedSize:34853K
  • NativeHeapFreeSize:302K
  • NativeHeapSize:40060K
  • lowMemory错误
  • 在这个问题Android的位图限制 - 防止java.lang.OutOfMemory我看到使用((reqsize + Debug.getNativeHeapAllocatedSize()+ heapPad)> = = Runtime.getRuntime()。maxMemory())蚂蚁在这个博客中的一些奇怪的信息:

    Debug.getNativeHeapFreeSize(); 可用大小是由于碎片或配置而未使用的堆的内存量。

    另外我不明白haw可以是OOM异常,如果(totalMemory:22407K)远远小于(maxMemory:57344K)。

    请帮我理解如何使用这个值。

    链接地址: http://www.djcxy.com/p/93059.html

    上一篇: Memory metrics in android apps

    下一篇: Same application uses different amounts of memory on different Android devices