This project has been on hold since 2016.
All the data on this site is still available (and will stay available) but not actual anymore.
You might be interested in checking out Dmitry Moskalchuk's portfolio website to learn about his other projects.
请注意!!!您现在看到的是已过期的旧版本CrystaX NDK.
新版本CrystaX NDK 10.3.2已发布, 提供了很多新功能和改进; 请尽量使用最新版本.


This is a distribution of an improved Android NDK (Native Development Kit) from Google. This NDK is a fully working replacement of the Google NDK and can be used everywhere where Google's is intended to be used. The CrystaX NDK provides functionality identical to Google's NDK as well as many fixes and improvements not available in Google's. This project was initially started by Dmitry Moskalchuk (CrystaX) to just add C++ features (such as C++ exceptions, RTTI and STL) to the Google NDK, but many additional needs were discovered, and it turned out that improving the CrystaX NDK step-by-step is in fact the better way to force evolution of native Android development. Many open-source and commercial projects have used the CrystaX NDK for porting and development for Android with minimal effort.

Key features of the CrystaX NDK:

  1. Wide characters.
    Google's NDK doesn't support wide chars properly in C or C++. With the CrystaX NDK, you get full standard compliant wide characters support. You can easily port existing code that uses wide characters/strings/streams or write new code.

  2. The most recent toolchains
    The CrystaX NDK includes the most recent versions of GCC and Clang compilers as well as stables. This allows developers to use new language abilities (such as new C++ 11 features). All compilers are built with high- and low-level optimizations which enables generation of the most efficient code for target hardware.

  3. C++11 support
    Since the CrystaX NDK includes the most recent versions of GCC and Clang, it supports many new C++ 11 features listed on C++0x/C++11 Support in GCC and C++98 and C++11 Support in Clang.
    In addition, the CrystaX NDK offers fully working C++ 11 classes std::thread, std::mutex, std::chrono etc. These classes are not available in the Google NDK because of lack of functionality in Android Bionic libc. We have investigated this problem and fixed it, so in the CrystaX NDK you can just use them and forget about ifdefs.

  4. Objective-C support
    The only languages the Google NDK supports are C and C++. The CrystaX NDK adds support of Objective-C in addition to C and C++. Only the core language is supported as of now; work on Cocoa-like libraries is in progress. To start using Objective-C in your project, just add source files with the extension .m (Objective-C) or .mm (Objective-C++) and specify them in LOCAL_SRC_FILES in

  5. To be continued...
    If you don't see some great feature here, don't hesitate to contact us and ask for it. You can also use our issue/bug tracker to report bugs or feature requests. And, of course, contributions are welcome!


CrystaX NDK包含若干开源许可证. 详见每个模块的版权声明文件.

请注意CrystaX NDK发布包中也包括编译器,链接器,文档等的预编译二进制文件. 工具链的源码在GitHub (你可以使用编译脚本自动下载它).

预编译的GCC和其他二进制文件(GDB, binutils 等等)基于the GNU General Public License (GPL) 或 the GNU Lesser General Public License (LGPL). 详见COPYING和COPYING.LIB,位于 $NDK/toolchains/$tc/prebuilt/$system.

预编译的LLVM/Clang工具链基于 LLVM "BSD" license.

基本上, 授权规则等同于Google's Android NDK - 例如, 允许商业&非商业用途. 唯一区别是CrystaX部分, 基于 BSD 2-clause license.


文件 大小 SHA256校验值 514.186 MB 0505aff64ff8b11...c47dbd1897011a 547.004 MB 29a58b115cb4d89...118b35f235e330
android-ndk-r8-crystax-1-darwin-x86.tar.bz2 552.304 MB c7d270896666222...ab13bfab535fcc
android-ndk-r8-crystax-1-darwin-x86_64.tar.bz2 566.709 MB 1aeadea2dc0b1ac...7b662384e735c2
android-ndk-r8-crystax-1-linux-x86.tar.bz2 523.324 MB 15ea846b05c9d2a...de4d6526566391
android-ndk-r8-crystax-1-linux-x86_64.tar.bz2 532.166 MB 0381508609d43b9...f0ee5a32a81a73


You can also build the distribution from sources if you don't want to use the prebuilt versions for some reason. Follow the instructions below.

Setting up the build environment:

Follow the instructions from the AOSP site except the Java part. Then install the repo tool as described here. Ensure you have repo in your PATH.
WARNING!!! Building the Windows version of CrystaX NDK is only supported on a Linux machine (cross-build used). Building on a Windows host is not tested and not supported.


  • Download the build script and run it:
    wget -O - | /bin/sh
    It will take a long time - up to several hours. When the script is finished, it will print the directory containing the package with the NDK release.
  • You're done! Use this package as a replacement of Google's NDK!


Our contributors: