По большей части, вы не можете «создавать объекты достаточно быстро, чтобы ГХ не успевал». Фактически, когда требуется сборщик мусора, все ваше приложение приостанавливается до его завершения, поэтому вы просто не можете опередить его.
Единственным исключением из этого являются битовые карты, которые обрабатываются немного особым образом - они учитываются в куче Java, даже если их распределение не происходит на нем. Это нормально, за исключением того, что память растрового изображения не освобождается до запуска финализатора, а финализаторы do запускаются отдельно от собранного мусора и не блокируют приложение. Поэтому создание набора растровых изображений и простое их отпускание (без вызова метода для явного освобождения памяти растрового изображения) действительно может вызвать исключение нехватки памяти.
Но если вы не выделяете (и не отпускаете) объекты Bitmap, у вас есть другая проблема, возможно, просто ... не хватает памяти для всех ваших выделений. Вы можете использовать шляпный инструмент (и, в меньшей степени, простую информацию о куче Java в DDMS), чтобы увидеть, что вы выделили, используя столько места.