LINUX.ORG.RU

Вышел CrystaX NDK 10.2.0

 , ,


1

3

Новая версия CrystaX NDK 10.2.0 (набор инструментов для разработки на C/C++/Objective-C под Android) доступна для скачивания.

В этой версии работа в основном велась над исправлениями и улучшениями, но было добавлено и несколько новых возможностей.

  • Поддержка Objective-C v2 runtime и начальных Cocoa-совместимых фреймворков (Foundation и CoreFoundation).
  • Добавлены готовые к использованию библиотеки Boost 1.58.0. В рамках проекта CrystaX NDK ведется регулярное регрессионное тестирование Boost под Android, ведущее к улучшениям как в Boost, так и в CrystaX NDK.
  • Добавлен новый набор инструментов (toolchain) на основе clang-3.6, с переносом всех исправлений, сделанных в clang-3.4 и clang-3.5 в рамках проекта.
  • Добавлены готовые к использованию libpng-1.6.17, libjpeg-9a и libtiff-4.0.4beta.
  • А также большое количество исправлений и мелких улучшений, в сумме ведущих к более стандартному и предсказуемому поведению CrystaX NDK.

>>> Подробности

Не знаешь какие-нибудь ndk собранные для arm? Свой собирать долго, хочу скачать готовый. Тот, что в AIDE кривой слишком, либо gcc 4.6 кривой.

mittorn ★★★★★ ()

С его помошью можно собирать консольные утилиты, которые потом из терминала запускаются? Или есть какой-нибудь способ ещё проще?

alt-x ★★★★★ ()
Ответ на: комментарий от mittorn

Свой собирать долго

crosstool-ng же, и ничуть не долго, на некроноутбуке (sandy bridge) за 40 мин собирается.

anonymous ()
Ответ на: комментарий от alt-x

Собираешь SO'шку, которую потом используешь из Java через JNI. Если много телефонного API не надо, то можно вообще без Java делать через native activity, либо один раз сделать Java-активити-обертку для своих нативных приложений.

anonymous ()

Если кто забыл, то напоминаю, что NDK в андроиде - это гетто, где все кое-как работает. Кармак не одобрил, сказал что даже в iOS лучше. А CrystaX NDK - это такое «сабгетто» внтури гетто.

anonymous ()

Несколько лет назад портировал одну очень тяжелую игру на андроид с кучей зависимостей, прошел через все круги ада, пока дописывал весь недостающий функционал в NDK, пока портировал boost, SDL2, freetype и многое другие зависимости. А ведь тогда в boost-е не было никаких патчей для андроида, SDL2 андроид не поддерживал вообще, NDK был настолько кастрирован, что ни одна либа толком не собиралась под него. Были времена :) Хотя сейчас стало получше, но все равно многого не хватает. Респект за вашу работу!

mastermind ()
Ответ на: комментарий от alt-x

С его помошью можно собирать консольные утилиты, которые потом из терминала запускаются?

конечно, почему нет?

mastermind ()
Ответ на: комментарий от mastermind

...прошел через все круги ада

Вопрос: а зачем? :) Зачем ходить по гвоздям и жрать стекло? Есть куда более безгеморные области применения лба. Мобильная разработка - это вообще hype, никому толком не нужный пузырь, где приложения стоят копейки, а геморой по их созданию больше, чем рожание ежа через анус. Ну так и оставьте Гуглу его *овноподелие - пущщай сам дрючится! Как надрючится/надогфудится, сразу возьмётся за ум и МОЖЕТ БЫТЬ, лет через 5, сваяет нечто похожее на Visual Studio. :)

matumba ★★★★★ ()
Ответ на: комментарий от matumba

Есть куда более безгеморные области применения лба.

И? Вы пишете как человек, который познал дзен. Хотелось бы продолжения. Пишу (пока) без иронии.

anonymous ()

хочу писать на С++ под все платформы и без гемора

zenden ()
Ответ на: комментарий от anonymous

я познал дзен писуя на winapi,на .net урезанном для wince(промышленных) в 2008 гдето

попутно дописывая большую часть недостающего функционала для .net переписывая его рендер(который кривой и багнутый)

хорошо покушал,на долго еще хватит этого привкуса изысканных «тихнологий» пхп,дотнет,про джаваскрипт и новомодный треш руби питоны и прочее-я вообще молчу...

anonymous ()
Ответ на: комментарий от zenden

хочу писать на С++ под все платформы и без гемора

найс пошутил

чтото сложнее «cout>>>хелло ворлд» смог написать?

anonymous ()

Boost 1.58.0
clang-3.6

замечательно!

asaw ★★★★★ ()
Ответ на: комментарий от alt-x

С его помошью можно собирать консольные утилиты, которые потом из терминала запускаются?

Да, можно. Собственно говоря, все наши регрессионные тесты - это executables, которые запускаются на устройствах. Можно посмотреть, как это делается в тестах, а можно просто сгенерировать standalone toolchain, и им собирать как под обычный Linux (пример этого можно посмотреть здесь).

crystax ()
Ответ на: комментарий от mastermind

А ведь тогда в boost-е не было никаких патчей для андроида

Вообще, в Boost-е и сейчас патчей для Android-а почти что нет (то, что есть, абсолютно несерьезно для нормальной поддержки). У нас же Boost работает не потому, что мы правим Boost, а потому, что мы правим нижний уровень, обеспечивая честное POSIX поведение. Да к тому же еще и автоматически тестируем все это дело, отлавливая регрессии. Поэтому и Boost работает, да и много другого софта тоже.

Хотя сейчас стало получше, но все равно многого не хватает. Респект за вашу работу!

Спасибо.

crystax ()
Ответ на: комментарий от mastermind

Были времена :) Хотя сейчас стало получше

Два чая :) Полгода назад написанная изначально для линукса/венды с SDL2 и С++11 игрушка под андроид собралась и запустилась без существенного дописывания и портирования («дописаны» были только mk файлы и jni-обертка). boost с С++11 практически не нужен :)

, но все равно многого не хватает.

например?

slackwarrior ★★★★★ ()
Ответ на: комментарий от anonymous

чтото сложнее «cout>>>хелло ворлд» смог написать?

Хоть вопрос и не мне, отвечу.

Я писал. Много. Под разные платформы. На C++. Ничего сложного в этом нет, если использовать голову и думать о наиболее приемлемом по затратам (как времени, так и денег) способе создать приложение, которое будет одинаково работать на всех целевых платформах. Безусловно, одним C++ не обойтись, если в целевых платформах присутствуют iOS и Android, но вполне реально сделать так, что платформно-специфичная обвязка будет занимать не более 1% от общей кодовой базы.

Глупым детям этого, правда, не понять, они предпочитают повторять мантры «Android - это Java, iOS - это Objective-C». Грамотные разработчики же разбираются в вопросе куда глубже.

crystax ()
Ответ на: комментарий от slackwarrior

Два чая :)

Представь, в то время для андроида не то, что C++11 не было, даже об RTTI и исключениях приходилось только мечтать. А сейчас да, даже boost (правда, не весь) без особой пляски с бубном собирается standalone toolchain-ом.

например?

примеры можно увидеть в исходниках CrystaX :) или почитать сайт. Я могу из своей практики навскидку назвать отсутствие функции glob (взял из исходников BSD), неполноценная поддержка wchar_t (некоторых функций нет, пришлось добавлять), неполноценные потоки (своя реализация, нет pthread_cancel, пришлось переписать код игры, убивать потоки - плохая практика), отсутствие локализации как таковой (собирал iconv отдельно), еще много чего, что уже позабылось

mastermind ()
Ответ на: комментарий от slackwarrior

Забыл еще добавить про сломанные атомики, которые не могли починить не один год(!). Вообще поддержка стандартной библиотеки сильно хромает даже сейчас

mastermind ()

Не могу понять, зачем вы запихнули в ndk еще и boost?

andreyu ★★★★★ ()
Ответ на: комментарий от matumba

МОЖЕТ БЫТЬ, лет через 5, сваяет нечто похожее на Visual Studio. :)

Это каким болтом вы связали ndk и visual studio? И да, не нужно ничего похожего на visual studio - пользоваться ею могут только дикие фанаты.

andreyu ★★★★★ ()
Ответ на: комментарий от andreyu

Не могу понять, зачем вы запихнули в ndk еще и boost?

Что значит «зачем»? Затем, чтоб люди пользовались, очевидно. И чтоб не надо было мучиться с его сборкой, багами и т.д. Мы эту работу взяли на себя. И надо сказать, что с момента начала регулярного тестирования Boost с помощью нашего проекта было исправлено большое количество ошибок как в Boost, так и в CrystaX NDK, так что польза для обеих сторон очевидна.

А если вам он не нужен - ну так не пользуйтесь, никто же не заставляет.

crystax ()
Ответ на: комментарий от mastermind

Забыл еще добавить про сломанные атомики, которые не могли починить не один год(!).

Насколько я понимаю, они там до сих пор не починены. По крайней мере, этот тест крешится, будучи собранным Android NDK r10e, а в CrystaX NDK работает.

crystax ()
Ответ на: комментарий от mastermind

А сейчас да, даже boost (правда, не весь) без особой пляски с бубном собирается standalone toolchain-ом.

У нас он собирается весь - за исключением Boost.Python, т.к. для него нужен Python на target платформе; и Boost.Context/Boost.Coroutine для arm64/mips64, т.к. эти ABI просто не поддерживаются в самом Boost.

Все остальное из Boost же собирается в полном объеме, а как оно работает, видно из результатов нашего тестирования - master, develop.

неполноценные потоки (своя реализация, нет pthread_cancel

Над этим, кстати, мы работаем, и можно ожидать полноценные pthread API в следующем релизе (10.3?).

crystax ()
Ответ на: комментарий от anonymous

найс пошутил

чтото сложнее «cout>>>хелло ворлд» смог написать?

https://github.com/zenden2k

Вот я бы хотел что-то написать для смартфонов, но желания писать код на Java или Objective-C нет никакого.

Как это все портировать под андроид я не знаю.

libcurl http://curl.haxx.se/libcurl/ (patched version)

openssl https://www.openssl.org

zlib http://www.zlib.net

Boost http://www.boost.org (patched version)

pcre http://www.pcre.org

pcre++ http://www.daemon.de/PCRE (patched version)

squirrel http://squirrel-lang.org (patched version)

sqrat http://scrat.sourceforge.net (patched version)

ffmpeg https://www.ffmpeg.org

Boost.Process https://github.com/zenden2k/boost-process-utf8 (patched version with utf-8 support)

tinyxml http://sourceforge.net/projects/tinyxml/

gumbo https://github.com/google/gumbo-parser

gumbo-query https://github.com/lazytiger/gumbo-query

minizip http://www.winimage.com/zLibDll/minizip.html

jsoncpp https://github.com/open-source-parsers/jsoncpp

glog https://github.com/google/glog

Задолбали корпорации, хочу смартфон с нормальным C++ SDK!

zenden ()
Последнее исправление: zenden (всего исправлений: 2)
Ответ на: комментарий от zenden

Задолбали корпорации, хочу смартфон с нормальным C++ SDK!

Такой был. Это Trolltech Greenphone, а чуть позже смартфоны на Symbian от Nokia, которые похоронил Microsoft.

EXL ★★★★★ ()
Ответ на: комментарий от crystax

Насколько я понимаю, они там до сих пор не починены. По крайней мере, этот тест крешится, будучи собранным Android NDK r10e, а в CrystaX NDK работает.

То, что по ссылке вообще не соберется, т.к. не указан -std=c++11. Непонятно, каким компилятором собирали и на каком девайсе тестили, например, без указанного APP_PLATFORM я на своем Nexus 6 получаю «error: only position independent executables (PIE) are supported.».
Я добавил эти строчки в Application.mk:
APP_CPPFLAGS += -std=c++11
APP_PLATFORM := android-22
NDK_TOOLCHAIN_VERSION := 4.9
и все у меня заработало.

У нас он собирается весь - за исключением Boost.Python

Планируете ли добавить python, кстати? Было бы здорово

mastermind ()
Ответ на: комментарий от zenden

Как это все портировать под андроид я не знаю

Все портируется. Вопрос квалификации и трудозатрат.

mastermind ()

btw, почему CrystaX? Пока что я не знаю смысла, и это название ассоциируется с Христом, что внушает огромное отторжение (ненавижу религиозный бред).

stevejobs ★★★☆☆ ()
Ответ на: комментарий от zenden

нафиг вообще нужен C++? Ну ладно, запустить его в гетто, пусть какой-нибудь видеопоток числодробит. Но программировать бизнес-логику в 21м веке на не-managed языке, да еще настолько кривом как Кресты? Неудивительно, что таких смартфонов нет. Программисты блин... Даны им Java/Scala, C#/F#, Haskell, Расты всякие, бери юзай джаву, но нет, не хотят юзать джаву, хотят жрать говно...

stevejobs ★★★☆☆ ()
Последнее исправление: stevejobs (всего исправлений: 1)
Ответ на: комментарий от stevejobs

Но программировать бизнес-логику в 21м веке на не-managed языке
Расты всякие

Раст не менеджед.

DarkEld3r ★★★★★ ()
Ответ на: комментарий от stevejobs

GTA'шечку и Angry Birds на Java не напишешь.

EXL ★★★★★ ()
Ответ на: комментарий от zenden

Objective-C - очень даже хороший, нативный, по-настоящему объектно-ориентированный язык. Сначала отпугивает, но потом понимаешь, что он лучше, проще и удобнее, чем C++.

Deleted ()
Ответ на: комментарий от stevejobs

А теперь расскажи нам, в чём реальный толк managed code.

Deleted ()
Ответ на: комментарий от stevejobs

Это уже с вами что-то не так. У меня, например, ассоциация со словом crystal.

Deleted ()
Ответ на: комментарий от matumba

Кстатия, Visual Studio для андроида уже давно есть - NVIDIA Nsight Tegra. Используется в реальных AAA игровых проектах и не только.

mastermind ()
Ответ на: комментарий от EXL

Самая популярная на протяжении последних 5 лет игра например, создатель которой даже смог в прошлом году наебать на доллары (на 2,5 ярда) зелени корпорацию зла.

anonymous ()
Ответ на: комментарий от anonymous

Написана на жабе, огромнейшее модкомьюнити, весь ютуб засран, чем не игра?

anonymous ()

Добавлены готовые к использованию ... libjpeg-9a

А чего не libjpeg-turbo ?

AF ★★★ ()
Ответ на: комментарий от stevejobs

На яблоке managed-языки нельзя например,там запрещен самокомпилирующийся рантайм.

anonymous ()
Ответ на: комментарий от Deleted

А теперь расскажи нам, в чём реальный толк managed code.

в возможности быстро писать код

stevejobs ★★★☆☆ ()
Ответ на: комментарий от EXL

ну если криворукий, то даже хэлло ворлд не напишешь, это к санитарам вопросы

stevejobs ★★★☆☆ ()
Ответ на: комментарий от anonymous

А как тогда всякие Xamarin работают?

Deleted ()
Ответ на: комментарий от stevejobs

Что мешает писать быстро код на других языках?

Deleted ()
Ответ на: комментарий от Deleted

Статистика мешает. Мало кто может быстро писать на крестах.

stevejobs ★★★☆☆ ()
Ответ на: комментарий от zenden

Задолбали корпорации, хочу смартфон с нормальным C++ SDK!

Плюсы хоть и портируемое (не всегда легко), но всеж таки платформенно зависимое решение, требующее перекомпиляции приложения под отдельно взятую железяку. Понятно что на телефоне это сделать будет сложно, нужен онлайн сервис. В принципе в нете существует несколько дистров линя с онлайн сборкой под платформу. Со стороны ГНУ меншинств - никаких проблем с хранением сырцов в общем доступе нет. Но меньшинсво есть меньшинство. Так что у гну смартфона перспективы не ахти.

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.