Главная » Разработка для Android » НАТИВНЫЕ АКТИВНОСТИ в Android приложении

0

 

В Android 2.3 (API уровня 9) и в версии 5 Android NDK разработчик может писать целые активности и приложения как нативный исходный код, используя класс Nati veActі vi ty для доступа к жизненному циклу приложения Android.

Для использования этого метода на android. арр. Nati veActivity нужно поставить ссылку в файле описания Android. Обратите внимание на атрибут hasCode, имеющийся у ссылки на приложение (application reference). Если в приложении нет кода на языке Java (только Nati veActivity), то этот атрибут должен иметь значение false. Но в нашем случае код на языке Java есть, поэтому данный атрибут будет иметь значение true:

В данном примере мы использовали файл заголовка android_nati veappglue. h, а не native_activity.h. Интерфейс native_activity.h работает на основе обратных вызовов, предосталяемых приложением, которые будут выполняться в основном потоке активности при возникновении определенного события. Это означает, что вызовы не должны блокироваться – и это ограничивающий фактор. Файл android_ nati ve_app_glue. h предоставляет вспомогательную библиотеку, в которой реализуется иная модель управления, позволяющая приложению реализовывать собственную основную функцию в другом главном потоке. Функция должна иметь имя androidjtiainO и вызываться, когда приложение создается и ей передается объект android_app. Таким образом, у нас появляется возможность ставить ссылку на приложение или активность и слушать различные события жизненного цикла.

В следующем простом примере nati veActivity создается активность и происходит слушание событий Mot і on. Экранные координаты хну, в которых происходят события Motion, отправляются в LogCat:

Вот файл Android.mk нашей активности-примера, nati veacti vity. Обратите внимание на то, что он загружает модуль androidjiati ve_app_gl ue и ссылается на него:

Далее идет основная активность Android на языке Java, вызываемая, когда пользователь запускает приложение. При нажатии кнопки запускается созданная нами активность Nati veActi vity:

Если скомпилировать и запустить этот пример, то мы увидим, что при запуске нативной активности экран пуст. Если при этом просмотреть LogCat, в этом окне будут появляться различные записи журнала (особенно если провести пальцем по экрану). Но все это, конечно, не слишком интересно. Чтобы экран выглядел красивее, нам нужно воспользоваться OpenGL ES. В следующем примере мы изменяем цвет экрана.

Вот нативный исходный код с дополнительным материалом из OpenGL ES. При отображении активности экран просто становится ярко-красным:

Источник: Android. Программирование на Java для нового поколения мобильных устройств

По теме:

  • Комментарии