Не видя вашего фактического кода, я не могу сказать, будет ли для вас актуальным следующее или нет. Тем не менее, стоит попробовать.
Если вы этого еще не сделали, вы можете рассмотреть возможность использования чего-то, называемого LruCache. http://developer.android.com/reference/android/util/LruCache.html
Используя этот инструмент, вы можете определить, в какой момент ваши кэшированные объекты (такие как растровые изображения) станут пригодными для сбора мусора. Итак, если вы хотите установить его на 4 Мб (например), ОС справится с этим, если попытается выйти за его пределы. (Смотрите документацию для деталей реализации и хорошего примера).
Единственным недостатком является то, что этот маленький драгоценный камень пришел только вместе с 3.2, поэтому вам нужно будет сделать его минимальным SDK в AndroidManifest или выполнить программную проверку во время выполнения для уровня API, чтобы определить, можете ли вы его использовать. , До 3.2 Я бы сказал, что вам нужно вызывать recycle () для всех используемых вами растровых изображений, но если вы уже оптимизировали, я думаю, что есть хорошие шансы, что вы уже делаете это.
Это хороший маленький фрагмент о разнице между кучей и родной памятью. http://code -gotcha.blogspot.com / 2011/09 / android-bitmap-heap.html Это может (в зависимости от того, что вы делаете) помочь вам понять, почему вы не видите падения памяти вы ожидаете.
И, наконец, этот пост от SO также должен помочь при работе с размером кучи:
Определение размера кучи приложения в Android
Надеюсь, это поможет.