Developer(s) | |
---|---|
Initial release | June 2009[1] |
Stable release | r26c
[2]
/ 12 February 2024 |
Repository | |
Written in | C and C++ |
Operating system |
|
Platform | IA-32 (Windows only) or x86-64 (Windows, [3] macOS and Linux) |
Available in | English |
Type | SDK |
Website |
developer |
The Android Native Development Kit (NDK) provides a cross-compiling tool for compiling code written in C/ C++ can be compiled to ARM, or x86 native code (or their 64-bit variants) for Android. [4] [5] The NDK uses the Clang compiler to compile C/C++. GCC was included until NDK r17, but removed in r18 in 2018.
Native libraries can be called from
Java code running under the
Android Runtime using System.loadLibrary
, part of the standard Android Java classes.
[6]
[7]
Command-line tools can be compiled with the NDK and installed using adb. [8]
Android uses Bionic as its C library, and the LLVM libc++ as its C++ Standard Library. The NDK also includes a variety of other APIs: [9] zlib compression, OpenGL ES or Vulkan graphics, OpenSL ES audio, and various Android-specific APIs for things like logging, access to cameras, or accelerating neural networks.
The NDK includes support for
CMake and its own ndk-build
(based on
GNU Make).
Android Studio supports running either of these from
Gradle. Other third-party tools allow integrating the NDK into
Eclipse
[10] and
Visual Studio.
[11]
For CPU profiling, the NDK also includes simpleperf [12] which is similar to the Linux perf tool, but with better support for Android and specifically for mixed Java/C++ stacks.
{{
cite book}}
: CS1 maint: location missing publisher (
link)
{{
cite book}}
: CS1 maint: location missing publisher (
link)