MAT (Eclipse Memory Analyzer ) - jak przeglądać bitmapy z zrzutu pamięci
Analizuję wykorzystanie pamięci mojej aplikacji na Androida za pomocą Eclipse Memory Analyzer (znanego również jako MAT). Czasami mogę znaleźć dziwne instancje android.graphics.Bitmap
klasy, wykorzystując dużą część sterty. Problem w tym, że nie mogę znaleźć źródła tej bitmapy, nie nazwa pliku, nie resourceID, nic. Wszystkie informacje, które mogę znaleźć dla bitmap są następujące:
Jest pole mBuffer
z tablicą pikseli obrazu, jak przypuszczam. Ale to w jakimś wewnętrznym Format Android, nie PNG.
Pytanie: Jak mogę wyświetlić obraz reprezentowany przez tę bitmapę z zrzutu pamięci?
2 answers
Znalazłem sposób na oglądanie takich bitmap:
- najpierw musisz pobrać i zainstalować GIMP
- następnie znajdź swój obiekt {[0] } W MAT, kliknij prawym przyciskiem myszy na polu
mBuffer
, w menu podręcznym wybierz "Kopiuj" -> "Zapisz wartość do pliku" pozycja menu i zapisz wartość tej tablicy do jakiegoś pliku - podaj rozszerzenie
.data
do tego pliku - Uruchom GIMP, wybierz "Plik" -> "Otwórz", wybierz plik
.data
i kliknij Otwórz button - pojawi się okno dialogowe"Wczytaj obraz z surowych danych" . Tutaj musisz ustawić poprawne parametry dla swojej bitmapy
- najpierw wybierz "typ obrazu" jako "RGB Alpha" (większość zasobów systemu Android ma ten typ obrazu, ale może być konieczne eksperymentowanie z innymi typami obrazów)
- po drugie, Ustaw poprawne Szerokość i Wysokość dla bitmapy (poprawne wymiary można znaleźć w zrzut pamięci)
W tym momencie powinieneś już obserwować podgląd oryginalnego obrazu. Jeśli tego nie zrobiłeś, możesz spróbować zmienić inne parametry w oknie dialogowym "Wczytaj obraz z surowych danych".
Uwaga: aby uzyskać szerokość i wysokość obrazu, możesz spojrzeć na pola mWidth
i mHeight
w sekcji Atrybuty, jak pokazano na danym obrazku.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-05-18 19:33:49
Możesz przekonwertować zrzuty pamięci z MAT na png używając ImageMagick w wierszu poleceń.
W MAT
dla powiÄ…zanego obiektu Bitmap
Kliknij prawym przyciskiem myszy pole mBuffer
i wybierz "Kopiuj" -> "Zapisz wartość do pliku", nazwij Plik z rozszerzeniem .rgba
.
Należy zwrócić uwagę na szerokość i wysokość bitmapy z pól mWidth
i mHeight
, które można zobaczyć w obiekcie Bitmap.
Mając zainstalowane narzędzia wiersza poleceń ImageMagick
(Dla Ubuntu apt-get install imagemagick
), wydajesz convert
polecenie z następującym parametry.
convert -size 'width'x'height' -depth 8 filename.rgba filename.png
Na przykład
convert -size 680x1209 -depth 8 phone_decor.rgba phone_decor.png
Wygenerowany plik png możesz sprawdzić za pomocą eog , podobnie jak eog phone_decor.rgba
na Ubuntu
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-09-09 07:08:04