Samsung Galaxy S6 с Android 6.0.0 и 6.0.1
Мое приложение работает нормально, анализ кода не показывает никаких утечек памяти. SmartManager показывает, что приложение использует ~ 40 МБ памяти. Я убиваю приложение (используя обзор "текущие приложения" --- не уверен, как это вызвано на английском языке, извините. Ключ в нижней левой части телефона, в котором показан список миниатюр всех запущенных приложений...), затем запустите его снова.
Теперь SmartManager больше не показывает ~ 40 МБ памяти для моего приложения, но... больше. 50. 100. 400. Оно меняется, но растет каждый раз. Через некоторое время мое приложение аварийно завершает с помощью OutOfMemoryException
. Иногда даже с "нехваткой памяти при попытке выбросить OutOfMemoryException"...
Мне нужно деинсталлировать и переустановить приложение, чтобы reset его потребление памяти. Тот же APK ведет себя правильно на всех других телефонах, которые я тестировал (например, S5 с Android 5.0). Не знаю, что вызывает это. Не знаю, что может вызвать это! Любая помощь/подсказки/предложения...?
Изменить: То же поведение на S5 с Android 6.0.1, но не на S5 с Android 5.0!
Edit2: Спасибо, всем, кто внес свой вклад. У меня все еще нет ответа, что я доволен, но было упомянуто несколько идей, которые я буду изучать. Большинство людей сосредоточилось на проблеме MemLeak, и хотя это звучит разумно, я хотел бы подчеркнуть, что на Android 4 или 5 нет утечки, только 6. (мне еще предстоит проверить 7.) Кроме того, утечка возникает только когда я принудительно убиваю приложение (что мне нужно делать порой, чтобы проверить правильное выключение и повторное начало поведения), и только без прикрепленного отладчика (что делает тестирование/отладку этого поведения болью на обратной стороне).
Приложение запускает одну службу как связанную службу. Связанный с контекстом приложения --- который согласно документам должен очищаться, когда приложение останавливается. К несчастью, время для этой щедрости заканчивается. До сих пор вышеупомянутая услуга, по-видимому, является наиболее вероятным источником моей проблемы. Таким образом, я награду Qamar щедростью, поскольку он первым упомянул об этом как в комментариях, так и в своем ответе. Остальная часть вас, большая СПАСИБО и голосуйте.