Что потребляет большую часть памяти в Sprite, так это ее текстура, а не сам объект, и, как я вижу в исходном тексте cocos2d для Android, они кэшируются (поскольку IO работает медленно) с помощью TextureManager путем сопоставления имен файлов. Поэтому не забывайте освобождать текстуры (в основном крупные) с помощью TextureManager.removeTexture () , если они вам не понадобятся в течение более длительного времени (или повторная загрузка не повредит).
Вам также следует рассмотреть возможность реализации пула объектов для этих спрайтов. Таким образом, вы просто будете повторно использовать неиспользованные экземпляры вместо того, чтобы выбрасывать их, чтобы создать новый в следующий момент.
Если вы не знали, Android SDK поставляется с инструментом под названием трекер выделения (который теперь также интегрирован в ADT) для анализа использования памяти. Возможно, проблема не в том, где вы этого ожидаете.