MAT (Eclipse Memory Analyzer) – So zeigen Sie Bitmaps aus dem Speicherauszug an
-
13-12-2019 - |
Frage
Ich analysiere die Speichernutzung meiner Android-App mithilfe von Eclipse-Speicheranalysator (auch bekannt als MAT).Manchmal finde ich seltsame Beispiele dafür android.graphics.Bitmap
Klasse, die einen großen Teil des Heaps nutzt.Das Problem ist, dass ich die Quelle dieser Bitmaps nicht finden kann, nein Dateiname, NEIN Ressourcen-ID, Nichts.Alle Informationen, die ich für Bitmap finden kann, sind folgende:
Es gibt ein Feld mBuffer
mit einer Reihe von Bildpixeln, nehme ich an.Aber es liegt in einem internen Android-Format vor, nicht in PNG.
Frage:Wie kann ich das durch diese Bitmap dargestellte Bild aus dem Speicherauszug anzeigen?
Lösung
Ich habe eine Möglichkeit gefunden, solche Bitmaps anzuzeigen:
- Zuerst müssen Sie es herunterladen und installieren GIMP
- Als nächstes finden Sie Ihre
Bitmap
Objekt in MAT, klicken Sie mit der rechten Maustaste daraufmBuffer
Feld, im Popup-Menü wählen Sie "Kopieren" -> „Wert in Datei speichern“ Menüpunkt und speichern Sie den Wert dieses Arrays in einer Datei - Verlängerung geben
.data
zu dieser Datei - Starten Sie GIMP und wählen Sie "Datei" -> "Offen", wähle Deine
.data
Datei und klicken Sie Offen Taste - „Bild aus Rohdaten laden“ Es erscheint ein Dialog.Hier müssen Sie die richtigen Parameter für Ihre Bitmap festlegen
- Zuerst wählen Sie "Bildtyp" als „RGB Alpha“ (Die meisten Android-Ressourcen verfügen über diesen Bildtyp, Sie müssen jedoch möglicherweise mit anderen Bildtypen experimentieren.)
- Zweitens, richtig einstellen Breite Und Höhe für Ihre Bitmap (die korrekten Abmessungen finden Sie im Speicherauszug)
Zu diesem Zeitpunkt sollten Sie bereits eine Vorschau des Originalbildes sehen.Wenn Sie dies nicht getan haben, können Sie versuchen, einige andere Parameter zu ändern „Bild aus Rohdaten laden“ Dialog.
NOTIZ:um die Breite und Höhe des Bildes zu ermitteln, das Sie betrachten können mWidth
Und mHeight
Felder in MAT im Attributbereich, wie im fraglichen Bild gezeigt.
Andere Tipps
Sie können Speicherauszüge mit von MAT in PNG konvertieren ImageMagick auf der Kommandozeile.
In MAT
für verwandte Bitmap
Klicken Sie mit der rechten Maustaste auf das Objekt mBuffer
Feld und wählen Sie „Kopieren“ -> „Wert in Datei speichern“, benennen Sie die Datei mit einem .rgba
Verlängerung.
Sie müssen die Breite und Höhe der Bitmap notieren mWidth
Und mHeight
Felder, die Sie im Bitmap-Objekt sehen können.
Haben ImageMagick
Befehlszeilentools installiert (für Ubuntu apt-get install imagemagick
), geben Sie aus convert
Befehl mit den folgenden Parametern.
convert -size 'width'x'height' -depth 8 filename.rgba filename.png
Zum Beispiel
convert -size 680x1209 -depth 8 phone_decor.rgba phone_decor.png
Sie können die generierte PNG-Datei über überprüfen eog, wie eog phone_decor.rgba
An Ubuntu
leicht.