This project has been on hold since 2016.
All the data on this site is still available (and will stay available) but not actual anymore.
ВНИМАНИЕ!!! Вы находитесь на странице устаревшего выпуска CrystaX NDK.
Новый CrystaX NDK 10.3.2 доступен для скачивания, предлагая многочисленные исправления и улучшения; скорее всего, вам стоило бы попробовать новую версию вместо устаревшей.

Описание

Здесь выложены дистрибутивы улучшенного Android NDK (Native Development Kit) от Google. Этот NDK является полной заменой Google NDK и может использоваться везде, где используется оригинальный. CrystaX NDK предоставляет функциональность, идентичную предоставляемой Google-ом, а также множество дополнительных улучшений и исправлений. Этот проект изначально был создан Дмитрием Москальчуком (CrystaX) для добавления C++ возможностей (таких как C++ исключения, RTTI и STL) в Google NDK но вскоре после этого выяснилось, что улучшение CrystaX NDK шаг за шагом - это наилучший путь для развития средств родной (native) разработки под Android. Многие open-source и коммерческие проекты воспользовались CrystaX NDK для портирования и разработки под Android с минимальными усилиями.

Ключевые улучшения в CrystaX NDK:

  1. Wide characters.
    Google NDK не поддерживает wide chars - ни для C, ни для C++. Используя же CrystaX NDK вы получаете полноценную поддержку wchar. Теперь вы можете легко портировать существующий код, содержащий работу с wide characters/strings/streams или написать новый.

  2. Наиболее свежие средства разработки
    CrystaX NDK наряду со стабильными версиями включает в себя наиболее свежие версии компиляторов GCC и Clang. Это позволяет разработчикам использовать новые языковые возможности (такие как новый C++ 11). Все компиляторы собраны с включением различных высоко- и низко-уровневых оптимизаций. Это позволяет генерировать наиболее эффективный код под целевые аппаратные платформы.

  3. Поддержка C++11
    Благодаря тому, что CrystaX NDK включает наиболее свежие версии GCC и Clang, в нем поддерживаются очень многие фичи C++11. Детальное описание можно найти на страницах C++0x/C++11 Support in GCC и C++98 and C++11 Support in Clang.
    Также, CrystaX NDK предоставляет полностью рабочие C++11 классы std::thread, std::mutex, std::chrono и т.д. Эти классы отсутствуют в Google NDK из за отсутствия некоторых базовых возможностей в Android Bionic libc. Мы выяснили, в чем корень проблемы и починили это в CrystaX NDK так что теперь вы может просто использовать эту стандартную функциональность и забыть про ifdef-ы.

  4. Поддержка Objective-C
    Единственные языки программирования, доступные для разработки в Google NDK, это C и C++. CrystaX NDK дает возможность использовать также Objective-С в дополнение к C и C++. На данный момент доступен только базовый язык; работа над Cocoa-like библиотеками продолжается. Чтобы начать использовать Objective-C в вашем проекте, просто добавьте исходники с расширениями .m (Objective-C) или .mm (Objective-C++) и укажите их в LOCAL_SRC_FILES в Android.mk.

  5. Продолжение следует...
    Не стесняйтесь связываться с нами, если вы не видите некоторых классных фич в этом списке. Вы можете также использовать наш багтрекер для сообщений об ошибках. И конечно же, мы всегда рады помощи!

Лицензия

Содержимое CrystaX NDK покрывается различными open-source лицензиями. Более детально можно узнать, заглянув в каждый интересующий файл и прочитав copyright disclaimer.

Обратите внимание, что CrystaX NDK дистрибутивы также содержат уже собранные двоичные файлы - компилятор, линкер и т.д. Их исходные коды доступны на GitHub-е (вы можете использовать сборочный скрипт, чтобы скачать их автоматически).

GCC и сопутствующие инструменты (GDB, binutils и т.д.) покрываются либо GNU General Public License (GPL), либо GNU Lesser General Public License (LGPL). Вы можете найти более детальную информацию о них в файлах COPYING и COPYING.LIB, находящихся в каталогах $NDK/toolchains/$tc/prebuilt/$system.

Набор инструментов LLVM/Clang покрывается LLVM "BSD" лицензией.

По существу, правила лицензирования такие же, как у Android NDK от Google - т.е. разрешается любое использование, как коммерческое, так и некоммерческое. Единственное добавление к этим правилам - это CrystaX-специфичный код, который покрывается разрешительной 'BSD 2-clause' лицензией.

Скачать

Файл Размер SHA256
android-ndk-r8-crystax-1-windows-x86.zip 514.186 MB 0505aff64ff8b11...c47dbd1897011a
android-ndk-r8-crystax-1-windows-x86_64.zip 547.004 MB 29a58b115cb4d89...118b35f235e330
android-ndk-r8-crystax-1-darwin-x86.tar.bz2 552.304 MB c7d270896666222...ab13bfab535fcc
android-ndk-r8-crystax-1-darwin-x86_64.tar.bz2 566.709 MB 1aeadea2dc0b1ac...7b662384e735c2
android-ndk-r8-crystax-1-linux-x86.tar.bz2 523.324 MB 15ea846b05c9d2a...de4d6526566391
android-ndk-r8-crystax-1-linux-x86_64.tar.bz2 532.166 MB 0381508609d43b9...f0ee5a32a81a73

Инструкции по сборке

Вы также можете пересобрать эти дистрибутивы из исходников, если вас по каким-либо причинам не устраивают уже собранные версии. Для этого просто следуйте инструкциям ниже.

Настройка рабочего окружения для сборки:

Выполните настройку рабочего окружения, как это указано на сайте AOSP, за исключением части, касающейся Java. Далее, установите утилиту repo как описано здесь. Удостоверьтесь, что путь к repo прописан в PATH.
ВНИМАНИЕ!!! Сборка Windows версии CrystaX NDK возможна только на Linux машине (используется кросс-сборка). Сборка на Windows машине не тестировалась и не поддерживается.

Инструкции

  • Скачайте build script и запустите его:
    wget -O - https://crystax.net/download/ndk-crystax-r8-build.sh | /bin/sh
    Сборка займет много времени, вплоть до нескольких часов. По окончании сборки скрипт выведет на экран путь к архиву, содержащему только что собранный NDK release.
  • Это все! Используйте этот архив вместо Google NDK!

Back
Home
Map
Back
Home
Map

Наши авторы: