Новый 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:
- Wide characters.
Google NDK не поддерживает wide chars - ни для C, ни для C++. Используя же CrystaX NDK вы получаете полноценную поддержку wchar. Теперь вы можете легко портировать существующий код, содержащий работу с wide characters/strings/streams или написать новый. - Наиболее свежие средства разработки
CrystaX NDK наряду со стабильными версиями включает в себя наиболее свежие версии компиляторов GCC и Clang. Это позволяет разработчикам использовать новые языковые возможности (такие как новый C++ 11). Все компиляторы собраны с включением различных высоко- и низко-уровневых оптимизаций. Это позволяет генерировать наиболее эффективный код под целевые аппаратные платформы. - Поддержка 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-ы. - Поддержка 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. - Продолжение следует...
Не стесняйтесь связываться с нами, если вы не видите некоторых классных фич в этом списке. Вы можете также использовать наш багтрекер для сообщений об ошибках. И конечно же, мы всегда рады помощи!
Лицензия
Содержимое 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' лицензией.
Скачать
Инструкции по сборке
Вы также можете пересобрать эти дистрибутивы из исходников, если вас по каким-либо причинам не устраивают уже собранные версии. Для этого просто следуйте инструкциям ниже.
Настройка рабочего окружения для сборки:
Выполните настройку рабочего окружения, как это указано на сайте AOSP, за исключением части, касающейся Java. Далее, установите утилиту repo как описано здесь. Удостоверьтесь, что путь к repo прописан в PATH.ВНИМАНИЕ!!! Сборка Windows версии CrystaX NDK возможна только на Linux машине (используется кросс-сборка). Сборка на Windows машине не тестировалась и не поддерживается.
Инструкции
- Скачайте build script и запустите его:
wget -O - http://www.crystax.net/download/ndk-crystax-r8-build.sh | /bin/sh
Сборка займет много времени, вплоть до нескольких часов. По окончании сборки скрипт выведет на экран путь к архиву, содержащему только что собранный NDK release. - Это все! Используйте этот архив вместо Google NDK!