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