2015-08-15 9 views
26

Gegeben: Eine einfache Aktivität erstellt mit dem Android Studio Wizard, ohne benutzerdefinierten Code innerhalb, verbraucht ständig Speicher aufrufen dumpGfxInfo().Android: Konstante Speicherverbrauch/dumpGfxInfo()

Der Build Android Studio in Allocation Tracker zeigt mindestens drei Fäden das gleiche zu tun:

--- 8< ------------------------------------------------------------------ 

* < Thread 12 > 
    * execTransact():446, Binder (andoroid.os) 
    * onTransact():545, ApplicationThreadNative (android.app) 
     * dumpGfxInfo():1107, ActivityThread$ApplicationThread (android.app) 

--- 8< ------------------------------------------------------------------- 

Offenbar dumpGfxInfo() Speicher verbraucht durch Speicher für leere Zeichenfolgen zugeordnet werden. Die einzige relevante Abhängigkeit kompiliert in ist com.android.support:appcompat-v7:22.2.1

Zusammen mit diesem Speicherverbrauch, Ausnahme folgende (manchmal) entsteht:

15331-15364/ W/Binder﹕ Caught a RuntimeException from the binder stub implementation. 
    java.lang.NullPointerException: Attempt to read from field 'android.view.HardwareRenderer android.view.View$AttachInfo.mHardwareRenderer' on a null object reference 
      at android.view.WindowManagerGlobal.dumpGfxInfo(WindowManagerGlobal.java:466) 
      at android.app.ActivityThread$ApplicationThread.dumpGfxInfo(ActivityThread.java:1107) 
      at android.app.ApplicationThreadNative.onTransact(ApplicationThreadNative.java:548) 
      at android.os.Binder.execTransact(Binder.java:446) 

Frage: Wie um dieses Verhalten zu beheben/auszuschalten und loszuwerden?

Antwort

19

Scheint wie es ist neueste Android Studio Bug. Ältere Versionen haben dieses Problem nicht. Siehe this link

+0

Vielen Dank für Ihre Antwort. – Pryer

+0

Das passiert im Emulator, wenn ich Marker-Interaktionen teste. Was hat es mit Android Studio zu tun? –

+0

@IgorGanapolsky einen Blick auf Fragetext. Selbst leere Projekte haben dieses Problem: "Eine einfache Aktivität, die mit dem Android Studio-Assistenten erstellt wurde, ohne dass benutzerdefinierter Code darin enthalten ist, verbraucht ständig Speicher, der dumpGfxInfo() aufruft." – agamov

1

Das beschriebene Verhalten wurde im neuesten SDK Update 1.4 Beta (Build AI-141.2202261) behoben.

28

Für weitere Informationen und für alle, die hierher kommen: Sie müssen GPU Profiling deaktivieren, da es nicht standardmäßig deaktiviert ist (Android Studio 2.1 Preview 4). Sie finden die Schaltfläche im Abschnitt "Monitore" (siehe Bild unten) enter image description here

+3

Danke Mann. Ich habe versucht, ein Speicherleck in meiner App seit zwei Tagen zu finden, da es ständig erhöhte Speicherspitzen zeigte. Stellt sich heraus, der Buffon eines Android-Studio überwacht ständig meine GPU und hogging mein Gedächtnis: \ – Kushan

+3

Dies sollte Antwort angenommen werden. 100% richtig. –

+1

Vielen Dank Mann, ich verbrachte auch die letzten zwei Tage versucht, ein Leck zu finden. Das war genau das, was ich brauchte. –