Dispositivi mobili

Come rilevare le perdite di memoria android

I vuoti di sicurezza più orribili in Android è perdita di memoria. Essi sono dannosi perché un pezzo di codice potrebbe bloccarsi le applicazioni o può creare problemi. Perdite di memoria possono verificarsi a causa della creazione di memoria nell'heap e non riescono a eliminarlo. È un problema serio per le applicazioni ed è causata da un puntatore che non avere restituito nel ciclo.

Errori di memoria possono essere suddivisi in due tipi, dalla memoria e la perdita di memoria. Memoria insufficiente è che cercando di assegnare più memoria che ha dell'heap dell'applicazione. La perdita è difficile da trovare. È possibile identificare le perdite in app mentre riceve il rapporto di incidente. Inoltre, si blocca applicazione può verificarsi a causa di diversi problemi. Quindi, scoprire la perdita è la parte più difficile lo sviluppo. La perdita si verifica a causa di possesso di un oggetto per un lungo periodo anche dopo aver terminato il suo scopo. Di solito il garbage collector raccoglie tutti gli oggetti inutilizzati o morti, che non dispone di collegamenti a loro. Se i programmi di tengono gli oggetti, il garbage collector non sarà in grado di pulirlo.

Molti strumenti sono disponibili per testare le perdite, eclipse memory analyzer, Mat plugin, strumento traceview di android SDK e Valgrind. Android SDK offre due modi importanti per tracciare l'utilizzo della memoria del tracker app. allocazione e heap dump sono due modi principali. Allocazione tracker è utile per gli sviluppatori scoprire l'utilizzo della memoria dell'applicazione in un dato periodo. Tuttavia, non fornisce lo stato complessivo dell'heap dell'applicazione.

Heap dump sono lo strumento impressionante per l'analisi della cache ed è come l'immagine del mucchio di app. Ogni sviluppatore deve affrontare una sfida nell'analizzare e comprendere l'utilizzo della RAM in app e ottimizzandolo. Dopo il rilascio di oggetti inutilizzati dall'applicazione, l'applicazione può conservare più spazi di archiviazione più richiesti.

Eclipse Memory analyzer (MAT) è il miglior strumento per analizzare l'utilizzo della memoria delle applicazioni. Questo strumento è utile per il rilevamento delle perdite di memoria e se offre l'opportunità di analizzare l'applicazione a intervalli regolari. MAT offre un'istantanea di utilizzo della memoria per un certo periodo. Ricordate, MAT non dà la ragione per la creazione dell'oggetto o non può visualizzare gli oggetti che ha raccolto dal garbage collector. Tuttavia, è possibile scoprire immediatamente la perdita e trovare modi per fermarlo.

DDMS strumento viene utilizzato per rilevare l'allocazione di memoria e questo sarà disponibile nella directory SDK di Android. Questo strumento visualizzerà anche le perdite nell'applicazione per Android. Inoltre, Visualizza le informazioni sugli oggetti, che non sono garbage collection e sull'archiviazione dati occupata dagli oggetti. Se si inserisce un link di riferimento nel contesto, porterà alla perdita di sacco di archiviazione e si è chiamato come perdita di memoria correlata di contesto. Questo può essere evitato in due modi. Prima soluzione per questo è per evitare di rilasciare il contesto di fuori del limite di app. L'utilizzo del contesto dell'applicazione è un'altra soluzione, da questo, il contesto manterrà fintanto che vive l'applicazione.