2012-06-16 9 views
23

Rozglądam się po Internecie \ goolge \ stackoverflow i nie mogę znaleźć pełnego i prostego przewodnika, który może wyjaśnić mi, jak mogę znaleźć, jeśli moja aplikacja na Androida ma wyciek pamięci. Czy ktoś może mi wytłumaczyć, jak to zrobić, a może lepiej dać mi dobry poradnik?Jak mogę sprawdzić, czy moja aplikacja dla Androida ma wyciek pamięci?

Moja aplikacja zbierająca dane o baterii i zapisuje ją w telefonie przez DB. Za każdym razem, gdy następuje zmiana baterii (ACTION_BATTERY_CHANGED), sprawdzam, czy zmienił się procent zużycia baterii iw tym przypadku zapisuję niektóre dane.

Ta aplikacja zajmuje (25-30) MB RAM Myślę, że to za dużo jak na tak prostą aplikację. Podejrzewam, że ma wyciek pamięci.

Odpowiedz

23
1

Generalnie jeśli używasz aplikacji i to gromadzenie pamięć

... 12 MB 13,5 MB .. .15 MB ... pomyśl o chmurze gromadzącej wilgotność ... itd.

Jeśli widzisz ten wzór, to znaczy, że Twoja aplikacja ma wyciek pamięci.

Inną możliwością jest to, że nie masz wycieku, ale używasz zbyt wielu obiektów lub zbyt dużych obiektów lub że nie oszczędzasz wystarczająco dobrze obiektów. weź pod uwagę, że mapy bitowe są bardzo drogie, więc obsługa bitmap może nie być tak banalna w Androidzie, które jest środowiskiem ograniczonym przez pamięć i zasoby.

2

Kiedy napotkałem ten sam problem, co Ty, znalazłem LeakCanary. Pomaga wykryć wycieki pamięci podczas wykonywania w kompilacjach debugowania i zapewnia wygodny interfejs użytkownika dla historii stosu.Tutaj możesz przeczytać więcej informacji na temat tego narzędzia do wykrywania wycieków pamięci, a także kilka innych przydatnych wskazówek dotyczących rozwoju Androida: http://cases.azoft.com/4-must-know-tools-for-effective-android-development/. Mam nadzieję, że to działa dla Ciebie i innych programistów mobilnych!

Powiązane problemy