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

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?

Était-ce utile?

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top