Использование памяти приложения различается между устройствами

Я запускаю свое приложение на двух разных устройствах и проверяю на вкладке Android Studio Memroy выделенную память приложения. Когда приложение работает на устройстве Samsung, выделенная память составляет около 60 МБ. Когда приложение работает на устройстве Motorola, выделенная память составляет около 40 МБ.

Что вызывает эту разницу в распределении памяти?

Устройства: Samsung Galaxy S4 с версией Android 5.0.1

Motorola Moto G2 с версией Android 5.0.2


person Fivos    schedule 26.10.2015    source источник
comment
Разрешение на каждом устройстве для начала отличается (S4 = xxhdpi, Moto G2 xhdpi), что означает, что все drawables/mipmaps будут иметь разные версии разрешения из ваших папок с ресурсами, поэтому загруженные изображения будут занимать больше памяти — попробуйте запустить тест с одинаковой плотностью экрана. телефоны.   -  person Mark Keen    schedule 26.10.2015
comment
Это может дать вам подсказку developer.android.com/training/displaying-bitmaps /   -  person VVB    schedule 26.10.2015


Ответы (1)


У Samsung есть дополнительный слой библиотек для своего пользовательского интерфейса на Android, что в конечном итоге приведет к тому, что приложение будет потреблять больше памяти.

Устройства Moto имеют стоковый/родной Android.

Ваши переменные и объекты занимают x памяти на обоих устройствах, но ваши элементы пользовательского интерфейса занимают больше памяти в Samsung по сравнению с устройством moto.

Пример: если стандартный Android использует класс Button, Samsung расширит класс Button, чтобы создать класс SamsungButton, который будет иметь дополнительные функции (например, звук капли воды при нажатии).

person Karan    schedule 26.10.2015
comment
В моем случае на Nexus 5 с последним обновлением (6.0.1) мое приложение потребляет 50 МБ, а на Sony Xperia Z5 Compact, также работающем с 6.0.1, оно потребляет 25 МБ. В чем причина в моем случае? - person JustADev; 29.12.2016
comment
возможно, вы используете разные функции приложения. это также связано с тем, что вы делаете в приложении. например, простая операция ввода-вывода может быть менее интенсивной для памяти, но сортировка огромных структур потребует больше памяти. Вы уверены, что использование приложений на устройствах было одинаковым? - person Karan; 29.12.2016
comment
Да, они были такими же, я только что запустил основную активность и подождал, пока все загрузится, и приложение перейдет в состояние ожидания, когда ничего не выполнялось, вот где использование памяти пришло к значениям, которые я дал ранее - person JustADev; 29.12.2016
comment
Может быть потому, что у z5 compact низкий ppi. 720 x 1280 пикселей (плотность пикселей ~ 323 ppi). Nexus 5 лучше отображает 1080 пикселей на 1920 пикселей при плотности пикселей 445 пикселей на дюйм. ваши растровые изображения потребляют больше памяти в nexus 5. Бьюсь об заклад, ваша загрузка и домашний экран имеют изображения hd - person Karan; 02.01.2017
comment
вы также можете использовать инструмент анализатора памяти для лучшего понимания - person Karan; 02.01.2017
comment
Вы правы, на моем домашнем экране есть изображения. Возможно, это то, что вызывает большее использование памяти. Вы рекомендуете какие-либо инструменты для анализа памяти? Кроме встроенных в Android Studio? - person JustADev; 02.01.2017
comment
Я использую Eclipse MAT. вы также можете уменьшить масштаб растровых изображений и кэшировать / перерабатывать их для повышения производительности. - person Karan; 02.01.2017