Компания Google выпустила (http://android-developers.blogspot.com/2010/03/android-ndk-r...) третий релиз системы Android NDK r3 (http://developer.android.com/sdk/ndk/index.html) (Native Development Kit), позволяющей организовать выполнение нативного Си/Си++ кода в Java-окружении мобильной платформы Android.
Кроме исправления ошибок в новой версии Android NDK представлено три существенных улучшения:
- Поддержка прямого вызова функций OpenGL ES 2.0, что позволяет задействовать при выводе графики вершинные (vertex) и фрагментные (fragment shader) шейдеры, используя язык описания шейдеров GLSL. Ожидается, что новшество подтолкнет разработчиков современных трехмерных игр для портирования своих разработок на платформу Android. Например, новая возможность может быть задействована в находящейся в процессе портирования игре Quake3 (https://www.opennet.ru/opennews/art.shtml?num=25549).- Улучшение инструментария для сборки нативного кода. Переход на использования в качестве ба...
URL: http://android-developers.blogspot.com/2010/03/android-ndk-r...
Новость: https://www.opennet.ru/opennews/art.shtml?num=25723
Надо начинать было с этого, а не с дальвика своего убогого.
Это же гугл. Сперва надо было сделать тормозную JVM без нифига и нестандартную, а потом выгребать из болота в которое сразу сходу зарулили. Долго выгребать будут с таким дизайном платформы то. По сравнению с другими платформами, програминг нативного кода в андроиде напоминает попытки выиграть бег на стометровке бегая на костылях.
ты когда-нибудь писал на java? стандартные библиотеки - 5% всех используемых технологий. О тормознутости java говорить вообще смешно, почему красноглазики не видят ничего дальше Java SE...
>ты когда-нибудь писал на java?Нет. Нафига мне это г?
>стандартные библиотеки - 5% всех используемых технологий.
Я поздравляю жабистов с этим фактом. А я разве говорил что я люблю изобретать свое колесо, свой велосипед и чтоб всенепременно - с тамагочами и покемонами? oO
>О тормознутости java говорить вообще смешно, почему красноглазики не видят ничего
>дальше Java SE...Какого еще SE? Далвик сабжевый - тормоз редкий. Он как минимум изнчально был даже без jit, со всеми вытекающими. А если вы такой крутой дев на яве - камон, вон вам quicklz.com, один и тот же алгоритм на яве, сишарпе и сях. Идите, побейте си, флаг вам в руки. Первые два почему-то сливают в 2.5 - 3 раза даже на мощных движках с JIT и прочая. Да еще гугле шлея под хвост попала делать свое, ни с кем не совместимое. Велосипедизм в хучшей форме.
>>ты когда-нибудь писал на java?
>Нет. Нафига мне это г?lol. "на Java не писал, но осуждаю!"
>ты когда-нибудь писал на java?А ты когда-нибудь писал что-то, кроме религиозных постов.
Отдыхай, мой друг. В отличнии от тебя, тут обитают люди, которые имели дело со всеми технологиями, про которые говорят, как в качестве пользователей, так и разработчиков. С java не хочется иметь дело, ни на серверах, ни на десктопах, ни на мобильных платформах.
слышь, я от тебя так и не добился ничего вразумительного. вы тут все орете, теоретики хреновы. а как действительно написать что-нибудь с открытыми исходниками, так сразу в кусты. причем, дотнетчики и жабисты реакция одинаковая. это не камень в огород программерам, зарабатывающим на жизнь, пишуших на этих языках. это камень в огород теоретиков, очень хреново учивших информатику.
так что, напишем фильтр какой-нибудь для картинок, парсер, или числодробилку какую? если хочешь, даже с gui.условия задачи:
1. алгоритм должен быть известным и оговореным заранее
2. на решение задачи пару дней
3. исходники выложить здесь. для обозрения и сравнения производительности.
>так что, напишем фильтр какой-нибудь для картинок, парсер, или числодробилку какую? если
>хочешь, даже с gui.нет уж, напиши отказоустойчивый сервис, только чтобы он не зависил от жизни процессов и потоков... :)
извиняюсь, независЕл
не боись, я тебе отказоустойчивую программу напишу.
Ну перечисли основные особенности и требования к ee приложению..
да у меня каждый день эти требования, и для эмбеддед и для серваков. программирование и тестирование. я задачу озвучил, только ты ее никогда не напишешь, тем более - для того, чтобы выставить ее на суд общественности.
да я вот на работе создаю подобную систему для ферм серверов геоданных
и что? года два назад я занимался оптимизацией обработки сейсмоданных. террабайты данных с плавающей точкой. сам алгоритм был написан на сях, а серверная программа, которая занималась автоматическим управлением данными по нодам - плюсы. правда, ее можно было и на яве написать и на питоне. это было бы не критично. гораздо критичнее была скорость и стабильность самих вычислялок. а качество данных было самое разное - от отличных записей с новеньких геофонов, до больших "пробелов" в данных из-за того, что записывали на рухлядь. и ничего, газовые или нефтяные ниши находили с точностью 5-10 метров. при глубине до 6 километров. ты предлагаешь это все в эксель-таблицах обрабатывать? или на яве с дотнетом?
алгоритм, кстати, из Фраунхофера. правда, допиливать пришлось, чтобы скорость обработки в несколько десятков раз увеличить.
да ок, я не сомневаюсь, что ты делал что-то интересное и ответственное, я говорю лишь о том,что концепция EE строго определенная (ну или мне наврали в книжке по Java EE 6и Glassfish 3). В твоем случае при убийстве ключевого процесса валится твоя система, нет? В EE решениях нет ключевого процесса, код крутится на сервере приложений и прослушивает вызывающую сторону, которая может возбудить выполнения процесса.
Кстати... а нафига нефтяные данные на глубине 6 километров??? Понимаешь о чем я??? Зачем данные о бурении на 6 км - это же бред!
а как EE переводится? у?
>(ну или мне наврали в книжке по Java EE 6и Glassfish 3).в книжке не наврали. это просто ИХ взгляд на EE.
я не с вами сейчас разговаривал, вы не в теме, Минона, я понял
я то в теме :D
а вот ты слил.
нет, там процессы управлялись централизировано. и работали они независимо на нодах. в случае креша перезапускались. креши случались иногда, в случае несоответствия входных параметров. пока мне эта ситуация окончательно не надоела, пришлось найти ошибку в алгоритме, которой было 6 лет. возникало из-за больших поисковых параметров (данные были из рук вон плохими).
сейчас я работаю несколько в другом направлении - там как раз есть ключевые процессы, но их поведение контролируется редундантным компом. креши процессов вообще должны быть исключены. только при отказе оборудования, да и то на локальном сервере. редундантный должен перенять в этом случае задачу.бурить дырку стоит несколько лямов зелени. это только чтобы посмотреть, есть ли там вообще что-то. а изучить структуру под землей на подобных кластерах стоит в раз 20-100 меньше, зависит от качества и количества данных. а там какие данные получали с лент, такие и обрабатывали. нефть и газ есть даже на таких глубинах. так что это не бред, а реальность.
>нет, там процессы управлялись централизировано. и работали они независимо на нодах. в
>случае креша перезапускались. креши случались иногда, в случае несоответствия входных параметров.ну это не очень хорошо, хотя конечно допустимо. Я сейчас работаю параллельно над реализацией отказоустойчивой системы обработки информации на workflow + wcf под microsoft appfabric и java ee под sun enterprise application server. Очень интересно когда код может масштабироваться по фермам серверов в зависимости от нагрузки, + нет рабочего процесса - закладки приложений возбуждаются и приостанавливаются. самый сок в том что без переделки все это можно перенести в cloud, но не очень понятно будет ли это выгодней.
>пока мне эта ситуация окончательно не надоела, пришлось найти ошибку в
>алгоритме, которой было 6 лет. возникало из-за больших поисковых параметров (данные
>были из рук вон плохими).так всегда - хорошие данные бывают только в сказке:) виноват в любом случае во всем программист:)
>сейчас я работаю несколько в другом направлении - там как раз есть
>ключевые процессы, но их поведение контролируется редундантным компом. креши процессов вообще
>должны быть исключены. только при отказе оборудования, да и то на
>локальном сервере. редундантный должен перенять в этом случае задачу.так смасштабируй на несколько серверов, если любишь unix - так под SEAS - будет работать как часы. Рекомендую связку Eclipse+HG+EE Toolkit.
>
>бурить дырку стоит несколько лямов зелени. это только чтобы посмотреть, есть ли
>там вообще что-то.практически на таких глубинах обычно ничего не бывает. Хотя теоретически все возможно. У нас самые используемые глубины - 2-3 тыс.
спасибо, было интересно поговорить с коллегой:).
>так смасштабируй на несколько серверов, если любишь unix - так под SEAS - будет работать как часы. Рекомендую связку Eclipse+HG+EE Toolkit.да тут и так работет как часы, тестируем хорошо. и должно работать быстро в силу специфики. несколько серверов тоже неприемлемо в силу специфики. в софте, который я в том числе пишу, неприемлем вообще софт-креш. только отказ оборудования. поэтому серверов только два, потому как больше железок - больше вероятность отказа. они коннектятся с эмбеддед компами, установленными в морской пучине.
так что, будет писать программки для сравнения стабильности и производительности?
>так что, будет писать программки для сравнения стабильности и производительности?а как ты сравнишь мой рабочий процесс на java который летает между серверами со своим нативным кодом... разные подходы... на сях ты так просто не сделаешь или пол жизни делать будешь
1. Полет процессов между серверами - УЖЕ сделан. Это раз. Если винда сие не умеет - это ее трудности. Вообще-то штуки типа опенвзы на раз мигрируют на иную железку процесс так что даже TCP соединения не рвутся. Так, притормозит немного и ... никто и не заметит ничего.
2. Вообще говоря, никакой закон природы не запрещает компилировать си в байткод или что там еще и гонять его хоть между серверами до усрачки. А чем оно принципиально отличается?Просто обычно так не делают т.к. просирон в скорости :). А реально скоростные и отказоустойчивые решения заводят в таких случаях эн процессов на разных машинах, один хрен.
3. Полжизни - это если делать с нуля, проигнорировав существующие решения. Я подозреваю что если вы (чтобы не быть двухстандартным) проигнорируете существующие рантаймы для явы и дотнета и попробуете сделать свой с нуля - вы и за всю жизнь не справитесь.
ну что си и плюсы ты не знаешь, в этом я и не сомневался. так что там летает между серверами?
вы реально своим невежеством убиваете... сложно почитать что такое java ee?
да ты со своим троллингом задолбал уже.
а вам то это зачем?
самой "защищённой" платформе это всё-равно не поможет.
>а вам то это зачем?
>самой "защищённой" платформе это всё-равно не поможет.платформа в данном контексте обсуждения не важна
платформа всегда важна.
от элементарной безопасности, до возможностей масштабирования.
>платформа всегда важна.
>от элементарной безопасности, до возможностей масштабирования.платформа в данном случае важна чтобы потроллить, в данном контексте обсуждения... троллить не будем
ясно.
так бы и сказали, что вы просили написать "надёжную" программу (сервис?), но чтобы под виндами и чтобы на .net.
Это не важно. Можно под .net писать для appfabric, можно на java для seas. Linux в любом случае в пролете - решения на seAs надежнее использовать на solaris, linux в данном вопросе - игрушка
да можно хоть пальцем в ж. ковыряться.
а факты такие - все апп сервера у оракла на линухе, а сервера субд - на спарк/солярке.
и ведёт оракл свой бизнес и поддержку клиентов на своей же oebs.
а все эти фабрики (кстати! она у мс до 2-ой беты дожила! :D) - трухиным для тролизма.
ну или lse для разочарований.
>все апп сервера у оракла на линухеЯ не знаю где они у оракла - мне параллельно, знаю где они у меня
я конечно извиняюсь, но где ЭТО у ВАС не интересно.
ваша формула успеха известна каждому на этом ресурсе. и пока не впечатляет.
>нет уж, напиши отказоустойчивый сервис, только чтобы он не зависил от жизни
>процессов и потоков... :)Давайте лучше это вы покажете на андроидской мобиле? Может даже победите в конкуресе гугли. В номинации "самое бесполезное приложение". :)
>так что, напишем фильтр какой-нибудь для картинок, парсер, или числодробилку какую? если
>хочешь, даже с gui.прям о существовании EE сегмента никто тут даже не догадывается - числодробилки блин
да-да. вот об таком пузыре (тоже с уолстрит) самое время поговорить.зы:
до чего не люблю 1ц, но по сравнению с остальными (а 1ц теперь тоже ее) они просто ангелы.
>до чего не люблю 1ц, но по сравнению с остальными (а 1ц
>теперь тоже ее) они просто ангелы.Хаха, хорошо поднял настроение... 1с - ее. Ее - в понимании java - концепция разделения различных логик приложения, запущенных на appfabric.
у 1ц 8.2 такие же фабрики - и с тонким веб-клиентом, и на апачах, и с балансировкой, и на оракле-рак.
ну а если не в курсе, то ознакомься - http://v8.1c.ru/requirements/
а вот тут и демо тонкого клиента - http://v8.1c.ru/overview/release_8_2_9/зы:
помится Нуралиев долго рассматривал вопрос перд 8 о переходе на .нет.
и оказался прав.
>у 1ц 8.2 такие же фабрики - и с тонким веб-клиентом, и
>на апачах, и с балансировкой, и на оракле-рак.
>ну а если не в курсе, то ознакомься - http://v8.1c.ru/requirements/
>а вот тут и демо тонкого клиента - http://v8.1c.ru/overview/release_8_2_9/Спасибо за объяснение... не знал
да не за что.
там правда в объяснении ничего не сказано о сервере приложений... ну ладно, возможно это так
есть и сервер приложений, и его горизонтальное масштабирование, и код теперь может выполнятся либо на толстом клиенте, либо на сервере приложений.
в общем это уже совсем не та 1ц 7.7
>есть и сервер приложений, и его горизонтальное масштабирование, и код теперь может
>выполнятся либо на толстом клиенте, либо на сервере приложений.
>в общем это уже совсем не та 1ц 7.7интересно. Ну молодцы они...
Так никто же не заставляет. Не нравится - не ешьте.
Такое впечатление, что тут собрались матёрые геймдевы, которых Андроид со всех сторон ограничивает.
Ну я вот например не разбираюсь в жаве и в гробу ее видал, строго говоря. Это не значит что я не могу захотеть попрограмить. А гугл за всех в 1 рыло решил что вы все становитесь любителями жавы. Пусть дальше решают. Веломипедисты хреновы. Хотели как лучше, а сделали очередного кривого самопального уродца, если называть вещи своими именами.
>Ну я вот например не разбираюсь в жаве и в гробу ее
>видал, строго говоря.все с вами понятно
>все с вами понятноЭто с любителями One Microsoft Way все понятно. Может быть вас прикалывает когда за вас подумали и все решили, а меня - не очень.
> гугл за всех в 1 рыло решил что вы все становитесь любителями жавы.Гугл как бы один написал эту платформу с нуля поэтому там принимали решения так как считали правильным. Вот если бы User294 помогал, то как занять - всё могло бы быть совсем по другому
Ну, гугля почему-то решила что лучше всех знает что им в платформе нужно. Результаты такого подхода к дизайну платформы гугл расхлебывает до сих пор, чему пруфлинком - эта новость, например. В итоге мало того что у них ни с чем не совместимая ява, у них еще и ни с чем толком не совместимый способ запуска нативного кода и самопальное окружение. Libquake.so - это сильно, да :)
java, к вашему сведению совместимая. набор библиотек адаптирован для сенсорных устройств android.
> Результаты такого подхода к дизайну платформы гугл расхлебываетНе то чтобы сильно расхлёбывает, вообще-то вся платформа - большой WIN. А NDK - это способ оптимизации CPU-critical приложений. Вы слишком сгущаете краски, Андроид - это Java-like платформа и она хороша, NDK - это лишь дополнительная фича.
> у них еще и ни с чем толком не совместимый способ запуска нативного кода ...
Там используется Java Native Interface (http://en.wikipedia.org/wiki/JNI)
> ... и самопальное окружение.
Урезанные версии стандартных библиотек Си и C++.
>Там используется Java Native Interface (http://en.wikipedia.org/wiki/JNI)а изначально jni в андроиде не было что ли? (андроидом не занимаюсь, так что не в курсе)
>Урезанные версии стандартных библиотек Си и C++.вот то-то и оно.
это трухин не вкурит никак, что собственно любая библа - это и есть расширение для твоего кода на с/с++.
бери хоть iconv, хоть вебкит и работай сколько душе угодно. с lsb посоветуйся и работай.
>Ну, гугля почему-то решила что лучше всех знает что им в платформе нужноЧто им в ИХ платформе нужно. По моему логично решили.
>Результаты такого подхода к дизайну платформы гугл расхлебывает до сих пор
Да в Google вообще одни идиоты! А ты вот умный.
Странно правда, что они такие богатые, а...
ну конечно, как ни плюнь в олигарха, так сразу в академика попадёшь.зы:
хоть бы слово "богатые" на "зажиточные" заменил.
а то Задорнов обидится.
>ну конечно, как ни плюнь в олигарха, так сразу в академика попадёшь.Я не имел ввиду академическую науку, она - совсем другая область, к этому случаю применима слабо.
Но Сикорский или Эдиссон не ПТУ-шниками были.
Да я собственно про другое. Мне кажеться обвинять компанию, которая очень нехило поднялась не на нефтяных фьючерсах а на веб (и не веб) технологиях, которая каждый год привносит и развивает пару мешков иноваций, в некомпетентности... Ну я бы, во всяком случае не стал.
>хоть бы слово "богатые" на "зажиточные" заменил.
>а то Задорнов обидится.Не очень понял этого пассажа.
биллу гейтсу тоже пару лет назад диплом таки подарили. и что?
>Но Сикорский или Эдиссон не ПТУ-шниками были.ну так и Королёв с Поповым - тоже.
>Да я собственно про другое.так и мы тоже.
>Мне кажеться обвинять компанию, которая очень нехило поднялась не на нефтяных фьючерсах а на веб (и не веб) технологиях, которая каждый год привносит и развивает пару мешковчто значит обвинять? может я ошибся и тут блог прокуроров и судей?
если кто-то или что-то делает не так, как я считаю правильным, то я имею право высказать свой мнение или нет?
или только из-за того, что гугль имеет больший капитал, то я должен всё одобрять или заткнуться?
>Не очень понял этого пассажа.ну так логично.
> Ну я вот например не разбираюсь в жаве и в гробу ее видал, строго говоря. Это не значит что я не могу захотеть попрограмить.Можешь показать код для Nokia N900, наподобие вот этого кода (для Android):
http://www.ibm.com/developerworks/ru/library/os-android-sens...Сколько времени у тебя займёт написание программ для работы с датчиками/камерой/акселерометром для Nokia?
если вы хоть немного знаете java (о другом и не говорю), то поймёте, что весь код для этих датчиков всё-равно написан на с.
>Сколько времени у тебя займёт написание программ для работы с датчиками/камерой/акселерометром для Nokia?проще не куда. видите ли, когда программируешь на с/с++, то не нужно ждать прослоек на java (или ещё чем-нибудь). всё что нужно предоставляют драйвера устройств.
к примеру "Shake to wake – потрясите Nokia N900 для разблокировки" - http://maemos.ru/2010/03/02/shake-to-wake/#more-3497
кстати, а вот и сам скрипт:
#!/usr/env/bin python2.5
# -*- coding: utf-8 -*-
# This script is in Public Domain. Use it however you like.
# Niklas Tanskanen <niklas@iskuri.org>import os
import dbus
def get_rotation():
f = open("/sys/class/i2c-adapter/i2c-3/3-001d/coord", 'r' )
coords = [int(w) for w in f.readline().split()]
f.close()
return coords
def get_proximity():
f = open("/sys/devices/platform/gpio-switch/proximity/state", 'r' )
state = f.readline()
state = state.rstrip()
return state
while True:
coor = get_rotation()
state = get_proximity()
x = coor[0]
y = coor[1]
z = coor[2]
if y<-1700 or y>1700 :
if state == "open" :
print "screen open"
bus = dbus.SystemBus()
tklock = bus.get_object('com.nokia.mce','/com/nokia/mce/request')
tklock.req_tklock_mode_change(dbus.String("unlocked"))
elif state == "closed" :
print "not going to open screen, i'm in a pocket :("
print "Trigger: ", x, y, z, state
>#!/usr/env/bin python2.5К сведению, у всех уже давно Python 2.6, как минимум.
HTC или каком-нибудь LG код точно не заработает — этот код ONLY_FOR_NOKIA.
прям так и хочется сказать матом!
да какая разница?
хоть на баше пиши!!! суть в том, что есть:
f = open("/sys/class/i2c-adapter/i2c-3/3-001d/coord", 'r' )
f = open("/sys/devices/platform/gpio-switch/proximity/state", 'r' )
и не надо ждать пока добрые дядьки тебе прослойку напишут.
есть устройство. есть драйвер. есть его системные вызовы. всё.ps:
вы просили скорость. вы просили простоту.
получите и распишитесь.
>прям так и хочется сказать матом!
>да какая разница?
>хоть на баше пиши!!! суть в том, что есть:
>f = open("/sys/class/i2c-adapter/i2c-3/3-001d/coord", 'r' )
>f = open("/sys/devices/platform/gpio-switch/proximity/state", 'r' )
>и не надо ждать пока добрые дядьки тебе прослойку напишут.
>есть устройство. есть драйвер. есть его системные вызовы. всё.Код для Android будет рабочим на любых девайсах от HTC, Samsung, LG, Sony Ericsson, &tc.
Ваш код запустится в лучшем случае только на Nokia N900.>ps:
>вы просили скорость. вы просили простоту.
>получите и распишитесь.Я имел в виду код на ЯП C/C++, в которых поднаторел Узер, к которому я обращался.
мой код запустится там, где будут те же устройства.
а если появятся новые устройства, то не сложно дописать.
вы же в последнем случае будете ждать обновления прошивки/sdk/etc.
>Я имел в виду код на ЯП C/C++,да хоть на java пиши. при чём не на кастрированной, а на jdk.
и не тогда, когда соизволят встроить (b возможно с ошибками/тормозами/т.д.), а сразу.
>в которых поднаторел Узер, к которому я обращался.кто бы вам не ответил это не изменит тот факт, что вы со своей java на 1 (как минимум) дальше от железа. и возможностей программирования оного у вас гораздо меньше.
но и возможности абстрагироваться гораздо большие и концентрации на задаче, а не на реализации
это общие слова и не более. хотите абстракции?
берите qt 4.6 и в путь.
не сложнее java, не менее объемныя по различным библиотекам и наработкам, не менее кроссплатформенна.
и не нужно отказываться от низкоуровневых возможностей, если вдруг приспичит, а библиотек ещё не сделали. или ядро уже поддерживает новый девайс, а java-библиотеки ещё нет.зы:
а вооще, писать и сравнивать поддержку железа между java и по существу ядром linux - это ещё тем умником надо быть! :D
>но и возможности абстрагироваться гораздо большие и концентрации на задаче, а не
>на реализацииДа, вот только вы или абстрагируетесь на яве, или пролетаете. One Microsoft Way. И нифига не unix-way.
>Код для Android будет рабочим на любых девайсах от HTC, Samsung, LG,
>Sony Ericsson, &tc.Агащаз. Он будет работать только на андроидовых девайсах. И ... все. А вот на симбиановых например не будет. На n900 не будет. На писюках не будет. На винмобиле не будет. На J2ME не будет. Ну то есть если допустить что все захавал андроид (хм, чем это лучше "все захавал виндовс"?) - вы правы. Иначе - вы вешаете лапшу на уши в стиле майкрософта: у них там тоже софт портабелен, ведь он работает на разных компьютерах - от Делл, ХьюлетПакард, Сони, Тошибы, Асуса... :). А то что только под виндой - ну да, только под ней. Поэтому если в мире останется только винда, виндовый софт - типа портабельный. Андроид в этом плане не сильно лучше.
>Ваш код запустится в лучшем случае только на Nokia N900.
Ну так датчики которые есть у именно n900 не обязаны быть у другого телефона, строго говоря. Скажем датчик освещенности есть у N900 но нет у других. Может, у андроида супер-пупер хорошо с поддержкой уникальных фич оборудования? :)
>Я имел в виду код на ЯП C/C++, в которых поднаторел Узер, к которому я обращался.
Cap'n Obvious намекает: чтение файла на сях выглядит примерно так же :). И вот это и есть unix-way, когда все делается просто и логично, без чрезмерного усложнения сущностей. Это обеспечивает простоту, быстроту, безглючность.
>Сколько времени у тебя займёт написание программ для работы с датчиками/камерой
>/акселерометром для Nokia?А что, вызовы открытия и чтения файла соотв. датчику - это теперь какая-то ракетная наука чтоли? Я что-то пропустил? oO Работа с камерой через гстример тоже была описана дофига раз, айбиэмом и кем там блин еще. Более того - есть целая куча открытых программ из которых можно просто скопипастить нужный код (ессно соблюдая лицензию).
А что до явы - почему-то у гугли вечно неуспевание за прогрессом. Поначалу даже блютус не осилили реализовать нормально, блин. Это при том что в нокиях он 100500 лет был.
Ну что поделать, выпейте яду. Я любитель джавы, а гугл молодцы. И делают всё правильно. А вы тут только воздух портите. Если не можете понять, то сразу надо громко обгавкать. Слон и моська. Тьфу.
>Слон и моська. Тьфу.Вы еще забыли добавить что все пи...сы а вот вы - Д`Артаньян.
Кто знает, поддержали ли они C++ exceptions в этом bundle?
Похоже, C++ exceptions они не поддержали. Однако можно пересобрать toolchain и всё будет.С wchar/mbstate/iconv всё похуже --- это libc, который в device'е не поменяешь.
Вот бы они таки реализовали поддержку unicode... я получил массу удовольствия отлаживая креши в портируемом коде, пока не заглянул в их wchar.h:/* IMPORTANT: Any code that relies on wide character support is essentially
* non-portable and/or broken. the only reason this header exist
* is because I'm really a nice guy. However, I'm not nice enough
* to provide you with a real implementation. instead wchar_t == char
* and all wc functions are stubs to their "normal" equivalent...
*/т.е. всё компилится, но в рантайме творится ерунда :)
ужас... вот это реально очень плохо =(
Ага, представьте себе как я злился на этого болвана :)Уж лучше бы он вообще не трогал эти функции, тогда я бы получил ошибки компиляции или линковки и сразу понял в чём дело. Ведб не каждый день при отладке программ подозрение падает на wcslen :)
ну и как это с java интегрируется?
oO Java тут какбы ни при чём. Если ты пишешь нативный код JNI-модуля под Андроид, то поддержки unicode нету. Для этого можно использовать что-нибудь вроде dietlibc, если лицензия позволяет, или написать самому нужные функции для работы с широкими строками, благо они не ахти какие сложные.
>oO Java тут какбы ни при чём.а если банально из java в библиотеку на С нужно строку (на русском) передать?
опять перекодировками заниматься?зы:
ну iconv вроде как iconv() as part of the GNU C Library which is the C library for current Linux systems http://en.wikipedia.org/wiki/Iconv
про андроид не в курсе.
> а если банально из java в библиотеку на С нужно строку (на русском) передать?опять перекодировками заниматься?
JNI умеет представлять Java-строку в виде UTF-8 или UTF-16 для сишного кода. С UTF-8 работает функция strchr.
> ну iconv вроде как iconv() as part of the GNU C Library which is the C library for current Linux systems http://en.wikipedia.org/wiki/Iconv
про андроид не в курсе.
Там не glibc, а кастомная и очень небольшая libc, которая реализует подмножество стандарта. iconv там нету :(
>JNI умеет представлять Java-строку в виде UTF-8 или UTF-16 для сишного кода.вот именно.
>С UTF-8 работает функция strchr.это вот эта что-ли?
>char *strchr(string,c); находит первое вхождение c в string. char *string - источник; int c - поисковый символну-ну.
>Там не glibc, а кастомная и очень небольшая libc, которая реализует подмножество стандарта. iconv там нету :(могли бы и EGLIBC взять. там есть.
> это вот эта что-ли?
>> char *strchr(string,c); находит первое вхождение c в string. char *string - источник; int c - поисковый символ
> ну-ну.Ваша правда, я ошибся (исходник в UTF-8):
strlen("сорок девять") == 23
wcslen(L"сорок девять") == 12
Здравствуйте уважаемые, а не расскажете про теоретическую возможность переноса сего окружения на мамео? Что мешает запускать софт от андроида на n900?
>Здравствуйте уважаемые, а не расскажете про теоретическую возможность переноса сего окружения на
>мамео? Что мешает запускать софт от андроида на n900?Nokia этого не допустит всеми силами и судебными тяжбами. Разве не ясно?
>Что мешает запускать софт от андроида на n900?а что там запускать то?
>Что мешает запускать софт от андроида на n900?Наверное то что андроид - столь замечательная платформа что вообще ни с кем и ни с чем кроме себя ... несовместим. То есть, если софт под андроид, он под андроид. И баста. А если платформа вдруг бац и не андроид оказалась - вы немного пролетаете. Очень интересное понимание портабельности гуглем, я бы сказал. Чем-то на MS похоже. У тех работает только в винде, а у гугли - только в андроиде.
А так есть конечно порт андроида для n900, только вот он судя по всему никому не нужен. А нафига? Полноценный линух грамотно адаптированный к мелкому экрану гораздо прикольнее нестандартных ява-фиговин и нестандартных средств запуска нативного кода через задницу с мизером библиотек и невозможностью их по людски доустановить. У нокии с другой стороны нормальный манагер пакетов, etc. Ну, в общем полноценная система без велосипедизмов.
Согласен!
Кстати, я когда-то, очень давно, занимался той же ерундой, что и андроид для n900 - QNX 6.2.1 на HP Ipaq 3750.
Правда надо сказать, что работал QNX замечательно, но надобности в нем не было ни какой :)