# Android Native Development Kit (NDK)

The latest version of this document is available at
https://android.googlesource.com/platform/ndk/+/mirror-goog-main-ndk/README.md.

**Note:** This document is for developers _of_ the NDK, not developers that use
the NDK.

The NDK allows Android application developers to include native code in their
Android application packages, compiled as JNI shared libraries.

To navigate this site, use the navigation bar at the top of the page. For
additional documentation, see the listing for the [docs directory]. If you're
not sure where to start, the [Onboarding](docs/Onboarding.md) page will guide
you.

[docs directory]: docs/

[TOC]

## Other Resources

 * User documentation is available on the [Android Developer website].
 * Discussions related to the Android NDK happen on the [android-ndk Google
   Group].
 * Announcements such as releases are posted to the [android-ndk-announce Google
   Group].
 * File bugs against the NDK at https://github.com/android-ndk/ndk/issues.

[Android Developer website]: https://developer.android.com/ndk/index.html
[android-ndk Google Group]: http://groups.google.com/group/android-ndk
[android-ndk-announce Google Group]: http://groups.google.com/group/android-ndk-announce
