В эмуляторе максимальный размер кучи по умолчанию составляет около 13 МБ.
На устройстве это зависит от телефона и версии Android. На моем Motorola Droid максимальный размер кучи составляет около 21-22 МБ, а на моем HTC Desire - около 32 МБ.
Вот почему у вас происходит сбой на эмуляторе, а не на вашем устройстве.
Если вы хотите отслеживать размер кучи вашего приложения, вы можете вызвать аналогичный метод:
protected void displayMemoryUsage(String message) {
int usedKBytes = (int) (Debug.getNativeHeapAllocatedSize() / 1024L);
String usedMegsString = String.format("%s - usedMemory = Memory Used: %d KB", message, usedKBytes);
Log.d(TAG, usedMegsString);
}