2010-09-15 3 views
17

I am New to this Android platfrom. In un'applicazione, c'è una perdita di memoria. Ma non sono riuscito a trovare in quale attività o classe si verifichi la perdita di memoria.Come trovare la classe/attività di perdita di memoria in Android

Sto usando MAT per ottenere l'infermeria che la perdita di memoria è lì o no. Ma non è in grado di scoprire quale attività sta perdendo.

Per favore dimmi come trovare l'attività che perde.

Grazie.

+0

Eventuali duplicati: http://stackoverflow.com/questions/2851483/tracing-the-memory-window-leaks-in-android – Praveen

+0

Questo l'articolo ti mostrerà come: http://ttlnews.blogspot.com/2010/01/attacking-memory-problems-on-android.html –

risposta

2

Non riesco a commentare il post precedente, ma è importante rendersi conto che è assolutamente necessario preoccuparsi della gestione della memoria, in particolare sull'ambiente confinato dalle risorse che è la piattaforma mobile Android. Per ulteriori informazioni su questo, controllare qui:

http://android-developers.blogspot.com/2009/01/avoiding-memory-leaks.html

+0

L'evitamento ti può portare solo lontano. A volte è una libreria di terze parti che fa saltare il tuo codice. –

0

si può vedere nel DDMS.

Basta selezionare il nome del pacchetto dell'app e fare clic su Aggiorna archivia il pulsante sopra.

Ora goto scheda Fare clic su Causa GC.

troverai l'elenco degli oggetti utilizzati.

5

Il post migliore che ho trovato ancora sul monitoraggio perdite di memoria sulle piattaforme Android è:

http://ttlnews.blogspot.com/2010/01/attacking-memory-problems-on-android.html

La prima parte è obsoleto perché è ora integrato in Eclipse, ma la maggior parte del post è grande!

+0

L'articolo che hai collegato era l'articolo più utile che ho trovato per rilevare perdite di memoria in Android. Un milione di complimenti. –

33

Anche se questa domanda è tranquilla vecchia. Penso che un piccolo tutorial con le immagini potrebbe essere utile. Quindi, per prima cosa è necessario installare il MAT plugin. Dopo un riavvio cliccare sul dump del file hprof:

Device controls

dopo qualche tempo (circa 30 secondi) si otterrà una finestra di dialogo in cui è possibile fare clic su Fine. Che si ottiene questo punto di vista:

Dump result

C'è un clic sinistro la parte più grande e filtro per con riferimenti in uscita. Quindi si ottiene questo punto di vista qui:

Qui potete vedere che ho perso per eliminare gli elementi della mia ContentManager in cui diversi elementi sono stati conservati nel mio attesaHashMap.

4

Utilizzare LeakCanary - una libreria di rilevamento perdite di memoria per Android e Java. LeakCanary mostrerà automaticamente una notifica quando viene rilevata una perdita di memoria attività nella build di debug. L'installazione di questa libreria è molto semplice.esempio

https://github.com/square/leakcanary

Notifica:

enter image description here