📜 ⬆️ ⬇️

Boost C ++ libraries on Android

So, we launched regular regression testing of Boost libraries on Android. Our results have been taken to work by the Boost community. We were added to the “list of approved testers” and the results of our testing are now published (and automatically updated) on the official Boost regression testing page . Boost library developers started working with us, reporting problems in the CrystaX NDK or fixing their code, depending on the situation.

At the moment there are a lot of regressions, some of which are caused by bugs in Boost, and some by bugs in CrystaX NDK . Naturally, we do not stop at this and continue to work, so the number of files will decrease with time. Nevertheless, this is quite an important step, because The testing process is now fully established and works automatically, so now to make Boost fully supported on Android is a relatively simple technical task and just a matter of time. I urge all those interested to pay attention to regressions and, if the cause of a bug in CrystaX NDK is to start a ticket . Of course, we are doing this too, but the efficiency will obviously be higher with the participation of more people.


This result was achieved with the help of CrystaX NDK - our project, whose main task is to create a complete set of tools for native development for Android. Native is not necessarily C / C ++. We are working to ensure maximum compliance with standards - C, C ++, POSIX, etc., so support for other programming languages, frameworks and libraries that are already implemented on other POSIX platforms is greatly facilitated. D, Erlang, Lisp, Ocaml, you name it - we see no fundamental restrictions preventing the use of these languages ​​for Android programming. Obviously, by providing high-quality implementation of basic libraries (such as libc), we thereby greatly facilitate porting runtimes and standard libraries of these languages ​​to Android. This is even more true for existing application libraries (ffmpeg, libpng, openssl, etc) - simply because they are usually less complex in porting than runtime languages ​​of programming languages.
')
In light of this, automatic testing of Boost using CrystaX NDK is important not only for Boost, but also for our project. Due to the complexity and demanding of Boost libraries to the lower level layer (libc, libm, etc.), it is a good set of tests for the standard behavior of the system libraries, and passing all the Boost tests allows us to speak with greater confidence about the full support of standards in CrystaX NDK . Obviously, this helps porting to Android and other non-Boost projects.

I started this project in 2009, and since then I have been leading it in my free time. In 2012, my good friend Alexander Zhukov joined me, and since then we have been working on the project together. We earned money by doing custom work for numerous commercial projects, and spent it on CrystaX NDK. Nevertheless, even in this mode, the CrystaX NDK has always been and still remains significantly more “fake” than the Android NDK from Google; mainly because Google is not interested in native Android development and which ignores the needs of a huge number of developers for a year. This becomes especially interesting in the light of the fact that now Android is no longer just phones. Today, these are already quite powerful tablets, and smart TVs, and car navigators - which means that the demand for easy portability of code between platforms is increasing. For Google’s recommended way - for Android, to rewrite everything in Java - this is absolutely not serious.

Eight months ago, we abandoned all third-party contracts and started working on the CrystaX NDK in full time mode. We are absolutely confident that we will be able to make our project the basis for a full-fledged development for Android - ideally, in any language, without necessarily using Java, as is happening today. The efficiency of working in full time mode is obvious - in these eight months we have advanced more than in the past three years. We want to continue and are confident that we will find support among a huge number of programmers.

Ready to answer any questions.

Source: https://habr.com/ru/post/253233/


All Articles