Набор инструментов для C/C++ разработки под Android
Мы предлагаем CrystaX NDK - широко распространенный открытый продукт, используемый в многочисленных коммерческих и open-source проектах. Почему не использовать Android NDK от Google? Потому что CrystaX NDK лучше, и в то же время остается совместимым с Android NDK от Google. По существу, CrystaX NDK является прозрачной заменой для Android NDK от Google, позволяя разработчикам использовать его полностью так же, как и оригинальный. Однако, в отличие от Google NDK, CrystaX NDK предлагает разработчикам дополнительные возможности и улучшения.
Основные цели проекта CrystaX NDK:
- Лучшее соответствие стандартам
- Легкое портирование существующего кода на Android
- Новые возможности для разработки на C/C++ под Android
Заинтересовались? Узнайте подробнее, что CrystaX NDK предлагает разработчикам под Android!
Новости
Поправочный выпуск CrystaX NDK 10.3.2
Новый CrystaX NDK 10.3.2 доступен для скачивания. Это поправочный выпуск, в котором мы исправили критическую проблему в реализации фунции getauxval(). Здесь можно найти более подробную информацию.
GCC 6 - теперь и для разработки под Android
Как известно, скоро выйдет GCC 6. В нем содержится множество улучшений, включая экспериментальную поддержку новых возможностей C++17 (концепты, std::invoke, std::shared_mutex и т.д.) и значительно более "умные" предупреждения, помогающие разработчикам писать безопасный и надежный код. Фактически GCC 6 со всеми включенными предупреждениями делает некоторые статические анализаторы кода неактуальными.
Бессмысленно описывать все новые возможности GCC 6 в этой статье, поэтому я не буду. Те, кому это интересно, могут прочитать об этом на других сайтах, распространяющих информацию о грядущем релизе GCC 6 (к примеру, здесь или здесь). Однако я хотел бы рассказать об использовании GCC 6 для разработки под Android и, в частности, о будущем GCC в составе CrystaX NDK.
Поправочный выпуск CrystaX NDK 10.3.1
Новый CrystaX NDK 10.3.1 доступен для скачивания. Это поправочный выпуск, в котором было исправлено несколько критических ошибок. Здесь вы можете увидеть полный список.
Android Studio с экспериментальным Gradle плагином и CrystaX NDK
Ранее мы описали как использовать CrystaX NDK в Android Studio. С того времени Google анонсировал новый (экпериментальный) Gradle плагин с улучшенной поддержкой NDK в Android Studio. Давайте посмотрим, как использовать CrystaX NDK с этим новым плагином.
Будучи последовательными, мы обновим предыдущую статью, добавив в нее новые условия - т.е. это будет все то же простое UI приложение, использующее Boost.Serialization. Использование Boost необязательно для понимания новой схемы работы с экспериментальным Gradle плагином; тем не менее, мы включили пример работы с Boost для большей полноты примера.
Выпущен CrystaX NDK 10.3.0
Мы рады сообщить, что новый выпуск CrystaX NDK 10.3.0 готов к использованию!
Наиболее важные изменения в этом выпуске:
- Новые GCC и LLVM/clang.
- Сильно улучшена поддержка Objective-C v2.
- Добавлена поддержка Python (2.7 и 3.5) для Android.
Кроме этого, починено много ошибок и сделано огромное количество улучшений. Ниже вы можете ознакомиться с более подробной информацией.
Выпущен новый CrystaX NDK 10.2.0!
Мы рады сообщить, что новый выпуск CrystaX NDK 10.2.0 готов к использованию!
Мы работаем над проектом согласно обещаниям, и в этом выпуске мы исправили много ошибок и внесли большое количество улучшений. Ниже вы можете ознакомиться с основными фичами CrystaX NDK 10.2.0.
Запущена кампания по сбору средств
Мы запустили кампанию по сбору средств на сайте BountySource для продолжения разработки CrystaX NDK как открытого, доступного всем разработчикам проекта.
Мы просим всех, заинтересованных в дальнейшем развитии средств нативной разработки под Android, помочь нам. Мы будем очень признательны за любую помощь - будь это финансирование нашего проекта, помощь в разработке или дальнейшее распространение информации о проекте.
Использование Android Studio для сборки приложений с NDK и Boost
В предыдущей статье мы рассмотрели как собирать простые исполняемые файлы под Android с использованием библиотек Boost. Это хороший пример для понимания того, как все работает "изнутри"; однако для практических целей хорошо было бы уметь собирать готовые к использованию приложения, которые можно залить в магазин приложений Google Play, к примеру.
Boost + Android? CrystaX NDK!
У вас есть код, который использует библиотеки Boost C++? Вы хотите максимально простым способом портировать этот код под Android? Или, может быть, вы просто начинаете новый проект под Android и хотите использовать Boost с самого начала? С CrystaX NDK 10.1.0 вы получаете возможность разрабатывать под Android на C++ с использованием Boost прямо "из коробки".
Локализация под Android на C/C++? Да, с помощью CrystaX NDK!
По определению, хорошее приложение должно быть удобно для пользователя. А удобство использования, помимо всего прочего, означает, что приложение должно разговаривать с пользователем на его родном языке. Но простого перевода слов и предложений недостаточно, разные культуры отличаются друг от друга не только языками, но и, например, способами записи дат, обозначением денежных единиц, правилами преобразования прописных букв в строчные и т.д.. Вся эта информация в программировании собрана в так называемых локалях.
Способы работы с локализованными вводом и выводом описаны в международных стандартах языков программирования ISO C и ISO C++, поэтому обычно достаточно просто следовать стандарту, чтобы должным образом локализовать ваше приложение. К сожалению, этот простой метод не работает на Android для приложений, написанных на C/C++. Библиотека libc на Android (Bionic) не поддерживает локали, поэтому единственный способ использовать локализованный ввод/вывод в коде на C/C++ -- это реализовать локализацию на языке Java и потом использовать ее в коде на C/C++ через JNI. Очевидно, подобный подход вносит существенные накладные расходы во время исполнения программы, но это единственный вариант, если вы используете Google NDK.