2013-08-29 2 views
2

Я слышал, что ограничение памяти PER для JNI на Android не ограничено. Тогда как я могу найти ограничение на память в JNI на Android? Я предполагаю, что он будет относительно большим, конечно, все еще в зависимости от того, сколько приложений работает, сколько памяти было использовано в JNI.Каково ограничение памяти для JNI в Android?

Я сделаю некоторую обработку изображения в JNI, и мне не нравится исключение outofmemory. Как я могу избежать этого?

+0

Мне любопытно, откуда вы это слышали. – Geros

+1

Ограничение памяти, вероятно, «как можно меньше». –

+0

@Glenn: «Как работать с ограничением на 24 МБ для Android»: http://blog.javia.org/how-to-work-around-androids-24-mb-memory-limit/ – user1914692

ответ

1

Я не думаю, что вам нужно знать ограничение памяти в JNI. Постарайтесь выделить нужную вам память, если возвращает null, что означает отсутствие доступной памяти. если вы хотите выполнить обработку изображений, вам сначала нужно декодировать изображение. ограничьте размер растрового изображения (ширина, высота), иначе у вас закончится ваша память. Вам лучше кэшировать данные изображения для повторного использования. Не храните много растрового изображения в памяти. Переработайте бесполезное растровое изображение, чтобы увеличить доступную память. Будьте осторожны, чтобы контролировать свою память, вы не встретите исключения из памяти.

+0

Спасибо. Я думаю, что для меня было бы неплохо разработать мой алгоритм обработки изображений. – user1914692

+0

Вы можете предварительно выделить большую память, как пул памяти. затем используйте пул памяти для управления вашим растровым изображением. Если вы можете оценить размер вашей общей памяти, у вас не будет проблем с ограничением памяти. – yushulx

+0

Спасибо. Однажды я подумал об этом: выделите большую память; если он терпит неудачу, выделите немного меньше памяти; если это не удается, ... В конечном счете, найдите доступный объем памяти. Исходя из этого, я разработаю свой алгоритм обработки изображений. Это то, что вы имели в виду? – user1914692