недействительными ();

но я обнаружил, что нет жесткого ограничения на объем памяти, который может выделять код NDK, в отличие от сильно ограниченного объема памяти (~ 25 МБ на большинстве устройств), который вы можете выделить на стороне Java.

Я хочу написать приложение для обработки изображений (что-то вроде Photoshop), которое должно хранить сразу несколько больших растровых изображений в памяти, где данные растрового изображения занимают ~ 20 МБ памяти. Выполнение этого в Java делает приложение склонным к нехватке памяти на многих устройствах, которые я пробовал.

Весь мой текущий код использует классы Bitmap и Canvas для манипуляций с изображениями.Может кто-нибудь предложить какой-нибудь способ, который позволит мне выделить большую часть моей памяти на стороне C и при этом использовать Bitmap + Canvas для выполнения операций рисования (с использованием Android 2.1 и выше)?

Например, если мое изображение состоит из 6 растровых слоев, а пользователь рисует на 3-м слое, мне нужно нарисовать растровое изображение капли краски на 3-м слое, а затем обновить экран, чтобы отобразить результат выравнивания всех слоев сверху. друг друга в режиме реального времени. Я рассмотрел что-то вроде выделения 6 моих растровых изображений в C как массивов int и выполнения операции рисования на стороне Java с помощью Canvas, используя копию редактируемого слоя, хранящуюся в объекте Bitmap. Я не уверен, как будет работать стадия выравнивания.

Ответы на вопрос(1)

Ваш ответ на вопрос