Вопрос: Утечка памяти (или что-то еще)
Всем привет! Подскажите, пожалуйста, такой момент.
Есть главная активность, на ней - 1 картинка. При нажатии на картинку - переходим на новую активность, где располагается 2 фрагмента (друг за другом), и в каждом фрагменте - по 12 небольших картинок. Получается, что всего в этой активности на экране - 24 картинки, вес всех этих картинок - 6 МБ.
При добавлении одной из последних картинок, стало вылетать приложение. Вылетает не сразу, а как только нажимаю на картинку для перехода на другую активность с фрагментами. Посмотрел по логам, ошибка -
Failed to allocate a 6948184 byte allocation with 4194304 free bytes and 5MB until OOM
Не хватает памяти для запуска активности с 2-мя фрагментами ( там, где 24 картинки). Все картинки складываю в папку drawable.
Эмулятор - Nexus 6 API 25.
Его настройки такие:
Если в настройках RAM ставлю 2048, то приложение уже не вылетает.
Но не у всех телефонов столько оперативной памяти. Если кто-то поставит приложение на старый телефон, то приложение будет вылетать.
Почему не хватает памяти на небольшие картинки общим весом 6 МБ? А если мне нужно будет разместит большие картинки весом 1-2 МБ.
Во фрагменте использую TableLayout, одна из ячеек выглядит так:
Java |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
| <TableRow
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_vertical">
<ImageView
android:id="@+id/imageView13"
android:onClick="onClick"
android:layout_width="100dp"
android:layout_height="100dp"
android:paddingLeft="20dp"
app:srcCompat="@drawable/example1" />
<TextView
android:id="@+id/textView13"
android:onClick="onClick"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="20sp"
android:text="@string/example1"
android:textSize="20sp"
android:textColor="#ffffff"/>
</TableRow> |
|
Получается, что где-то происходит утечка памяти? Помогите разобраться.
Всем неравнодушным к данной проблеме спасибо!