Начните работу с NDK

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, вам необходимо выполнить следующий основной процесс:

  1. Создайте новые исходные файлы и добавьте их в свой проект Android Studio.
    • Вы можете пропустить этот шаг, если у вас уже есть собственный код или вы хотите импортировать предварительно созданную собственную библиотеку.
  2. Создайте сценарий сборки CMake, чтобы сообщить CMake, как собрать собственные исходные коды в библиотеку. Вам также понадобится этот сценарий сборки, если вы импортируете и связываете готовые библиотеки или библиотеки платформы.
    • Вы можете пропустить этот шаг, если ваша существующая собственная библиотека уже имеет сценарий сборки CMakeLists.txt или использует ndk-build и включает сценарий сборки Android.mk .
  3. Свяжите Gradle с вашей собственной библиотекой, указав путь к файлу сценария CMake или ndk-build. Gradle использует сценарий сборки для импорта исходного кода в проект Android Studio и упаковки вашей собственной библиотеки (файл SO) в APK.

    Примечание. Если в вашем существующем проекте используется устаревший инструмент ndkCompile , вам следует открыть файл build.properties и удалить следующую строку кода, прежде чем настраивать Gradle для использования CMake или ndk-build:

    // Remove this line
    android.useDeprecatedNdk = true
    
  4. Создайте и запустите свое приложение, нажав « Выполнить». запустить, затем запустить приложение из главного меню . Gradle добавляет ваш процесс CMake или ndk-build в качестве зависимости для компиляции, сборки и упаковки вашей собственной библиотеки с вашим APK.

После запуска вашего приложения на физическом устройстве или в эмуляторе вы можете использовать Android Studio для отладки вашего приложения . В противном случае, чтобы узнать больше о NDK и его компонентах, прочтите страницу «Концепции» .