Я работаю над проектом, связанным с деятельностью карты. Я запускал тестовое приложение, состоящее из одного действия MaptestActivity, которое расширяет MapActivity и ничего не делает. Я повернул устройство более десяти раз, и я проанализировал кучу кучи с помощью MAT. Я заметил, что существует два экземпляра основной активности (утечка?). Я повторно протестировал приложение с тем же действием, что и только Activity: дамп показал только один экземпляр, хранящийся в системе, текущий. Я прилагаю скриншоты обоих случаев. Я не очень люблю MAT, может быть, я просто неправильно понимаю результаты, и все работает нормально. Не могли бы вы пролить свет на него?android GoogleMaps утечки памяти (?)
ответ
добавить строку ниже в течение вашей деятельности в вашей manifeast файле
андроида: configChanges = "keyboardHidden | ориентация"
Правда, это предотвратит воссоздание активности. Звучит как обход. – Matthew
Если у вас есть два вида деятельности в память после вращения устройства, то у вас есть утечка памяти. Вы можете использовать MAT, чтобы узнать, что мешает этой активности быть собранным с помощью гистограммы. Найдите имя класса, чтобы найти его. Затем щелкните по нему правой кнопкой мыши и выберите объекты списка/с входящими ссылками. Это будет отображать каждое вхождение этого объекта в память. Щелкните правой кнопкой мыши по одному из этих объектов и выберите «Путь к корням GC»/исключите слабые ссылки. Теперь вы должны иметь возможность видеть иерархию объектов, из которых что-то не очищается полностью после завершения операции onDestroy. Такие вещи, как жесткие ссылки на статический контекст, вызовут это. Чтобы решить некоторые из наших проблем с памятью, нам нужно было делать такие вещи, как, например, использовать weakReferences и чистить вещи в onDestroy (например, устанавливать прослушиватели в null).
Обычно, если ваши действия не удерживаются на больших объектах, таких как растровые изображения, вы можете «уйти» с утечками памяти, поскольку это будет означать много использования приложения, прежде чем вы превысите размер кучи приложения. Но если говорить, что все ваши действия держатся на большом растровом изображении, то утечка активности становится гораздо более важной.
Это хорошее видео: Memory Management for Android Apps И хорошая статья: Avoiding Memory Leaks
Спасибо Скотту. Вот что я сделал. Ниже приведен снимок экрана о том, что держит homeActivity: [link] (http://postimage.org/image/7vauzrru9/). Кажется, что объект google maps сохраняет ссылку на него. Как я уже говорил, homeActivity расширяет MapActivity и ничего не делает (это не событие загрузки карты). – Matthew
Посмотрите, можете ли вы вызвать что-то, чтобы очистить объект, находящийся в onDestroy. Если ни один из методов недоступен, и нет общедоступной переменной, вы не можете установить значение null, которое очистит ее, вы можете использовать отражение для доступа к частной переменной, о которой идет речь, чтобы ее исключить. Похоже, это известная проблема: http://stackoverflow.com/questions/5460650/android-mapview-always-causes-an-outofmemoryerror-in-nested-elements – Scott
Постараюсь, спасибо. – Matthew
- 1. Исключение утечки памяти Android
- 2. обнаружение утечки памяти Android
- 3. Устранение утечки памяти в Android
- 4. утечки памяти в обработчике Android
- 5. Устранение утечки памяти в android
- 6. Android отладка C утечки памяти
- 7. Предотвращение утечки памяти в Android
- 8. listview viewHolder утечки памяти android
- 9. Устранение утечки памяти Xamarin.Forms
- 10. TextureAttribute.createDiffuse утечки памяти?
- 11. Возможность необработанной утечки памяти
- 12. Как идентифицировать утечки памяти в Android?
- 13. Android, RxJava, MVP и утечки памяти
- 14. Обнаружение утечки памяти в java на Android
- 15. точки утечки памяти в Android не ясны!
- 16. Ошибка утечки памяти в android 2.3
- 17. Как идентифицировать утечки памяти в Android
- 18. Растровые изображения Android в xml-памяти утечки?
- 19. Android - определение утечки памяти в компасе (SensorManager)
- 20. Устранение утечки памяти Android в службе уведомлений
- 21. android 4.0 и выше, Canvas.clipRect(), утечки памяти
- 22. Обновление Android UI без утечки памяти
- 23. Отслеживание утечки памяти/окна в Android?
- 24. Android WeakReference для устранения утечки памяти
- 25. Понимание утечки памяти в приложении для Android
- 26. Идентификация утечки памяти в приложении для Android
- 27. Обработчики и утечки памяти в Android
- 28. Понимание утечки памяти в приложении Android
- 29. Утечки памяти без выделения памяти
- 30. Устранение утечки памяти и памяти
решить проблему? –
Пока нет, я работаю над этим (используя отражение). Я отправлю решение, как только я (надеюсь) найду его! – Matthew
ничего не нашел? – njzk2