Monday, June 18, 2012

Crystax Improved Android NDK r7

Although starting from NDK r5, Google added support of C++ exceptions, RTTI and STL to the official NDK, that's good but not enough for many developers. Dmitry Moskalchuk (aka CrystaX) added several useful features to Android NDK r7:
  1. Wide characters.
    Google's NDK doesn't support wide chars properly - neither in C or C++. Using CrystaX NDK you get full standard compliant wide characters support. You can easily port existing code which use wide characters/strings/streams or write new one.

  2. New 4.6.3 toolchain
    Starting from r7-crystax-1, CrystaX NDK contains two versions of compiler toolchain: 4.4.3 (old one, the same as Google use) and 4.6.3 (new one). New toolchain contains GCC 4.6.3 with enabled Graphite framework allowing gcc do high-level memory optimizations.
  3. C++11 support (formerly known as C++0x)
    Google's NDK offer GCC 4.4.3 which is good compiler but doesn't support some modern features. One of such features is support of new International Standard known as C++11 (formerly known as C++0x). There is very limited support of C++0x features in GCC 4.4.3. Using CrystaX NDK you can start use many of new C++0x features right now. Of course, there is no yet full C++11 support in GCC 4.6.3 but GCC team works very intensively on that and it already contains many very usable features (lambdas, decltype, auto and many others). To see full list of C++0x features supported, look to GCC C++ Support page. 

  4. Objective-C support
    The only languages Google NDK supports are C and C++. Starting from r7-crystax-4, CrystaX NDK support additionally Objective-C. This is experimental feature, but at least core language works fine. 

  5. Static code analysis
    Android NDK uses GCC which analyze code pretty good and warn about potential errors (especially with -Wall -Wextra) but, as every developer knows, there could not be reviews enough. Really, sometime we do absolutely dumb mistakes and pass them to the production. To decrease number of such mistakes, experienced developers uses static code analyzers. There are many such tools (open source and proprietary) so choice is not easy. Clang project offer code analyzer which is pretty good in many situations. This is the same analyzer known to Apple developers through "Build and analyze" XCode's menu item. With CrystaX NDK, you can start use it with Android too. 
How to use CrystaX NDK and the download links can be find from the CrystaX NDK r7 website.

No comments:


Blog Archive

About Me

My photo
HD Multimedia Technology player