<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Вышел CrystaX NDK 10.1.0, инструментарий для разработки Andr...</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID3/101281.html</link>
    <description>Доступен CrystaX NDK 10.1.0 (https://www.crystax.net/android/ndk), набор инструментов для разработки на C/C++ (и Objective-C) под Android. CrystaX NDK разработан как прозрачная замена для Android NDK от Google, но при этом добавляет немало возможностей, отсутствующих в оригинальном NDK. Прежде всего это означает, что CrystaX NDK можно использовать вместо Google NDK, и всё будет продолжать работать как раньше. Но при этом станут доступными многие возможности, отсутствующие в Google NDK, такие как поддержка широких символов (https://ru.wikipedia.org/wiki/&#037;D0&#037;A8&#037;D0&#037;B8&#037;D1&#037;80&#037;D0&#037;BE&#037;D0&#037;BA&#037;D0&#037;B8&#037;D0&#037;B9_&#037;D1&#037;81&#037;D0&#037;B8&#037;D0&#037;BC&#037;D0&#037;B2&#037;D0&#037;BE&#037;D0&#037;BB), полноценная система Си-локалей, библиотека расширенных математических функций, поставка более новых версий GCC и Clang, поддержка C++11/C++14, наличие библиотеки Boost и т.д.&lt;br&gt;&lt;br&gt;&lt;br&gt;В новом выпуске основной упор сделан на совместимость с POSIX, и в большой степени этого удалось достичь. Иными словами, при использовании CrystaX NDK Android становится для разработчика намного более POS</description>

<item>
    <title>Вышел CrystaX NDK 10.1.0, инструментарий для разработки Andr... (crystax)</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID3/101281.html#18</link>
    <pubDate>Sun, 01 Feb 2015 23:52:57 GMT</pubDate>
    <description>&amp;gt; (спаведливости ради следует отметить, что std::thread и std::mutex работали корректно &lt;br&gt;&amp;gt; уже в r9c - в более ранних версиях не пробовал).&lt;br&gt;&lt;br&gt;Верно, это я ошибся. Просто я с этим столкнулся намного ранее r9c (еще в r7), и мне немало пришлось потрудиться, чтоб заставить std::thread и std::mutex корректно работать. Ну а сейчас произошла некоторая аберрация памяти и я назвал std::thread/std::mutex в списке недоступных фич.&lt;br&gt;&lt;br&gt;&amp;gt; Однако при попытке сделать это (&quot;просто заменить&quot;) с проектом с native activity &lt;br&gt;&amp;gt; запускаемым через native_app_glue, и использующим минимиум third-party библиотек (Box2D, &lt;br&gt;&amp;gt; tinyxml2 и libpng) проект успешно компилируется, однако не запускается на планшете &lt;br&gt;&amp;gt; (&quot;...could not load application...&quot;).&lt;br&gt;&lt;br&gt;Надо просто загрузить libcrystax.so перед загрузкой native activity. Если у вас есть хоть сколько-нибудь Java кода, то проще всего это сделать так:&lt;br&gt;&lt;br&gt;static &#123;&lt;br&gt;    System.loadLibrary(&quot;crystax&quot;);&lt;br&gt;&#125;&lt;br&gt;&lt;br&gt;Если же Java нет и добавлять не хочется, то можно:&lt;br&gt;&lt;br&gt;- написать свой stub, в котором де</description>
</item>

<item>
    <title>Вышел CrystaX NDK 10.1.0, инструментарий для разработки Andr... (Аноним)</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID3/101281.html#17</link>
    <pubDate>Sun, 01 Feb 2015 23:41:20 GMT</pubDate>
    <description>Спасибо за пояснения!&lt;br&gt;&lt;br&gt;(спаведливости ради следует отметить, что std::thread и std::mutex работали корректно уже в r9c - в более ранних версиях не пробовал).&lt;br&gt;&lt;br&gt;Еще два вопроса: &lt;br&gt;&lt;br&gt;1. Вы говорите, что можно просто заменить Google NDK на CrystaX и все будет работать также, как и ранее с NDK, &quot;только лучше&quot; :-) &lt;br&gt;&lt;br&gt;Однако при попытке сделать это (&quot;просто заменить&quot;) с проектом с native activity запускаемым через native_app_glue, и использующим минимиум third-party библиотек (Box2D, tinyxml2 и libpng) проект успешно компилируется, однако не запускается на планшете (&quot;...could not load application...&quot;).&lt;br&gt;&lt;br&gt;2. Можно ли слинковать вашу библиотеку libcrystax с программой статически?&lt;br&gt;</description>
</item>

<item>
    <title>Вышел CrystaX NDK 10.1.0, инструментарий для разработки Andr... (crystax)</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID3/101281.html#16</link>
    <pubDate>Sun, 01 Feb 2015 22:33:18 GMT</pubDate>
    <description>И кстати - std::chrono в Google NDK более-менее доступен (при использовании), но std::chrono::monotonic_clock, к примеру, не гарантирует монотонности, а просто и тупо является алиасом к std::chrono::system_clock. Как говорится, удачи в отладке. Даже предупреждения не выдается при сборке.&lt;br&gt;&lt;br&gt;А в CrystaX NDK std::chrono::monotonic_clock - это честный monotonic clock, на ход времени которого не влияет переустановка системного времени.&lt;br&gt;&lt;br&gt;И это только один из множества примеров, когда, чтобы поймать ошибку, приходится отлаживаться не то чтобы часами или днями, но иногда даже неделями - и все только для того, чтобы выяснить, что баг в системной libc или в gnustl. До сих пор вспоминаю, сколько времени пришлось потратить, чтоб в конце концов выяснить, что strtod() не парсит строки &quot;0xNNN&quot;, а просто возвращает нуль. Если б хотя бы падала, легче найти причину было бы - но нет, просто 0 на выходе. А чтобы дойти до strtod(), пришлось продраться через огромную гору кода, и затратить на это несколько дней.&lt;br&gt;</description>
</item>

<item>
    <title>Вышел CrystaX NDK 10.1.0, инструментарий для разработки Andr... (crystax)</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID3/101281.html#15</link>
    <pubDate>Sun, 01 Feb 2015 22:20:04 GMT</pubDate>
    <description>&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&amp;gt; забыть.&quot; &lt;br&gt;&amp;gt; Но вообще-то, это совсем не так. Стандартный NDK содержит не 2, а &lt;br&gt;&amp;gt; 4 реализации STL ( http://www.kandroid.org/ndk/docs/CPLUSPLUS-SUPPORT.html ): &lt;br&gt;&amp;gt; - system - та самая обрезаная версия &quot;без всего&quot;, которую Вы ошибочно &lt;br&gt;&amp;gt; называете GNU libstdc++ &lt;br&gt;&amp;gt; - gabi++ &lt;br&gt;&amp;gt; - stlport &lt;br&gt;&amp;gt; - gnustl - собственно GNU libstdc++ с полной поддержкой std::thread, std::mutex, std::chrono, &lt;br&gt;&amp;gt; и всего остального, что входит в C++11 - при условии выбора &lt;br&gt;&amp;gt; соответсвующего toolchain (например, gcc 4.8 или 4.9).&lt;br&gt;&lt;br&gt;Это ошибочное представление. &quot;Версии&quot; system/gabi++/stlport я во внимание не принимаю, т.к. system и gabi++ - это вообще даже рядом не &quot;стандартная библиотека C++&quot;, а stlport сильно устарела и C++11 возможностей в ней просто нет.&lt;br&gt;&lt;br&gt;Так что я говорил о gnustl (GNU libstdc++ - $NDK/sources/cxx-stl/gnu-libstdc++) и libc++ (LLVM libc++ - $NDK/sources/cxx-stl/llvm-libc++). Они обе вполне реализуют то, что требует стандарт C++11 от стандартной библиотеки. Проблема только в том, что ко</description>
</item>

<item>
    <title>Вышел CrystaX NDK 10.1.0, инструментарий для разработки Andr... (Аноним)</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID3/101281.html#14</link>
    <pubDate>Sun, 01 Feb 2015 22:03:14 GMT</pubDate>
    <description>&amp;gt; Но при этом станут доступными многие возможности, отсутствующие в Google NDK,&lt;br&gt;&amp;gt; такие как ... поддержка C++11/C++14, наличие библиотеки Boost и т.д.&lt;br&gt;&lt;br&gt;Видел Ваши сообщения еще на двух ресурсах. Например, на rsdn Вы утверждаете:&lt;br&gt;&lt;br&gt;&quot;В Android NDK доступны на выбор две реализации стандартной библиотеки C++ &amp;#8212; GNU libstdc++ и LLVM libc++. К сожалению, обе работают плохо. Используя GNU libstdc++, вы не получите ни std::thread, ни std::mutex, ни std::chrono &amp;#8212; и это далеко не все. Фактически, о полноценном C++11 можно забыть.&quot;&lt;br&gt;&lt;br&gt;Но вообще-то, это совсем не так. Стандартный NDK содержит не 2, а 4 реализации STL ( http://www.kandroid.org/ndk/docs/CPLUSPLUS-SUPPORT.html ):&lt;br&gt;&lt;br&gt;- system - та самая обрезаная версия &quot;без всего&quot;, которую Вы ошибочно называете GNU libstdc++&lt;br&gt;- gabi++ &lt;br&gt;- stlport &lt;br&gt;- gnustl - собственно GNU libstdc++ с полной поддержкой std::thread, std::mutex, std::chrono, и всего остального, что входит в C++11 - при условии выбора соответсвующего toolchain (например, gcc 4.8 или 4.9).  &lt;br&gt; &lt;br&gt;</description>
</item>

<item>
    <title>Вышел CrystaX NDK 10.1.0, инструментарий для разработки Andr... (crystax)</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID3/101281.html#13</link>
    <pubDate>Thu, 29 Jan 2015 15:20:48 GMT</pubDate>
    <description>Там нет дефолтного варианта сайта. Он просто смотрит на HTTP AcceptLanguage, присылаемый браузером, и выдает страницу на нужном языке.&lt;br&gt;</description>
</item>

<item>
    <title>Вышел CrystaX NDK 10.1.0, инструментарий для разработки Andr... (terraslav)</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID3/101281.html#12</link>
    <pubDate>Wed, 28 Jan 2015 14:35:25 GMT</pubDate>
    <description>Ешь не ешь, а помрешь неминуемо.&lt;br&gt;</description>
</item>

<item>
    <title>Вышел CrystaX NDK 10.1.0, инструментарий для разработки Andr... (Ne01eX)</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID3/101281.html#11</link>
    <pubDate>Mon, 26 Jan 2015 08:40:56 GMT</pubDate>
    <description>Хм. А разве само наличие libcrystax не гробит на корню саму идею комплекта для нативной разработки?&lt;br&gt;</description>
</item>

<item>
    <title>Вышел CrystaX NDK 10.1.0, инструментарий для разработки Andr... (тоже Аноним)</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID3/101281.html#10</link>
    <pubDate>Mon, 26 Jan 2015 06:40:06 GMT</pubDate>
    <description>Добавлю к 1, что возможен кроссплатформенный софт с кроссплатформенной же мордой.&lt;br&gt;При использовании библиотек типа Cocos2d-x в проекте код для Android и iOS может отличаться только в тех местах, где действительно выполняются разные действия. Остальные отличия возьмет на себя библиотека.&lt;br&gt;</description>
</item>

</channel>
</rss>
