This project has been on hold since 2016
All the data on this site is still available (and will stay available) but not up-to-date anymore
You might like to check Dmitry Moskalchuk's portfolio for his other projects
ВНИМАНИЕ!!! Вы находитесь на странице устаревшего выпуска CrystaX NDK.
Новый CrystaX NDK 10.3.2 доступен для скачивания, предлагая многочисленные исправления и улучшения; скорее всего, вам стоило бы попробовать новую версию вместо устаревшей.

Описание

Здесь выложены дистрибутивы Android NDK r3, пересобранные мной из официальных исходников. Добавлена поддержка C++ exceptions, RTTI и Standard C++ Library (в частности, STL). Изменения небольшие, вы можете увидеть их в предлагаемом my patch

Update: У приложений, собранных с помощью этой версии, могут быть потенциальные проблемы с запуском на будущих версиях Android. Тем не менее, на текущих версиях (вплоть до Android 2.1) все работает нормально. Как только я с этим разберусь, будет выпущена новая версия. Более детальные сведения о потенциальной проблеме с запуском на будущих версиях вы можете узнать из моей дискуссии с Дэвидом Тернером (архитектором Android) здесь

Update 2: Проблема решена в последней версии моей сборки (android-ndk-r3-crystax-2). Сборка более не в экспериментальном состоянии - приложения, собранные с использованием моей версии Android NDK не будут отличаться с точки зрения ABI (Application Binary Interface) от собранных с помощью официальной версии. Подробное описание проблемы и как она была решена, вы сможете прочитать в моем сообщении в Android NDK group.

Update 3: Готова новая версия android-ndk-r3-crystax-3! Список исправленных проблем:

Лицензия

Содержимое 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-r3-windows-crystax-3.zip 131.713 MB a3f4b6227e9d9fe...134c4da4aa1a96
android-ndk-r3-darwin-x86-crystax-3.tar.bz2 109.896 MB 27ac9e1aaead6b3...a45b65aa155d43
android-ndk-r3-linux-x86-crystax-3.tar.bz2 106.269 MB a13a9f42bc0d610...e733a698ae1cb6

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

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

Необходимое ПО:

  • Для Windows, последняя версия Cygwin
  • GNU Make 3.81 или выше
  • GNU Makeinfo (наиболее свежая версия)
  • GIT (для скачивания исходников android toolchain)
  • Наиболее свежая версия GNU Libtool (automake, autoconf и т.д.)
  • GNU C/C++ 3.x или выше (для Windows, это должна быть именно 3.x, не 4.x)
  • Библиотека ncurses (в случае Cygwin это должен быть пакет ncurses-devel)
  • GNU flex (наиболее свежая версия)
  • Утилита patch. Скорее всего она уже установлена если вы используете Linux или Mac OS X; в Cygwin она должна быть установлена отдельно

Инструкции

  • Скачайте мой патч и сохраните его где-нибудь
  • Скачайте android-ndk-r3 для вашей платформы с официального сайта
  • Распакуйте полученный архив и перейдите в каталог android-ndk-r3
  • Примените мой патч:
    patch -p1 <path-to-my-patch
  • Установите переменную окружения ANDROID_NDK_ROOT так, чтобы она указывала на текущий каталог:
    export ANDROID_NDK_ROOT=`pwd`
  • Для Windows, установите переменную окружения CC так, чтобы она указывала на GCC 3:
    export CC=gcc-3
  • Скачайте исходники android toolchain:
    ./build/tools/download-toolchain-sources.sh --release=myrelease
    Это может занять много времени в зависимости от скорости вашей сети. В конце концов, эта команда скачает исходники и запакует их в /tmp/android-ndk-toolchain-myrelease.tar.bz2
  • Запустите команду сборки:
    ./build/tools/build-toolchain.sh --package=/tmp/android-ndk-toolchain-myrelease.tar.bz2
    Эта команда распакует исходники android toolchain (включая binutils, gcc и gdb), пропатчит их и запустит компиляцию. Это может занять довольно много времени в зависимости от вашей конфигурации, поэтому будьте терпеливы.
  • В конце, когда команда сборки завершится, она напечатает имя архива с собранными инструментами (что-то типа /tmp/android-ndk-prebuilt-20100309-linux-x86.tar.bz2, фактическое имя будет зависеть от текущей даты). Запустите команду:
          rm -Rf ./build/prebuilt
          tar xjvf /tmp/android-ndk-prebuilt-20100309-linux-x86.tar.bz2
          
  • Теперь вы можете попробовать протестировать вашу сборку. Соберите приложение hello-jni по стандартной инструкции (я модифицировал его так, что теперь там используется STL и исключения) и запустите на эмуляторе/устройстве
  • Наслаждайтесь!

Back
Home
Map
Back
Home
Map

Наши авторы: