ВНИМАНИЕ!!! Вы находитесь на странице устаревшего выпуска 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://us.crystax.net/download/ndk-crystax-r8-build.sh | /bin/sh
    Сборка займет много времени, вплоть до нескольких часов. По окончании сборки скрипт выведет на экран путь к архиву, содержащему только что собранный NDK release.
  • Это все! Используйте этот архив вместо Google NDK!

Back
Home
Map
Back
Home
Map

Наши авторы: