Android Native Development Kit (NDK)
The NDK allows Android application developers to include native code in their
Android application packages, compiled as JNI shared libraries.
For what we're working on, see the
milestones.
For further into the future, see the
NDK Roadmap.
The source for the NDK is maintained in AOSP. See
https://android.googlesource.com/platform/ndk/+/master/README.md.
RFC
This section lists any in-progress features with open discussion bugs. We're
still working on these and want to hear from you, so please read the thread and
join the discussion if you have anything to add!
NDK documentation
Tutorial and API reference documentation is available on the
Android Developer website:
- The NDK Guides help you get
started with the NDK.
- Information about building
or
debugging and profiling.
- Tutorial information for
High-Performance Audio,
Vulkan, and
Neural Networks.
- The NDK API Reference covers
all Android-specific APIs.
C library ("bionic") and dynamic linker documentation
The documentation for Android's C library ("bionic") may be useful:
- Android bionic status
talks about what APIs are available in what releases, and behaviors that have
changed between API levels.
- Android changes for NDK developers
details important dynamic linker changes in various Android releases.
Invaluable if you're having trouble loading your .so files.
- 32-bit ABI bugs
documents issues for 32-bit code.
Understanding crashes/tombstones
The documentation for Android OS developers has:
- An overview of
crash dumps/tombstones.
- A detailed reference to understanding
common crashes.
Other resources
- Discussions related to the Android NDK happen on the
android-ndk Google Group.
- File bugs against the NDK at https://github.com/android-ndk/ndk/issues.
- See our
calendar for upcoming releases.
- The NDK and Android Studio support ndk-build and CMake out of the box, but we
also have a
Build System Maintainers Guide.
- If you want to work on the NDK itself rather than just use it, see the
README.md in the NDK source.