У меня тоже была эта проблема; на самом деле нет другого решения, кроме как уменьшить количество / размер растровых изображений, которые вы загрузили за один раз. Некоторые старые устройства Android выделяют кучу только 16 МБ для всего вашего приложения, и растровые изображения сохраняются в памяти без сжатия после загрузки, поэтому не сложно превысить 16 МБ с большими фонами и т. Д. 1.6MB без сжатия.)
В моей игре мне удавалось обойти это, загружая только растровые изображения, которые я собирался использовать на текущем уровне (например, у меня есть один растровый объект для фона, который перезагружается из ресурсов при каждом изменении, а не поддержание нескольких битовых карт в памяти. Я просто поддерживаю int, который отслеживает, какой ресурс я загрузил в настоящее время.)
Ваш спрайт-лист огромен, поэтому я думаю, что вы правы, что вам нужно уменьшить размер анимации. В качестве альтернативы, загрузка из ресурсов довольно быстрая, так что вам, возможно, удастся сделать что-то вроде загрузки полосы анимации для текущего направления персонажа, и заставить его немного остановиться, когда он поворачивается, пока вы заменяете его новой полосой анимации. Это может быть сложно, хотя.
Кроме того, я настоятельно рекомендую протестировать ваше приложение на эмуляторе с кучей виртуальных машин, установленной на 16 МБ, чтобы убедиться, что вы устранили проблему для всех устройств. (По умолчанию эмулятор по умолчанию равен 24 МБ, поэтому его легко пройти без проверки и создать после проверки несколько звездных отзывов.)