Android Native Development Kit (NDK) предоставляет инструмент кросс-компиляции для компиляции кода, написанного на C / C++ , который может быть скомпилирован в ARM или собственный код x86 (или их 64-битные варианты ) для Android . [3] [4] NDK использует компилятор Clang для компиляции C/C++. GCC был включен до NDK версии 17, но удален в версии 18 в 2018 году.
Собственные библиотеки можно вызывать из кода Java , работающего под управлением среды выполнения Android , с помощью System.loadLibrary
, которые являются частью стандартных классов Android Java. [5] [6]
Инструменты командной строки можно скомпилировать с помощью NDK и установить с помощью adb. [7]
Android использует Bionic в качестве библиотеки C и LLVM libc++ в качестве стандартной библиотеки C++ . NDK также включает в себя множество других API: [8] сжатие zlib , графику OpenGL ES или Vulkan , аудио OpenSL ES и различные API-интерфейсы, специфичные для Android, для таких вещей, как ведение журналов, доступ к камерам или ускорение нейронных сетей .
NDK включает поддержку CMake и его собственного ndk-build
(на основе GNU Make ). Android Studio поддерживает запуск любого из них из Gradle . Другие сторонние инструменты позволяют интегрировать NDK в Eclipse [9] и Visual Studio . [10]
Для профилирования ЦП в состав NDK также входит simpleperf [11] , который похож на инструмент perf для Linux, но с лучшей поддержкой Android и, в частности, для смешанных стеков Java/C++.
{{cite book}}
: CS1 maint: отсутствует местоположение издателя ( ссылка ){{cite book}}
: CS1 maint: отсутствует местоположение издателя ( ссылка )