This project has been on hold since 2016
All the data on this site is still available (and will stay available) but not up-to-date anymore
You might like to check Dmitry Moskalchuk's portfolio for his other projects

Native Development Kit for Android

We offer CrystaX NDK - a widely used, open-source product that has been used by numerous commercial and open-source projects for years. Why not use Google's Android NDK? Because CrystaX NDK is better than Google's while remaining compatible. Basically, CrystaX NDK is a drop-in replacement for Google's NDK, allowing developers to use it in the same manner as Google's NDK but offering many added features and improvements.

Following are the main goals of CrystaX NDK:

  • Better standard compatibility
  • Easy porting of existing code to Android
  • New features for Android native development

Look interesting? See in more detail what CrystaX NDK offers to Android developers!


Patch release CrystaX NDK 10.3.2
08/03/2016 08:43 AM

New CrystaX NDK 10.3.2 is ready for download. This is patch release, where we've fixed critical issue in getauxval() implementation. Here are corresponding tickets.

Read more

GCC 6 - now for Android
02/26/2016 10:45 PM

As you may know, GCC 6 is coming. There are many new features, including experimental support of the new C++17 features (Concepts, std::invoke, std::shared_mutex, etc) and many new warnings, helping developers to write safe and reliable code. In fact, GCC 6, with all enabled warnings, makes some static code analyzers just irrelevant anymore.

It is meaningless to describe all GCC 6 features here, so I won't. Those who are interested in that can read about them on other sites, spreading information about the upcoming GCC 6 release (for example, here or here). However, I'd like to tell you about GCC 6 for Android development and, in particular, about the future of the GCC in CrystaX NDK.

Read more

Patch release CrystaX NDK 10.3.1
12/25/2015 11:13 AM

New CrystaX NDK 10.3.1 is ready for download. This is patch release, where we've fixed several critical issues. Here is full list of the fixed issues.

Read more

Android Studio with experimental gradle plug-in and CrystaX NDK
12/14/2015 06:20 AM

Earlier, we've described how to use CrystaX NDK in Android Studio. Since that time Google announced new (experimental) gradle plug-in supporting NDK in Android Studio. Let's see how to use CrystaX NDK with this new plug-in.

To be consistent, we'll remaster previous article with new conditions - i.e. this will be again simple UI application, where Boost.Serialization would be used. Using Boost is not necessary for understanding new scheme of work with gradle experimental plug-in; however, we've included Boost examples just to cover more use cases.

Read more

CrystaX NDK 10.3.0 released!
12/14/2015 06:18 AM

We're glad to announce the release of CrystaX NDK 10.3.0!

The biggest changes in this release are:

  • New GCC and LLVM/clang toolchains
  • Big improvements of Objective-C v2 support
  • Initial support of Python (2.7 and 3.5) for Android.

Besides that, we've fixed many bugs and made huge number of improvements. See below for details.

Read more

CrystaX NDK 10.2.0 released!
06/24/2015 07:01 AM

We're glad to announce the release of CrystaX NDK 10.2.0!

We're moving further as promised, and in this release, we've fixed many bugs and implemented many improvements. See the list below for the main features introduced in CrystaX NDK 10.2.0.

Read more

Fund raising campaign started
03/24/2015 11:47 AM

We've started a fundraising campaign on BountySource to continue the development of CrystaX NDK and keep it available free to all Android developers.

We're asking everyone interested in the further evolution of native development for Android to help us. We would very much appreciate any kind of help - whether it is funding, contributions to the project by sending us patches, or helping to spread the news all over the world.

Read more

Using Android Studio to build applications with NDK and Boost C++ libraries
01/29/2015 11:40 AM

In the previous article, we described how to build a simple Android executable, which uses Boost C++ libraries. This is good example to see how the process works and to understand the internals; however, for practical purposes we need to know how to build ready-to-use Android applications which can be submitted to Google Play Store, for example.

Read more

Boost + Android? CrystaX NDK!
01/20/2015 02:40 PM

Do you have code that uses Boost C++ libraries? Do you want to easily port this code to Android? Or maybe you just want start a new Android-targeted project and would like to use Boost from the beginning? With CrystaX NDK 10.1.0, you get both an Android native development kit and Boost C++ libraries out of the box!

Read more

Native localization in Android? Yes, with CrystaX NDK!
01/20/2015 02:40 PM

By definition, good applications must look good for users. Besides many other things, that means good applications must talk with users in their language. But just translation of words and phrases to another language is not enough - many other elements differs from one culture to another, including the format of dates, money values, rules for capitalization, etc. All such specific information in computing defined through locales.

The way locale-specific input and output should be handled is standardized by ISO C and ISO C++ standards, so usually it's enough to just follow standards to properly localize your application. Unfortunately, this approach doesn't work on Android for software written in C/C++. Android libc (Bionic) has no native support for locales, so the only way to use localized input/output in native code is to implement localization in Java and refer to it through JNI. Obviously, such an approach adds significant run-time overhead, but it's the only choice if you're using Google's Android NDK.

Read more


Our contributors: