This is a git repository containing the sources for the Android NDK.

It includes the following items:
  • NDK build system and scripts (ndk-build, ndk-gdb, etc...)
  • Toolchain support files (under toolchains/<name>/config.mk and toolchains/<name>/setup.mk).
  • Unit tests under tests/
  • Documentation under docs/
  • Helper libraries (e.g. cpu-features) under sources/android/
  • C++ STL implementation files, under sources/cxx-stl/
  • Various scripts used to develop the NDK itself, under build/tools/
Another git repository, i.e. development.git contains the following files under its 'ndk' sub-directory:
  • Platform-specific headers
  • Platform and architecture specific libraries
  • Platform-specific samples
We use separate git repositories because, while ndk.git is now completely developed in the open (i.e. all changes are publicly uploaded to r.android.com), system headers and libraries for upcoming platform releases are developed internally until they are officially released to the AOSP git servers.

Note that these repositories do not contain host binaries (e..g the toolchain compiler). Those are always built from the sources (also available at android.git.kernel.org/toolchain/).

Getting the NDK sources:

If you have download the whole Android platform sources through the following instructions, the sources are simply under the following directory:

  • ndk/
  • development/ndk/
If you don't want to download the whole platform sources, follow the instructions at $NDK/docs/DEVELOPMENT.html to do that with "git clone".

Follow other instructions in DEVELOPMENT.html to build prebuilt toolchain binaries for your host platform and test your changes in your workspace.

Contributing NDK changes:

If you have download the whole Android platform sources through the following instructions, then you can simply contribute changes with "repo upload" as described by the documentation.

If you want to contribute changes without downloading the whole platform sources, you will need to fo the following:

  • Download the sources with "git clone" as described in DEVELOPMENT.html
  • Create your change and commit it locally in your working ndk/ directory
  • Submit your change for review using "git push" on r.android.com, the correct command is:
git push ssh://<username>@r.android.com:29418/platform/ndk.git HEAD:refs/for/master

Where <username> is the gerrit username that you registered on r.android.com.

In both cases, uploading a new change will print the web address of a new page on r.android.com corresponding to your upload. You can use it to add reviewers, verify and comment on your change here directly.