Ситуация такова: У меня есть активность, которая имеет одну панель инструментов, один Tablayout и один View пейджера (что содержит 5 фрагментов)Почему мое приложение android потребляет слишком много памяти?
Внутри первого фрагмента у меня есть макет, который будет содержит один фрагмент по умолчанию, который будет иметь вид Recycler с двумя столбцами. Каждый элемент на нем имеет изображение, загруженное из Интернета (с Glide и сохранение в кеше), и когда пользователь нажимает на держатель (один элемент списка), изменит этот фрагмент по умолчанию на «контейнер макета» на другой, который будет иметь новый просмотр Recycler с изображениями, загруженными из Интернета с использованием Glide. Подобно странице поиска Instagram.
Я думал, что проблема с Glide была проблемой, но я поместил весь код, и когда я запустил приложение на эмуляторе, он потребляет 89 МБ ОЗУ больше o меньше.
EXTRA ИНФОРМАЦИЯ
- Каждый элемент на RView внутри любого фрагмента создается из загрузив JSONArray с помощью Volley, я поставил запрос в очереди MySingleton и определить контекст как getContext() (я должен использовать getActivity(). ApplicationContext() вместо getContext(), когда код из фрагмента?)
(внутри фрагмента, который находится внутри вида пейджера, который находится внутри деятельности)
MySingleton.getInstance(getContext()).addToRequestQueue(req);
Затем он загружает URL-адрес изображения и заряжает его в режиме просмотра с помощью Glide.
if(holder.publication.getPicture() != null){
Glide.with(holder.ctx).load(holder.publication.getPicture()).diskCacheStrategy(DiskCacheStrategy.ALL).centerCrop().into(holder.picture_imgView);
}
Я не использую статические переменные
Кроме того, я удалить все анимации из Ресайклер Просмотр элементов и по-прежнему быть медленным.
Я использую Android монитор и опцию «Jump Java Heap», чтобы увидеть, как она управляет памятью и основной номер на Byte [] (Я не понимаю, с помощью этого инструмента)
Спасибо большое!
UPDATE На моем журнале, я всегда получаю это:
W/ViewRootImpl: Dropping event due to no window focus: KeyEvent { action=ACTION_DOWN, keyCode=KEYCODE_BACK, scanCode=0, metaState=0, flags=0xc8, repeatCount=1, eventTime=18009881, downTime=18009352, deviceId=-1, source=0x101 }
I/Choreographer: Skipped 98 frames! The application may be doing too much work on its main thread.
Я смысл использования ОЗУ совершенно нормальный, учитывая, что вы также загружаете изображения. – Nabin
Иногда значение поднимается до 120 или 130 мб, но я думаю, что, наконец, его разрешу. Похоже, проблема была на растяжках, они были слишком большими. Я продолжу анализ, чтобы дать окончательное решение. –