ВНИМАНИЕ!!! Вы находитесь на странице устаревшего выпуска CrystaX NDK.
Новый
CrystaX NDK 10.3.2 доступен для скачивания,
предлагая многочисленные исправления и улучшения; скорее всего, вам стоило бы
попробовать новую версию вместо устаревшей.
Здесь выложены дистрибутивы Android NDK r5, пересобранные мной из официальных исходников.
Начиная с NDK r5, Google добавил поддержку С++ exceptions, RTTI и STL в свой NDK.
Это очень хорошо, но все еще недостаточно для многих, включая меня. Начиная с r5-crystax-1,
основной целью этого проекта будет улучшение официального NDK (в конце-концов, это
наилучший способ добиться включения таких улучшений в mainline - как это было с
поддержкой полноценного C++ в Google NDK)
Одно из таких больших улучшений - поддержка wide chars (wide strings, wide streams и т.д.)
в соответствии с C++ стандартом. Сейчас, после нескольких месяцев разработки, эта задача завершена.
Вам больше не надо будет беспокоиться о wide chars/strings/streams при портировании существующего
кода на Android - просто компилируйте его моим NDK и двигайтесь дальше. Качайте и пользуйтесь!
Содержимое 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.
Вы также можете собрать дистрибутив самостоятельно, если вас не устраивают по каким-либо причинам те версии, что собрал я. Для этого следуйте инструкциям ниже.
Настройка рабочего окружения для сборки:
Следуйте инструкциям с
сайта AOSP за исключением части, касающейся Java.
ВНИМАНИЕ!!! Начиная с версии r5, NDK может быть собран только на Linux/Mac машинах. Сборка на Windows более не поддерживается!
Тем не менее, Windows версия может быть собрана на Linux используя так называемый "cross-canadian build". Для этого вам нужно
установить пакет mingw32; сборочный скрипт автоматически определит его наличие и соберет Windows версию автоматически.
Инструкции
Спасибо за скачивание 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