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

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?

Author: HitOdessit, 2012-10-03

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.

 123
Author: HitOdessit,
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.

 6
Author: auselen,
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