J'ai besoin de vérifier mon application pour les fuites de mémoire, j'ai également besoin de voir l'allocation de mémoire de mon application. J'ai téléchargé et installé l'analyseur de mémoire Eclipse, et il semble que la première étape consiste à ouvrir un vidage de tas. Mais qu'est-ce qu'un vidage de tas, comment puis-je créer un vidage de tas. Et comment vais-je utiliser ce logiciel exactement, j'ai fait quelques recherches sur Google mais je n'ai trouvé aucune information utile grâce
Lorsque vous déboguez votre application, ouvrez DDMS dans Eclipse. Dans la barre d'outils, il y a un bouton de vidage de tas que vous pouvez utiliser pour générer un vidage de tas à afficher dans l'analyseur de mémoire Eclipse. Cela n'est pris en charge que je pense avec le SDK 1.6+ ou 2.0+.
Le vidage de tas du dalvik VM doit être converti au format hprof normal à l'aide de l'outil de conversion hprof-conv.exe dans le répertoire tools du SDK Android Vous pouvez ouvrir ce hprof avec Eclipse MAT ou d'autres outils sont: YourKit http://www.yourkit.com/ et JProbe http://www.quest.com/jprobe/
En plus de DDMS, vous pouvez également créer le hprof à partir de votre application/code (uniquement les SDK les plus récents) via Debug.dumpHprofData(...)
Notez que dans DDMS, vous pouvez voir le tas que votre application utilise. Il ne montre pas le tas natif que les ressources externes telles que les bitmaps allouent. Néanmoins, ces ressources doivent également être prises en compte lors de la vérification des fuites de mémoire. Lorsque le segment natif et le segment d'application totalisent jusqu'à 16 Mo/resp. 24 Mo, vous obtiendrez une erreur MOO.
Vous pouvez voir le tas natif qui a été utilisé (c'est-à-dire par des bitmaps dans votre application) via Debug.getNativHeapAllocatedSize()
.
Voir également http://developer.Android.com/guide/developing/debugging/ddms.html#profiling
Si cela vous aide, vous pouvez activer le profilage sur des zones de code locales à l'aide de l'API de débogage. De cette façon, vous avez moins de verbosité lors de l'analyse des traces dans par exemple traceview. Voir http://macgyverdev.blogspot.com/2011/07/profiling-Android-application-tutorial.html pour des exemples.
Et quelques informations plus détaillées sur la façon de convertir les vidages de tas DDMS afin que vous puissiez les visualiser dans Eclipse Memory Analyzer et trouver vos objets qui fuient via l'outillage de l'arborescence des dominateurs: http://macgyverdev.blogspot.com/2011/11/ Android-track-down-memory-leaks.html