2013-02-26 3 views
0

Я хочу улучшить производительность своего приложения, отображая изображения с использованием родной библиотеки Android на языке C. Эта проблема объясняется большим объемом памяти, требуемой изображениями в моем приложении.Показать изображения с помощью собственной библиотеки Android

+1

Я полностью сомневаюсь, что вы что-то улучшите таким образом. Canvas - очень эффективный API. –

+0

Я думаю, что приложение для Android имеет только ограниченный размер для приложения, поэтому мне нужно увеличить размер, который не только ограничен до 25 МБ, либо размер кучи, так что загрузка изображений может не занимать много времени, что может быть уменьшено на родными библиотеками , –

ответ

1

Бьюсь об заклад, вам не нужно это делать. Битовые карты Android уже написаны на C, и в большинстве случаев уже аппаратное ускорение. Было бы неплохо узнать, чего вы собираетесь достичь, и какие усилия вы уже положили.

редактировать:

Итак, если вы думаете о том, много изображений в памяти, вы можете использовать встроенную память. Фокус в том, что вы можете использовать Java-методы для рисования (что удобно) и встроенной памяти для хранения неиспользуемых изображений (которые бывают быстрыми и большими). Вы можете попробовать использовать библиотеку NativeBuffer для такой задачи: http://code.google.com/p/native-buffer/

Использование довольно простое. Вы должны предварительно загрузить все изображения в буфер. Затем, когда вам нужно изображение, вы можете загрузить его из буфера. Вы можете сделать это даже в методе draw(). Это безумно быстро по сравнению с SDK.

Конечно, помните, что NativeBuffer использует выделение C-стиля, и вы можете исчерпать системную память. Он не собирается вызывать OutOFMemoryError, но принудительно останавливает ваше приложение, не спрашивая. NativeLibrary содержит некоторые утилиты для проверки доступной памяти, но вы должны управлять ею самостоятельно.

+0

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

+0

, пожалуйста, отредактируйте свой вопрос (добавьте информацию о большем объеме памяти), чтобы вы могли получить больше ответов и некоторые варианты ответа на ваш вопрос. ура – Zielony

Смежные вопросы