ВНИМАНИЕ!!! Вы находитесь на странице устаревшего выпуска CrystaX NDK.
Новый
CrystaX NDK 10.3.2 доступен для скачивания,
предлагая многочисленные исправления и улучшения; скорее всего, вам стоило бы
попробовать новую версию вместо устаревшей.
Здесь выложены дистрибутивы Android NDK 1.6_r1, пересобранные мной из официальных исходников.
Добавлена поддержка C++ exceptions, RTTI и Standard C++ Library (в частности, STL).
Изменения вносились только в сборочные скрипты и настроечные включаемые файлы.
Содержимое 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' лицензией.
CrystaX NDK contains code from libc library of FreeBSD project which by-turn contains
code from other projects. Also, several another open-source projects used, such as GNU gcc,
GNU binutils, LLVM clang, LLVM libc++ etc. To see specific authors and/or licenses, look
into appropriate source file. Here is license for those parts which are not derived from
any other projects but written by CrystaX.
Copyright (c) 2011-2024 CrystaX.
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are
permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this list of
conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice, this list
of conditions and the following disclaimer in the documentation and/or other materials
provided with the distribution.
THIS SOFTWARE IS PROVIDED BY CrystaX ''AS IS'' AND ANY EXPRESS OR IMPLIED
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL CrystaX OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
The views and conclusions contained in the software and documentation are those of the
authors and should not be interpreted as representing official policies, either expressed
or implied, of CrystaX.
Вы также можете собрать дистрибутив самостоятельно, если вас не устраивают по каким-либо причинам те версии, что собрал я. Для этого следуйте инструкциям ниже.
Необходимое ПО:
- Для 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-1.6_r1 для вашей платформы с официального сайта
- Распакуйте полученный архив и перейдите в каталог android-ndk-1.6_r1
- Примените мой патч:
patch -p1 <path-to-my-patch
- Установите переменную окружения ANDROID_NDK_ROOT так, чтобы она указывала на текущий каталог:
export ANDROID_NDK_ROOT=`pwd`
- Для Windows, установите переменную окружения CC так, чтобы она указывала на GCC 3:
export CC=gcc-3
- Запустите команду сборки:
./build/tools/build-toolchain.sh
Эта команда скачает исходники android toolchain (включая binutils, gcc и gdb), пропатчит их и запустит компиляцию.
Это может занять довольно много времени в зависимости от вашей конфигурации, поэтому будьте терпеливы.
- Теперь вы можете попробовать протестировать вашу сборку. Соберите приложение hello-jni по стандартной инструкции (я модифицировал его так,
что теперь там используется STL и исключения) и запустите на эмуляторе/устройстве
- Наслаждайтесь!
Спасибо за скачивание CrystaX NDK
(начнется через секунд)!
CrystaX NDK - полностью открытый продукт, свободный для использования в любых open-source и коммерческих
проектах. Мы предоставляем его полностью бесплатно, не требуя ничего взамен от наших пользователей. Тем не менее,
мы очень признательны за любую поддержку: pull request-ы,
распространение новостей о нашем проекте, или просто финансовую помощь:
Кто мы
Мы - маленькая команда разработчиков, желающих сделать разработку под Android более простой.
Наша цель - создание полноценного набора инструментов для разработки под Android на C, C++, Objective-C
и, потенциально, на других языках программирования, доступных для программирования под современные
операционные системы (Swift, D, Haskell, Ocaml, Python, Ruby - список можно продолжить).
Мы уже сделали немало (как вы можете убедиться на главной странице нашего проекта),
но мы хотим сделать еще больше. Это дорога в тысячу миль, но мы знаем, как это сделать и четко видим шаги,
необходимые для достижения цели. Здесь вы можете почитать о нас более подробно.
Почему нам нужна ваша помощь
С момента начала работы над CrystaX NDK мы финансировали себя самостоятельно, без какого-либо спонсирования.
Деньги мы зарабатывали другими способами (выполнением работ по консультированию и разработке ПО на заказ),
а затем вкладывали их в развитие CrystaX NDK.
В связи с этим, эффективность нашей работы над NDK была не настолько высока, как нам хотелось бы.
Получая поддержку от сообщества, мы сможем уделять больше времени и внимания дальнейшему развитию CrystaX NDK,
не отвлекаясь на заказную разработку. Это, очевидно, ускорит разработку и поможет лучше
поддерживать наших пользователей.
По желанию, спонсоры проекты (те, кто присылают нам $200 в месяц или больше) получают взамен некоторые привилегии -
их заявки получают больший приоритет, они могут быть указаны на главной странице нашего сайта, указаны
в README CrystaX NDK и т.д.
Здесь это описано более подробно.
ВНИМАНИЕ!
Когда скачивание завершится, не забудьте проверить, что скачанный файл не испорчен!
Его SHA-256 hash должен быть .
Вот пример, как это можно проверить с помощью OpenSSL:
$ CHECKSUM= && \
FILE= && \
echo "$CHECKSUM $FILE" | sha256sum --check