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.

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



Проверено: Shaman007 ()
Последнее исправление: crystax (всего исправлений: 1)

Не знаешь какие-нибудь 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
()

Ненужно.

anonymous
()

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

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

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

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

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

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

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

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

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

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

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

похожее на Visual Studio. :)

слишком толсто

Dred ★★★★★
()
Ответ на: комментарий от 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
()
Ответ на: комментарий от 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)
Ответ на: комментарий от zenden

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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