Speicher-Monitor in Android Studio berichtet von verschiedenen RAM-Nutzung als das Gerät

Bei der Untersuchung der RAM-Nutzung in einer App, an der ich arbeite, habe ich das Memory Monitor-Tool in Android Studio verwendet (kann in Android Studio aufgerufen werden, indem du auf Tools> Android> Memory Monitor gehst). Ich habe festgestellt, dass die RAM-Nutzung meiner App, die in Memory Monitor gemeldet wird, ist immer weit niedriger als bei der Anzeige der RAM-Nutzung aus dem Gerät (kann aufgerufen werden, indem Sie auf Einstellungen> Apps> Running). Wie Sie in den Screenshots unten sehen können, berichtet Memory Monitor über 18MB RAM-Nutzung (23MB, wenn Sie freien Speicherplatz einschließen), aber das Gerät berichtet 43MB.

Warum der Unterschied und ist auch ein genauer als der andere?

  • Gradle-Ausführungsfehler in Android Studio (Ubuntu)
  • Machen Sie eine HTTPS-Anfrage mit Android Volley
  • Obfuscation: hartcodierte Werte in Java ausblenden
  • Install android sdk mit Kommandozeilen linux
  • Eclipse sagt "Update Android Developer Toolkit"
  • Upload und Download Rate Profiling in Android
  • Speichermonitor

    Gerät

  • Wie konfiguriere ich Trockenlauf- und Log-Level-Optionen über XML in Google Analytics v4 SDK für Android?
  • Lichtthema für AlertDialog?
  • Android Studio Fehler Diese Support-Bibliothek sollte nicht eine niedrigere Version (19)
  • Holen Sie sich Dateiname und Pfad von URI von mediastore
  • Dynamisch alle Bildressourcen-ID in einem Array
  • Wo finden Sie kostenlose offene android benutzerdefinierte Kontrollen?
  • 2 Solutions collect form web for “Speicher-Monitor in Android Studio berichtet von verschiedenen RAM-Nutzung als das Gerät”

    Ich vermute, dass das Speicher-Monitor-Tool mit der dalvik virtuellen Maschine über Haufen-Zuweisungen von Java-Code, und der Geräte-Manager zeigt, was der gesamte Prozess ist für den Speicher verwendet zu sprechen. So enthält das erste nicht den Overhead oder den Speicher, der von der virtuellen Maschine selbst (oder seinem Text und Bibliotheken) verwendet wird, oder irgendwelche Off-Heap-Zuweisungen (manchmal native Code kann Speicher reservieren, der nicht direkt für die VM sichtbar ist).

    Weitere Informationen finden Sie unter https://developer.android.com/tools/debugging/debugging-memory.html#ViewingAllocations und versuchen Sie, den Befehl auszuführen:

     adb shell dumpsys meminfo <package_name> 

    Um einen genaueren Ausfall der Laufzeit-Speicher-Nutzung Ihrer Anwendung zu erhalten.

    Ich habe die Android-Studio's Memory Monitor's Allocated getestet können, bekommen diese Weise programmgesteuert:

    long allocatedMemory = Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory();

    Aber das funktioniert nur, um Informationen über die aktuelle App zu erhalten.

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.