MAT (Éclipse de la Mémoire de l'Analyseur) - comment faire pour afficher des bitmaps de vidage de mémoire
-
13-12-2019 - |
Question
Je suis d'analyser l'utilisation de la mémoire de mon application Android avec l'aide de Eclipse De La Mémoire De L'Analyseur (aussi connu comme MAT).Parfois, je peux trouver d'étranges cas de android.graphics.Bitmap
de la classe, en utilisant la plus grande partie de tas.Le problème est que je ne peux pas trouver la source de cette bitmaps, pas de nom de fichier, pas resourceID, rien.Toutes les informations que je peux trouver de bitmap est la suivante:
Il y a un champ mBuffer
avec le tableau de pixels de l'image, je suppose.Mais c'est dans l'interne Android format PNG.
Question:comment puis-je afficher une image représentée par cette image de vidage de la mémoire?
La solution
J'ai trouvé un moyen d'afficher ces images bitmap:
- Tout d'abord, vous devez télécharger et installer GIMP
- Ensuite, trouver votre
Bitmap
objet de la MAT, cliquez-droit surmBuffer
champ, dans le menu qui apparait, choisissez "Copier" -> "Enregistrer La Valeur Dans Le Fichier" élément de menu et enregistrer la valeur de ce tableau à un fichier - donner de l'extension
.data
à ce fichier - lancement de GIMP, choisissez "Fichier" -> "Ouvrir", sélectionnez votre
.data
fichier et cliquez sur Ouvert bouton - "Charger une Image à partir des Données Brutes" boîte de dialogue apparaîtra.Ici, vous devez définir les paramètres corrects pour votre bitmap
- tout d'abord, choisissez "Type d'Image" comme "RVB Alpha" (la plupart des Android des ressources ont ce type d'image, mais vous pouvez avoir besoin d'expérimenter avec d'autres types d'images)
- deuxièmement, ensemble correct Largeur et Hauteur pour votre bitmap (dimensions correctes peuvent être trouvés dans le vidage de la mémoire)
À ce stade, vous devriez déjà observer l'aperçu de l'image d'origine.Si vous n'avez pas, vous pouvez essayer de modifier certains autres paramètres "Charger une Image à partir des Données Brutes" la boîte de dialogue.
NOTE:pour obtenir une largeur et hauteur de l'image, vous pouvez la regarder mWidth
et mHeight
les champs dans le TAPIS dans la section attributs, comme indiqué dans l'image en question.
Autres conseils
Vous pouvez convertir les vidages de mémoire à partir de TAPIS de png à l'aide avec ImageMagick sur la ligne de commande.
Dans MAT
pour les Bitmap
cliquez-droit sur l'objet mBuffer
champ et sélectionnez "Copier" -> "Enregistrer la Valeur dans le Fichier", nommez le fichier avec une .rgba
l'extension.
Vous avez besoin de noter bitmap largeur et la hauteur de mWidth
et mHeight
champs, et dont vous pouvez voir dans l'objet Bitmap.
Avoir ImageMagick
outils de ligne de commande installé (pour Ubuntu apt-get install imagemagick
), vous convert
commande avec les paramètres suivants.
convert -size 'width'x'height' -depth 8 filename.rgba filename.png
Par exemple
convert -size 680x1209 -depth 8 phone_decor.rgba phone_decor.png
Vous pouvez le vérifier généré fichier png via eog, comme eog phone_decor.rgba
sur Ubuntu
facilement.