Главная » Разработка для Android » КОМПЛЕКТ ДЛЯ НАТИВНОЙ РАЗРАБОТКИ В ANDROID (ANDROID NDK) в Android приложении

0

 

Комплект для нативной разработки в Android (NDK) – это парный инструмент для Android SDK. Если вы используете NDK для написания нативного кода, то ваши приложения, как и в других случаях, будут находиться в архивах АРК и работать на устройстве внутри виртуальной машины. Фундаментальная модель приложения Android не изменяется.

Настройка среды для нативной разработки в Android

Чтобы приступить к работе с NDK, сначала нужно установить и настроить SDK. Системные требования для установки NDK и работы с ним таковы:

Windows ХР (32 бит) или Vista (32 или 64 бит) со средой Cygwin версии 1.7 и выше;

Mac OS X 10.4.8 или выше;

Linux (32 или 64 бит).

Инструменты, необходимые для разработки, но не входящие в состав NDK:

GNU Make 3.81 или выше;

новая версия Awk (GNU Awk или Nawk).

Сначала нужно скачать и установить NDK (http://developer.android.com/sdk/ndk/ index.html). Установка проста: распакуйте NDK в любой каталог. Мы назовем этот каталог ndk.

После того как NDK будет скачан и установлен, вы обнаружите в подкаталоге ndk/docs довольно много документации. Настоятельно рекомендуем прочитать ее, начиная с файла OVERVIEW.html. Кроме того, в NDK включены примеры (расположенные в подкаталоге ndk/samples). На примерах объясняется более обширный материал, поэтому, поработав некоторое время с NDK, вы изучите и все эти примеры.

Компиляция с NDK

Чтобы разрабатывать нативный код с применением NDK, необходимо сделать следующее.

1. Создать в своем проекте каталог jni.

2. Разместить в каталоге jni нативный исходный код.

3. Создать файл Android.mk (возможно, потребуется еще и Application.mk) в каталоге jni.

4. Запустить команду ndk/ndk-build в каталоге jni.

Необязательный файл Application.mk описывает, какие нативные модули потребуются для вашего приложения, а также специфические типы ABI (двоичных интерфейсов приложений), в соответствии с которыми будет происходить компиляция. Более подробно этот вопрос описывается в файле APPLICATION-MK. html в документации. Вот пример файла Applіcation. jni:

Файл Android.mk содержит описание вашего исходного кода для системы сборки. Это маленький фрагмент GNU Makefile, который проходит специальный синтаксический разбор системой сборки во время компиляции вашего приложения. Подробнее этот этап описан в файле документации ANDROID-MK. html. Вот пример Android. mk:

Когда будут написаны файл Android.mk, а также файл Application.mk и сами нативные файлы с исходным кодом, запустите ndk/ndk-buiId в каталоге проекта, чтобы скомпилировать ваши библиотеки. Если сборка пройдет успешно, то разделяемые библиотеки будут скопированы в корневой каталог проекта с вашим приложением и добавлены к его сборке.

JNI, NDK и SDK: образец приложения

Чтобы проиллюстрировать, как могут совместно работать SDK и нативный код, мы сделали следующее приложение-образец. Оно описывает активность Sampl eAct ivityWithNati veMethods. Вот фрагмент из файла описания Android:

Активность Sampl eActivityWithNati veMethods использует следующий макет:

В том библиотечном коде на языке С, который мы взяли в качестве примера, есть метод whatAml, который наша активность на Java будет привязывать к кнопке, имеющей ID whatami. Кроме того, мы определим функцию под названием LOGINFO, преобразуемую в вызов_android_log_print. Вот как делается запись в журнале Android:

Далее идет наш файл Android.mk. Обратите внимание: именно он обеспечивает загрузку библиотеки журналов.

Наконец, вот исходный код активности Sampl eActi vityWithNati veMethods на языке Java. Класс загружает библиотеку и объявляет нативный метод whatAmK). При нажатии кнопки вызывается метод whatAml О, возвращающий "Unknown". В результате этого отображается Toast (всплывающее сообщение) со строкой CPU: Unknown (процессор: неизвестен). Если вывод вам кажется информативным, не беспокойтесь: информацию о процессоре мы тоже добавим, но в следующем разделе:

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

По теме:

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