CrystaX NDK --- Native Development Kit for Android
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!
News
New CrystaX NDK 10.3.2 is ready for download. This is patch release, wherewe've fixed critical issue in getauxval() implementation. Hereare corresponding tickets.
As you may know, GCC 6 is coming. There are many new features, including experimental support ofthe 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 interestedin that can read about them on other sites, spreading information about the upcomingGCC 6 release (for example, hereor here).However, I'd like to tell you about GCC 6 for Android development and, in particular, aboutthe future of the GCC in CrystaX NDK.
New CrystaX NDK 10.3.1 is ready for download. This is patch release, wherewe've fixed several critical issues. Hereis full list of the fixed issues.
Earlier, we've described how to use CrystaX NDK in Android Studio.Since that time Google announced new (experimental) gradle plug-in supporting NDKin 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 beagain simple UI application, where Boost.Serialization would be used. Using Boost is notnecessary for understanding new scheme of work with gradle experimental plug-in; however,we've included Boost examples just to cover more use cases.
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.
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 manybugs and implemented many improvements. See the list below for the main featuresintroduced in CrystaX NDK 10.2.0.
We've started a fundraising campaign on BountySourceto 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 bysending us patches, or helping to spread the news all over the world.
In the previous article, we described how to build a simple Android executable, whichuses 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 applicationswhich can be submitted to Google Play Store, for example.
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 fromthe beginning? With CrystaX NDK 10.1.0, you get both an Android native development kitand Boost C++ libraries out of the box!
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 throughlocales.
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 codeis to implement localization in Java and refer to it through JNI. Obviously, such an approach adds significantrun-time overhead, but it's the only choice if you're using Google's Android NDK.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通