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:bitmap_info

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?

War es hilfreich?

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 darauf mBuffer 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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top