КОМПЛЕКТ ДЛЯ Нативні РОЗРОБКИ В ANDROID (ANDROID NDK) в Android додатку

&nbsp

Комплект для нативної розробки в Android (NDK) – це парний інструмент для Android SDK Якщо ви використовуєте NDK для написання нативного коду, то ваші програми, як і в інших випадках, знаходитимуться в архівах АРК і працювати на пристрої всередині віртуальної машини Фундаментальна модель програми Android не змінюється

Налаштування середовища для нативної розробки в Android

Щоб приступити до роботи з NDK, спочатку потрібно встановити і налаштувати SDK Системні вимоги для установки NDK і роботи з ним такі:

Windows ХР (32 біт) або Vista (32 або 64 біт) з середовищем Cygwin версії 17 і вище

Mac OS X 1048 або вище

Linux (32 або 64 біт)

Інструменти, необхідні для розробки, але не входять до складу NDK:

GNU Make 381 або вище

нова версія Awk (GNU Awk або Nawk)

Спочатку потрібно завантажити і встановити NDK (http://developerandroidcom/sdk/ndk/ indexhtml) Установка проста: розпакуйте NDK в будь-який каталог Ми назвемо цей каталог ndk

Після того як NDK буде викачаний і встановлений, ви виявите в підкаталозі ndk / docs досить багато документації Настійно рекомендуємо прочитати її, починаючи з файлу OVERVIEWhtml Крім того, в NDK включені приклади (розташовані в підкаталозі ndk / samples) На прикладах пояснюється більш великий матеріал, тому, попрацювавши деякий час з NDK, ви вивчите і всі ці приклади

Компіляція з NDK

Щоб розробляти нативний код із застосуванням NDK, необхідно зробити наступне

1 Створити в своєму проекті каталог jni

2 Розмістити в каталозі jni нативний вихідний код

3 Створити файл Androidmk (можливо, буде потрібно ще й Applicationmk) в каталозі jni

4 Запустити команду ndk / ndk-build в каталозі jni

Необовязковий файл Applicationmk описує, які нативні модулі будуть потрібні для вашої програми, а також специфічні типи ABI (довічних інтерфейсів додатків), відповідно до яких буде відбуватися компіляція Більш докладно це питання описується в файлі APPLICATION-MK html в документації Ось приклад файлу Applіcation jni:

Файл Androidmk містить опис вашого вихідного коду для системи збірки Це маленький фрагмент GNU Makefile, який проходить спеціальний синтаксичний розбір системою збирання під час компіляції вашого додатки Детальніше цей етап описаний у файлі документації ANDROID-MK html Ось приклад Android mk:

Коли будуть написані файл Androidmk, а також файл Applicationmk і самі нативні файли з вихідним кодом, запустіть ndk / ndk-buiId в каталозі проекту, щоб скомпілювати ваші бібліотеки Якщо складання пройде успішно, то колективні бібліотеки будуть скопійовані в кореневий каталог проекту з вашим додатком і додані до його складання

JNI, NDK і SDK: зразок додатки

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

Активність Sampl eActivityWithNati veMethods використовує наступний макет:

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

Далі йде наш файл Androidmk Зверніть увагу: саме він забезпечує завантаження бібліотеки журналів

Нарешті, ось вихідний код активності Sampl eActi vityWithNati veMethods на мові Java Клас завантажує бібліотеку і оголошує нативний метод whatAmK) При натисканні кнопки викликається метод whatAml О, який повертає Unknown. У результаті цього відображається Toast (спливаюче повідомлення) з рядком CPU: Unknown (процесор: невідомий) Якщо висновок вам здається інформативним, не турбуйтеся: інформацію про процесор ми теж додамо, але в наступному розділі:

Джерело: Android Програмування на Java для нового покоління мобільних пристроїв

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*