В моей консоли столько ошибок, как это:
I / zygote64: фоновое параллельное копирование GC освободил 661970 (20MB) объектов AllocSpace, 0 (0B) объектов LOS, 57% свободных,8 МБ / 20 МБ, приостановлено 855 всего 101,178 мс
Это не ошибка, это просто дает вам информацию о выделении / освобождении новой памяти для вашего приложения.Это происходит при выделении большого объема памяти или когда память освобождается, потому что на нее больше нет ссылок.
Когда это сообщение появляется часто, это может указывать на плохую обработку памяти в вашем приложении.
Через некоторое время произойдет сбой с ошибкой OOM.
Это означает, что ваше приложение вышло из памяти.Это происходит, когда вы пытаетесь выделить память, которая недоступна на вашем устройстве (или не предоставлена JVM).
Что вы должны сделать сейчас, это выяснить, где выделен этот большой объем памяти и есть лидругие варианты, чтобы уменьшить использование памяти.Вот несколько простых подходов:
- использовать глобальные (статические) переменные только в случае необходимости
- свободных ресурсов, как только они вам больше не нужны (например, перезаписывать растровые изображения)
- Проверьте свой код, если вы можете оптимизировать его, чтобы использовать меньше ресурсов.Иногда случается, что, например, одни и те же данные находятся в двух разных массивах.
- , если все это не помогает, вы можете попытаться увеличить размер кучи, установив
android:largeHeap="true"
в AndroidManifest.Но это следует рассматривать только как последний шаг.Помните, что различные устройства и версии для Android предоставляют разное количество памяти вашему приложению.