Легкий: Запишите стог сена! Позже, только игла останется. Кроме того, Вы могли попробовать магниты.
А более трудный вопрос: Как Вы находите одну конкретную иглу в пуле игл?
Ответ: распараллельте каждого и присоедините другой конец каждой скрутки потока к отсортированному индексу (т.е. указатели)
Похоже, вы создаете новый экземпляр каждого растрового изображения для каждой визуализированной плитки. Может, вместо этого вы могли бы создать по одному экземпляру для каждого типа плитки? Пример:
private Bitmap wallTile = BitmapFactory.decodeResource(getResources(), R.drawable.walla);
private Bitmap floorTile = BitmapFactory.decodeResource(getResources(), R.drawable.floore);
Затем повторно используйте один и тот же экземпляр плитки каждый раз, когда она отрисовывается. Если это не сработает, вам следует провести какое-то измерение производительности, чтобы увидеть, какая часть кода занимает больше всего времени, и минимизировать количество запусков этого кода или попытаться сократить его.
Отказ от ответственности: я не программист Android
Проблема довольно очевидна. Вы просто теряете адскую память. Загляните в LogCat, и вы поймете, что я имею в виду. 1. НИКОГДА не выделяйте строки в каждом кадре. Они неизменяемы, поэтому каждая операция со строками равносильна утечке памяти. Вместо этого используйте простой объект char [], который вы изменяете. 2. Прекратите создавать растровые объекты снова и снова. Я предполагаю, что метод DecodeBitmap внутренне выделяет объект растрового изображения для каждого вызова. Плохо делать это каждый кадр.
Как показывает опыт -> утечка памяти и, кстати, сборщик мусора - очень дорогостоящие операции, которых следует избегать при рисовании.
Я никогда раньше не программировал для Android, поэтому я не на 100% уверен в том, что там происходит под крышками, но предполагаю, что:
BitmapFactory.decodeResource(getResources(), R.drawable.walla);
этот фрагмент кода идет и загружается переносит растровое изображение в память, может показаться, что вы перезагружаете каждое растровое изображение по мере его рисования.
То, что я делал в прошлом при разработке небольших игр, - это когда вы загружаете уровень, прорабатываете все необходимые ресурсы, затем загрузите их в память один раз, а затем повторно используйте.