Я только начал использовать Eclipse Memory Analyzer , чтобы попытаться устранить утечку памяти в моей деятельности, которая расширяет MapActivity, но я не уверен, правильно ли я понимаю ее вывод. Чтобы проанализировать утечку, я запустил действие и пару раз повернул экран, а затем взял дамп кучи и открыл его. Первым делом я открыл представление гистограммы и посмотрел на мою активность (называемую ChangeLocationActivity). Это действительно похоже на утечку памяти, поскольку есть три экземпляра одного и того же действия. Итак, я получил список объектов с входящими ссылками, а затем получил «Путь к корням GC», исключающий слабые ссылки для всех трех экземпляров. Этот - это путь первого экземпляра, - это для второго экземпляра (этот пользовательский MyLocationOverlay - действительно простой класс, созданный для обхода ошибки на некоторых устройствах Motorola, и он ничего не делает special, кроме перехвата исключения в drawMyLocation ()) и, наконец, , это для третьего экземпляра, который выглядит как тот, который показан в данный момент.
Как я уже говорил ранее, я не уверен, правильно ли я понимаю эти результаты (Eclipse Memory Analyzer действительно мощный, но довольно сложный), но из того, что я могу сказать, похоже, что причина утечки памяти связана с Google Maps. библиотека. Может кто-нибудь сказать мне, прав ли я или просто не понимаю этих результатов?