ANDROID и Лаза - Вилы вильные! :(

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Re: ANDROID и Лаза - Вилы вильные! :(

Сообщение Mirage » 20.09.2013 23:56:33

Вот интересно что можно делать в таком чистом нативном приложении?
Можно ли обратиться к тач-скрину, к openGL'у, создать интент (ну, к примеру камерой сфоткать что-то)?
Т.е. понятно что как-то можно, но насколько гиморно?
Что-то мне подсказывает, что эти приблуды, позволяющие LCL на андроиде использовать, работают через Dalvik-приложение.
Mirage
энтузиаст
 
Сообщения: 881
Зарегистрирован: 06.05.2005 20:29:07
Откуда: Russia

Re: ANDROID и Лаза - Вилы вильные! :(

Сообщение hinst » 21.09.2013 20:26:17

Mirage насчёт LCL на андроид, там действительно собственно Activity запускается из java-класса, и она уже подцепляет приложение на LCL. Это тот вариант, который предлагается на данный момент в этой статье http://wiki.lazarus.freepascal.org/Cust ... ce/Android

Однако:
Возможно вести разработку на FPC для андроида без Java вообще. При этом даже на компьютере, на котором будет вестись разработка, даже не должна быть установлена Java и Eclipse.
Возможно это благодаря тому, что, как вот здесь описано: http://developer.android.com/reference/ ... ivity.html
в Android 2.3 ввели фичу, чтобы делать Activity на C. вот тут какие-то примерчики:
http://sourceforge.net/p/lazarus-ccr/sv ... pengltest/
http://sourceforge.net/p/lazarus-ccr/sv ... gltest.pas
Можно посмотреть, как в в статье про NativeActivity приведён код, и как тот же код используется в ndkopengltest.pas в примерчике, но уже сделано всё на FPC, но так как ведру, поддерживающему NativeActivity, не важно, на чём написан код, главное, чтобы был бинарный файл был........ короче не вижу особого смысла дальше всё в подробностях объяснять; надеюсь что всё уже ясно. Таким образом, можно уже сейчас вести разработку приложений для ведра (2.3 и новее, разумеется) не связываясь с жабой вообще. Особенно учитывая, что заголовочные файлы для NativeActivity для C уже портированы (см. пример - там они используются как модули паскаля). Надо только прикрутить какой-нибудь OpenGL-ES движок туда, и можно пилить пользовательский интерфейс. без жабы
Аватара пользователя
hinst
энтузиаст
 
Сообщения: 781
Зарегистрирован: 12.04.2008 18:32:38

Re: ANDROID и Лаза - Вилы вильные! :(

Сообщение Mirage » 22.09.2013 00:09:21

Это здорово, хотя интенты еще год назад из нативного приложения использовать было нельзя. Точнее через вызов специальной команды можно, но это не то. Как сейчас не знаю.
Другой вопрос какой в смысл "не связываться с жабой"?
Производительность? На десктопе жаба может порвать не то что FPC или Delphi (этим бы JavaScript обогнать), но даже С++. В Далвике JIT послабее, но каков код генерируемый FPC для ARM? Был бы LLVM другое дело.
Mirage
энтузиаст
 
Сообщения: 881
Зарегистрирован: 06.05.2005 20:29:07
Откуда: Russia

Re: ANDROID и Лаза - Вилы вильные! :(

Сообщение SeZuka » 22.09.2013 14:35:19

Mirage писал(а):На десктопе жаба может порвать не то что FPC или Delphi (этим бы JavaScript обогнать), но даже С++

Улыбнуло :)
Можно хоть один пример.
SeZuka
постоялец
 
Сообщения: 209
Зарегистрирован: 05.09.2012 14:58:05

Re: ANDROID и Лаза - Вилы вильные! :(

Сообщение SSerge » 22.09.2013 14:43:42

ThreeCat-nev писал(а):КАК ЭТО ЛЕЧИТЬ ????


Тыкать кнопку "пропустить". Это известный баг CodeTyphon, идущий еще с версии 4.30, нWамудрено с кросс-линками некоторых гейм-макерских вендовых библиотек. Кстати, из-за этих библиотек поделие до сих пор неработоспособно на native Windows XP )). Уж на андроидный код это точно никак не повлияет.

Добавлено спустя 3 минуты 10 секунд:
SeZuka писал(а):Можно хоть один пример.


...с одним исключением - "жаба может порвать не то что FPC или Delphi , но даже С++ исключительно при обработке строковой информации", во всем остальном она по скорости обычно серьёзно уступает.
SSerge
энтузиаст
 
Сообщения: 971
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Re: ANDROID и Лаза - Вилы вильные! :(

Сообщение Mirage » 22.09.2013 16:52:44

SeZuka:
Пример чего? Бенчмарки разные есть, в том числе и с таким результатом. Хотя это нетипично конечно.
http://en.wikipedia.org/wiki/Java_perfo ... _languages
SSerge:
Про обработку строк откуда инфа? Тут я бы как раз на Дельфи поставил, особенно если уникод не нужен.

Слабое место явы - сборка мусора(GC). Если много выделений памяти, то рано или поздно начнутся тормоза с любым видом GC, даже G1. Хотя сейчас скорее поздно, чем рано. Впрочем, на Андроиде рано начнутся.:)
Однако это можно учесть и избежать тормозов, что сделали, например JetBrains.
Плюс еще некоторые оптимизации недоступны, т.к. например нет адресной арифметики и много чего еще.
Это более-менее успешно компенсирует JIT.
Числодробилки будут оптимизироваться JIT'ом до нативной скорости, он вообще чудеса творить умеет - виртуальный метод, например, заинлайнить.
Это я к тому что говорить сейчас, что Java медленная некорректно. На самом деле, чтобы быть быстрее жабы надо иметь ОЧЕНЬ хороший компилятор. А просто компиляции в нативный код и близко недостаточно. Оно проигрывает даже принципиально медленному жабаскрипту.
Mirage
энтузиаст
 
Сообщения: 881
Зарегистрирован: 06.05.2005 20:29:07
Откуда: Russia

Re: ANDROID и Лаза - Вилы вильные! :(

Сообщение SSerge » 22.09.2013 18:12:32

Mirage писал(а):чтобы быть быстрее жабы надо иметь ОЧЕНЬ хороший компилятор


Чтобы быть быстрее жабы, достаточно иметь одноядерный процессор. :D По всем моим попыткам тестирования, при подобного рода аппаратуре, жаба сливает в разы. И со строками, кстати, тоже.

Mirage писал(а):Тут я бы как раз на Дельфи поставил, особенно если уникод не нужен.


Ну и зря вы на него ставите. :D Чтобы достичь более-менее оптимальной скорости практически на всех языках, компилируемых в нативный машинный код, приходится тщательнейше оптимизировать работу с переменными, память для которых (и память для промежуточных значений тоже) выделяется компилятором. Без этого получается удивительно медленный код, за счет беспорядочного генерирования компилятором промежуточных лишних присваиваний и пересылок блоков памяти. Засим, у меня почему-то по факту всегда получалось, что C# и JAVA при работе со строками в коде, написанном естественно абы как по логике обработки всегда обгоняют FreePascal при прямом переводе кода. Но, опять же, на процессорах типа Core i5 и иже с ними. В С++ STL строки - вообще чертовски медлительная конструкция, почти вне всякой конкуренции, но вот FreePascal UnicodeStrings - шедевр деградации производительности, увы.
Про дельфу ничего не могу сказать, мне его запрещено незаконно использовать. ))
SSerge
энтузиаст
 
Сообщения: 971
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Re: ANDROID и Лаза - Вилы вильные! :(

Сообщение Mirage » 22.09.2013 20:02:23

SSerge:
SSerge писал(а):Чтобы быть быстрее жабы, достаточно иметь одноядерный процессор. По всем моим попыткам тестирования, при подобного рода аппаратуре, жаба сливает в разы. И со строками, кстати, тоже.

Многопоточность это отдельная тема. Грамотно воспользоваться несколькими ядрами сложно и в яве, хотя там сильно помогает модель памяти и гарантии с её стороны. Аналог для С++ появился только в С++11.
А вот в Delphi появился ARC с блокировками при работе с классами. Тут потоки будут по очереди выполняться, ага.:(
Насчет тестирования - не поделитесь кодом тестов? Я бы их прогнал, настроив и "разогрев" предварительно JIT. И дельфа вполне законная имеется.
Mirage
энтузиаст
 
Сообщения: 881
Зарегистрирован: 06.05.2005 20:29:07
Откуда: Russia

Re: ANDROID и Лаза - Вилы вильные! :(

Сообщение hinst » 23.09.2013 01:31:40

Java рвёт C++ и FPC по потреблению памяти, на Андроид если скомпилить пустое приложение, оно сразу занимает в оперативной памяти 18 мегабайт. Кто не верит - может посмотреть в любом нормальном диспетчере задач для андроида. Ни одно приложение не может занимать меньше 18 мегабайт в принципе. +9 мегабайт "Shared" - это типа память, которая так же используется другими приложениями (кто не в курсе - в винде тоже shared-память есть, например, если каждое приложение использует user32.dll, библиотека в памяти будет загружена только один раз)

На Windows Moblie 6.5 браузер Opera с поддержкой JavaScript и прочего занимал 10 мегабайт. А простенькие приложения в 100 килобайт укладывались. (Я здесь всюду говорю об оперативной памяти)
Аватара пользователя
hinst
энтузиаст
 
Сообщения: 781
Зарегистрирован: 12.04.2008 18:32:38

Re: ANDROID и Лаза - Вилы вильные! :(

Сообщение debi12345 » 23.09.2013 09:37:27

Не наезжайте на "андрюшу" :) Только благодаря ему (точнее монстроидальным аппаратным требованиям GUI Java-ы) в массовом "сегменте" сейчас имеем 2+ ядерные 2+ ГГц мобильные процы, 3D-акселераторы, батареи 2000+ МАч. С одним маааааленьким минусом - один фиг зарядки аппарата хватает на 1..2 дня.
Есть конечо в разы более экономичные платформы того же класса - например BADA. Жаль,что она пока не портирована.
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5761
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Re: ANDROID и Лаза - Вилы вильные! :(

Сообщение ZeUsM » 23.09.2013 10:18:38

debi12345 писал(а):С одним маааааленьким минусом - один фиг зарядки аппарата хватает на 1..2 дня.

HTC One X+ абсолютно нормально живет неделю с выключенным фай-фаем. Всё включено 3 дня легко.
Аватара пользователя
ZeUsM
новенький
 
Сообщения: 57
Зарегистрирован: 08.11.2010 13:55:35
Откуда: Нерезиновая

Re: ANDROID и Лаза - Вилы вильные! :(

Сообщение debi12345 » 23.09.2013 10:41:53

Всё включено 3 дня легко.

3 дня с вайфаем и синезубом ?! Тип и емкость батареи ? Атомная что ли ?
У меня приятель купил один из последних HTC, с большим экраном но не AMOLED-овский - каждые два дня заряжает. Даже тренирвка батереи не спасает. Юзает умеренно - в основном софт, использующий экран - медиаплэйеры, букридер, GPS, веб-браузер,..
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5761
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Re: ANDROID и Лаза - Вилы вильные! :(

Сообщение ZeUsM » 23.09.2013 11:22:24

debi12345 писал(а):
Всё включено 3 дня легко.

3 дня с вайфаем и синезубом ?! Тип и емкость батареи ? Атомная что ли ?
У меня приятель купил один из последних HTC, с большим экраном но не AMOLED-овский - каждые два дня заряжает. Даже тренирвка батереи не спасает. Юзает умеренно - в основном софт, использующий экран - медиаплэйеры, букридер, GPS, веб-браузер,..

Встроенный литий-ионный аккумулятор
Емкость:2300 мАч
не знаю, какой "один из последних", у этого самый мощный акк. из всей линейки HTC и вроде на рынке тоже.
Гарнитурами не пользуюсь, поэтому не вижу необходимости в синезубе. 3 дня спокойно выживает.
Почитать книжку в метро по дороге туда-обратно, фейсбуки, твиттеры, музыку иногда послушать. Выключенный фай-фай, кино, музыка, книга - неделя.
Аватара пользователя
ZeUsM
новенький
 
Сообщения: 57
Зарегистрирован: 08.11.2010 13:55:35
Откуда: Нерезиновая

Re: ANDROID и Лаза - Вилы вильные! :(

Сообщение debi12345 » 23.09.2013 12:07:05

Неделя активного юзания не-AMOLED-скрина ?! Аккумулятор - зверь !
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5761
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Re: ANDROID и Лаза - Вилы вильные! :(

Сообщение Mirage » 23.09.2013 17:55:48

hinst писал(а):Java рвёт C++ и FPC по потреблению памяти, на Андроид если скомпилить пустое приложение, оно сразу занимает в оперативной памяти 18 мегабайт.


Это же хип, т.е. кусок памяти, выделяемый одномоментно, который собсно и используется как память java-приложением. Хотя сразу столько не должно отжирать - что-то с настройками девайса, либо приложения, а скорее всего диспетчера погоду на марсе показывают.
Многоядерность и 3D акселерация к тормозам явы никакого отношения не имеют и никак здест не помогают, да и GUI в андроиде не на яве написан. Они были введены по какой-то другой причине.:)
Mirage
энтузиаст
 
Сообщения: 881
Зарегистрирован: 06.05.2005 20:29:07
Откуда: Russia

Пред.След.

Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 219

Рейтинг@Mail.ru