2016-08-06 3 views
0

У меня проблемы с памятью с моим приложением для Android, при запуске он уже выделил 50+ МБ в зависимости от случая в соответствии с инструментом отслеживания памяти Android Studio.Проблемы с памятью с изображениями приложений Android

Инструмент отслеживания сообщает, что огромная часть этого обусловлена ​​моим фоновым изображением и моими 5 ImageButtons.

Я не могу понять, почему, хотя, так как мои изображения:

фона: 184 кб и становится 40 MB

imageButtons: 10kb каждый (5 из них), и они становятся 7MB и 3MB

Как они могут занимать столько МБ, если они изначально настолько малы? И как это улучшить?

И это (прилагается), что я вижу в инструменте отслеживания

Фоновое изображение background image

5 ImageButtons 5 image buttons

Это, как я загружая фоновое изображение, например:

<ImageView 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent" 
    android:id="@+id/backgroundImage" 
    android:scaleType="centerCrop" 
    /> 
+0

Что вы хотите сказать? –

+0

@ Code-Apprentice достаточно честный, обновленный – fersarr

ответ

0

Вы можете оценить, сколько памяти занимает несжатое изображение, умножив ширину изображения по высоте на 3 (для RGB) или на 4 (для RGB с альфа-каналом)

В моем приложении я использовал компиляцию OpenGL ETC1 для фона.

ширина х высота | размер в байтах

1024x1024 | 524388

2048x2048 | 2097252

Я думаю, что это самый эффективный способ хранения больших изображений в памяти устройства и быстрого их рисования. Я также не видел устройства Android, которые не поддерживают сжатие ETC 1.

Это не простой способ, но наиболее эффективный.

Так что сначала попробуйте уменьшить размер и глубину цвета ваших изображений :)

Смежные вопросы