Native Development Kit (NDK) — это набор инструментов, который позволяет использовать код C и C++ с Android и предоставляет библиотеки платформы , которые можно использовать для управления собственными действиями и доступа к физическим компонентам устройства, таким как датчики и сенсорный ввод. NDK может не подойти большинству начинающих программистов Android, которым для разработки своих приложений необходимо использовать только код Java и API-интерфейсы платформы. Однако NDK может быть полезен в случаях, когда вам необходимо выполнить одно или несколько из следующих действий:
- Выжмите из устройства дополнительную производительность, чтобы добиться низкой задержки или запускать ресурсоемкие приложения, такие как игры или физическое моделирование.
- Повторно используйте свои собственные или библиотеки C или C++ других разработчиков.
Используя Android Studio 2.2 и выше , вы можете использовать NDK для компиляции кода C и C++ в собственную библиотеку и упаковать его в APK с помощью Gradle, интегрированной системы сборки IDE. Затем ваш Java-код может вызывать функции в вашей собственной библиотеке через структуру Java Native Interface (JNI) . Чтобы узнать больше о Gradle и системе сборки Android, прочтите «Настройка сборки» .
Инструментом сборки Android Studio по умолчанию для компиляции собственных библиотек является CMake . Android Studio также поддерживает ndk-build из-за большого количества существующих проектов, использующих набор инструментов сборки. Однако если вы создаете новую собственную библиотеку, вам следует использовать CMake.
В этом руководстве представлена информация, необходимая для начала работы с NDK в Android Studio. Если у вас нет последней версии Android Studio, загрузите и установите ее сейчас .
Вниманию экспериментальных пользователей Gradle: рассмотрите возможность перехода на плагин версии 2.2.0 или выше и использования CMake или ndk-build для сборки собственных библиотек, если к вам применимо какое-либо из следующих условий: ваш собственный проект уже использует CMake или ndk-build; вы предпочитаете использовать стабильную версию системы сборки Gradle; или вам нужна поддержка дополнительных инструментов, таких как CCache . В противном случае вы можете продолжать использовать экспериментальную версию Gradle и плагин Android .
Загрузите NDK и инструменты
Для компиляции и отладки машинного кода вашего приложения вам потребуются следующие компоненты:
- Android Native Development Kit (NDK): набор инструментов, позволяющий использовать код C и C++ с Android.
- CMake: внешний инструмент сборки, который работает вместе с Gradle для создания вашей собственной библиотеки. Этот компонент вам не нужен, если вы планируете использовать только ndk-build.
- LLDB : отладчик, который Android Studio использует для отладки собственного кода.
Сведения об установке этих компонентов см. в разделе Установка и настройка NDK и CMake .
Создайте или импортируйте собственный проект
После настройки Android Studio вы можете просто создать новый проект с поддержкой C/C++ . Однако, если вы хотите добавить или импортировать собственный код в существующий проект Android Studio, вам необходимо выполнить следующий основной процесс:
- Создайте новые исходные файлы и добавьте их в свой проект Android Studio.
- Вы можете пропустить этот шаг, если у вас уже есть собственный код или вы хотите импортировать предварительно созданную собственную библиотеку.
- Создайте сценарий сборки CMake, чтобы сообщить CMake, как собрать собственные исходные коды в библиотеку. Вам также понадобится этот сценарий сборки, если вы импортируете и связываете готовые библиотеки или библиотеки платформы.
- Вы можете пропустить этот шаг, если ваша существующая собственная библиотека уже имеет сценарий сборки
CMakeLists.txt
или использует ndk-build и включает сценарий сборкиAndroid.mk
.
- Вы можете пропустить этот шаг, если ваша существующая собственная библиотека уже имеет сценарий сборки
- Свяжите Gradle с вашей собственной библиотекой, указав путь к файлу сценария CMake или ndk-build. Gradle использует сценарий сборки для импорта исходного кода в проект Android Studio и упаковки вашей собственной библиотеки (файл SO) в APK.
Примечание. Если в вашем существующем проекте используется устаревший инструмент
ndkCompile
, вам следует открыть файлbuild.properties
и удалить следующую строку кода, прежде чем настраивать Gradle для использования CMake или ndk-build:// Remove this line android.useDeprecatedNdk = true
- Создайте и запустите свое приложение, нажав « Выполнить». . Gradle добавляет ваш процесс CMake или ndk-build в качестве зависимости для компиляции, сборки и упаковки вашей собственной библиотеки с вашим APK.
После запуска вашего приложения на физическом устройстве или в эмуляторе вы можете использовать Android Studio для отладки вашего приложения . В противном случае, чтобы узнать больше о NDK и его компонентах, прочтите страницу «Концепции» .