Ограниченная память VM, которую вы упоминаете, также называемая размером кучи VM, которая составляет около 16 МБ, влияет только на память, выделенную в Java.Вы можете выделить больше памяти в собственном коде.На реальных устройствах, как правило, сотни мегабайт оперативной памяти.
Однако, если ваше приложение использует слишком много памяти, оно все равно может быть уничтожено системой.Поэтому, когда вам нужно иметь дело с большой памятью, лучшее решение - использовать отображение файлов памяти с помощью функции Linux mmap ().Это довольно умно и работает как своп.Используя mmap (), вы можете даже отобразить больше памяти, чем фактический физический объем ОЗУ, и ядро будет загружать / выгружать страницы памяти по мере необходимости из базового файла.
Однако я не думаю, что вы можете использоватьmmapped память со стандартными виджетами, такими как ImageView.Кроме того, чтобы добиться плавного переключения изображений и прокрутки в том, что вы объясняете, я считаю, что требуется OpenGL.
Поэтому я бы рекомендовал загружать и декодировать изображения в область памяти mmaped, чтобы эффективно использовать их в качестве текстур OpenGL (есть поток android-ndk с подробностями об этом, см. этот пост и последующие).