Qt и Андроид
От: AlexGin Беларусь  
Дата: 02.04.16 10:43
Оценка:
Доброе время суток, уважаемые коллеги!

Вот интересный вопрос — можно ли на Qt5 создавать приложения для мобильных девайсов на андроиде?
Я так понял, что вообще-то можно. Какие тут есть грабли?
Что более популярно для подобных разработок Qt или Java?

Заранее благодарю за любые соображения!
Re: Qt и Андроид
От: AlexGin Беларусь  
Дата: 02.04.16 10:50
Оценка:
Еще такой момент — вот эта штука:
https://sourceforge.net/p/necessitas/home/necessitas/
серьезна или нет?

P.S. Вопрос пока только для общего развития.
Практически я плотно занят desktop системами и пока не планирую переходить на мобильные...
Re[2]: Qt и Андроид
От: Igore Россия  
Дата: 02.04.16 11:00
Оценка:
Здравствуйте, AlexGin, Вы писали:

AG>Еще такой момент — вот эта штука:

AG>https://sourceforge.net/p/necessitas/home/necessitas/
AG>серьезна или нет?
Current release is Necessitas alpha 4 (27 Aug 2012) похоже не взлетело, а жаль.
Re: Qt и Андроид
От: velkin Удмуртия http://blogs.rsdn.org/effective/
Дата: 02.04.16 14:35
Оценка: 21 (5) :)
Здравствуйте, AlexGin, Вы писали:

AG>Вот интересный вопрос — можно ли на Qt5 создавать приложения для мобильных девайсов на андроиде?

AG>Я так понял, что вообще-то можно. Какие тут есть грабли?
AG>Что более популярно для подобных разработок Qt или Java?
AG>Заранее благодарю за любые соображения!

Попробуйте запустить на андроиде приложение "Debian noroot" или что-то в таком же роде. Суть в том, что десктопные приложения в том числе ваши могли бы прекрасно работать на смартфонах и планшетах. Вместо этого каждая фирма — Apple, Google и Mircrosoft лепят свои поделия, вроде как предлагают разработчикам перейти на их фреймворки.

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

Иначе говоря если вами написано приложение на Qt в Windows, то оно должно так же работать в GNU/Linux, BSD, MacOSX и прочих операционках с различной архитектурой процессора, x86, x64, arm и так далее, то есть применительно к последним на микрокомпьютерах (один из самых известных raspberry pi), смартфонах, планшетах. А в итоге нас разработчиков прокидывают с нативным запуском и всё ради бабла.

Лично я считаю, что вся это мобильная разработка в том виде, в котором она сейчас существует попросту загнётся. Это не помешает вышеуказанным компаниям доить пользователей через свои магазины ещё много лет, но конец всё равно один.
Re: Qt и Андроид
От: Pzz Россия https://github.com/alexpevzner
Дата: 02.04.16 14:45
Оценка:
Здравствуйте, AlexGin, Вы писали:

AG>Вот интересный вопрос — можно ли на Qt5 создавать приложения для мобильных девайсов на андроиде?


Ну, как миниму, достаточно широко известная программа 2ГИС написана именно на Qt.

AG>Я так понял, что вообще-то можно. Какие тут есть грабли?

AG>Что более популярно для подобных разработок Qt или Java?

Андройд — это ведь не только ARM. Как минимум, телефоны на x86 уже можно купить. Полагаю, если программа транслируется не в явовский байт-код, а в нативные коды просессора, ее распостранение имеет какие-то свои особенности.
Re[2]: Qt и Андроид
От: AlexGin Беларусь  
Дата: 02.04.16 16:57
Оценка:
Здравствуйте, Pzz, Вы писали:

AG>>Я так понял, что вообще-то можно. Какие тут есть грабли?

AG>>Что более популярно для подобных разработок Qt или Java?

Pzz>Андройд — это ведь не только ARM. Как минимум, телефоны на x86 уже можно купить. Полагаю, если программа транслируется не в явовский байт-код, а в нативные коды просессора, ее распостранение имеет какие-то свои особенности.


В контексте данного вопроса, я предполагал абстрагирование от типа процессора на мобильном девайсе — просто работа приложения в ОС Андроид.
Я понимаю, что есть варианты/подварианты среды выполнения, которые завязаны на тип процессора.
Но в то же время, должны иметься механизмы (компиляторы, кросс-компиляторы, линкеры и т.д.) — обеспечивающие переносимость приложения
под разные МП-архитектуры. Даже если и потребуется иметь отдельный исполнимый код для разных МП — это не самое страшное. ИМХО намного хуже —
если для каких-либо популярных МП-архитектур для Андроида ПОПРОСТУ НЕТ инструментария для трансляции кодов приложения на Qt.
Re[2]: Qt и Андроид
От: alpha21264 СССР  
Дата: 02.04.16 18:07
Оценка: 8 (2)
Здравствуйте, AlexGin, Вы писали:

AG>Еще такой момент — вот эта штука:

AG>https://sourceforge.net/p/necessitas/home/necessitas/
AG>серьезна или нет?

Это ты очень старую ссылку накопал. Вот поновее:
http://doc.qt.io/qt-5/androidgs.html

В результате выполнения этой инструкции получаешь KDeveloper,
в котором можешь переключаться — Нормальный_Линукс/Андроид.

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

Андроидная версия имеет глюки, которых нет в "нормальном" Qt.
Например MDI не работает. (В той версии, с которой я трахался (в плохом смысле)).

Мой печальный опыт:
http://alpha21264.livejournal.com/1272.html

Течёт вода Кубань-реки куда велят большевики.
Re[2]: Qt и Андроид
От: velkin Удмуртия http://blogs.rsdn.org/effective/
Дата: 02.04.16 19:36
Оценка: 5 (2)
Здравствуйте, Pzz, Вы писали:

Pzz>Андроид — это ведь не только ARM. Как минимум, телефоны на x86 уже можно купить. Полагаю, если программа транслируется не в явовский байт-код, а в нативные коды процессора, ее распространение имеет какие-то свои особенности.


Не только, у меня есть нетбук Acer Aspire One Happy чуть ли не 2010 года с процессором Intel Atom, так там с предустановкой шла лицензионная Windows 7 Starter и старый Android, который если кто-то забыл Linux. Суть проблемы:

Если мы не начинаем с путаницы, ситуация проста: Android содержит Linux, но не GNU; таким образом, Android и GNU/Linux в основном различны, потому что их объединяет только Linux.

А вот Debian и прочие это GNU/Linux, смартфонам же и планшетам без разницы, что держать на борту, можно было бы накатить и GNU/Linux, но тогда возникает вторая проблема:

Важные программы для подсистем и драйверы, как правило, также несвободны. Они отвечают за связь телефона с радиосетью, трехмерную графику, WiFi, bluetooth, GPS, камеру, динамик, а в некоторых случаях и микрофон. На некоторых моделях несколько из этих драйверов свободно, и есть такие, без которых можно обойтись,— но без микрофона и телефонной радиоаппаратуры вы не обойдетесь.

Смартфоны и планшеты специально делают так, чтобы при попытке переустановить операционку они превращались в "кирпичи". Но на том же нетбуке у меня прекрасно уживаются Windows, Debian и старый Android, потому что компьютер не рутовали от меня, его пользователя и владельца. На самом деле даже без рут доступа можно для начала накатить на смартфон или планшет тот же Debian и уже там компилировать и запускать свои дескотпные приложения.

Или взять ту же Java и .NET, которые вроде как по обещаниям в теории должны работать везде (и маленьким шрифтом где поддерживается платформа). Вопрос, много они на смартфонах запускаются. Или вспомнить хотя бы какие усилия были приложены OpenJDK, Mono. Сейчас Microsoft пытается жёстко нагнуть пользователей со своей десяткой, но крыть нечем, разработчики не больно спешат в Windows Store.

А Google и Apple хоть и на коне, и вычислительной мощи в современных смартфонах и планшетах не мало, но уровень приложений по сравнению с десктопами оставляет желать лучшего. Сейчас идёт новая волна революций, это виртуальная и дополненные реальности. Причём виртуальную можно получить просто затемнив от проникновения внешнего света экраны дополненной. Вот и посмотрим как долго мобилы продержатся со своими тетрисами в андроидах и иосах, опять же микрокомпьютеры никто не отменял.

Vuzix M2000AR
Re[3]: Qt и Андроид
От: AlexGin Беларусь  
Дата: 02.04.16 20:36
Оценка:
Здравствуйте, уважаемый alpha21264, Вы писали:

A>... Вот поновее:

A>http://doc.qt.io/qt-5/androidgs.html
Спасибо, интересная ссылочка.

A>В результате выполнения этой инструкции получаешь KDeveloper,

A>в котором можешь переключаться — Нормальный_Линукс/Андроид.
...а — то есть этот пакет разработчика, предполагает, что на инструментальной машине (на которой ведём разработку) — установлена ОС Linux?
Я верно понимаю?

A>Вообще, процесс такого программирования сопровождается матюгами.

A>Которые начинаются с момента инсталяции тулзов разработчика.
A>Например мне удалось скрестить их на одной машине и не удалось на другой.
A>Версии не совпали, одна из этих тулзовин изменила структуру каталогов, а вторая не отреагировала.
Выделенная проблема имеет какое-либо рациональное объяснение (аппаратурная конфигурация, версия ОС или что-то другое)?

A>Андроидная версия имеет глюки, которых нет в "нормальном" Qt.

A>Например MDI не работает. (В той версии, с которой я трахался (в плохом смысле)).
Я пользуюсь Андроидом на смартфоне (пока я в нем — только как пользователь).
В актуальности MDI для таких устройств — у меня сомнения. А надо ли это?

A>Мой печальный опыт:

A>http://alpha21264.livejournal.com/1272.html
Спасибо, твой опыт впечатляет.
Насчет выбора Java/Qt я не знаю, что правильнее для мобильных платформ.
Лично мне C++ нравится больше (возможно потому, что имею в этом намного больший опыт).
Re[4]: Qt и Андроид
От: alpha21264 СССР  
Дата: 08.04.16 14:42
Оценка:
Здравствуйте, AlexGin, Вы писали:

AG>Здравствуйте, уважаемый alpha21264, Вы писали:


A>>В результате выполнения этой инструкции получаешь KDeveloper,

A>>в котором можешь переключаться — Нормальный_Линукс/Андроид.
AG>...а — то есть этот пакет разработчика, предполагает, что на инструментальной машине (на которой ведём разработку) — установлена ОС Linux?
AG>Я верно понимаю?

Ну, в смысле у меня был Линукс установлен.
В принципе можно ставить и на Винду (но я не пробовал).
Возможно на Винде появится вкладка "сделать для Винды".
Кстати, если будешь пробовать, то напиши мне, что получилось.
Потому что я уже разучился программировать под Винду, а необходимость иногда бывает.

Галка "сделать для нормального Линукса" удобна тем,
что можешь отлаживать поведение программы на большой машине,
и только в последний момент переключиться на Андроид,
чтобы обработать уже совсем тонким напильником.

A>>Вообще, процесс такого программирования сопровождается матюгами.

A>>Которые начинаются с момента инсталяции тулзов разработчика.
A>>Например мне удалось скрестить их на одной машине и не удалось на другой.
A>>Версии не совпали, одна из этих тулзовин изменила структуру каталогов, а вторая не отреагировала.
AG>Выделенная проблема имеет какое-либо рациональное объяснение (аппаратурная конфигурация, версия ОС или что-то другое)?

Это три разных тулзовины, которые делают три разные группы разработчиков.
В идеале они должны быть настроены друг на друга.
Но в реальности это не всегда так.
Кстати, Версию Линукса тоже пришлось сменить.

A>>Андроидная версия имеет глюки, которых нет в "нормальном" Qt.

A>>Например MDI не работает. (В той версии, с которой я трахался (в плохом смысле)).
AG>Я пользуюсь Андроидом на смартфоне (пока я в нем — только как пользователь).
AG>В актуальности MDI для таких устройств — у меня сомнения. А надо ли это?

Ну мне было надо, тебе может быть и не очень.
Я это к тому, что если там есть одни баги, значит могут быть и другие.

AG>Насчет выбора Java/Qt я не знаю, что правильнее для мобильных платформ.

AG>Лично мне C++ нравится больше (возможно потому, что имею в этом намного больший опыт).

Я тоже предпочитаю C++/Qt по причине того, что лучше их знаю. Тут уж сам смотри.
Кто будет больше глючить — ты сам от незнания платформы Java или сыроватый инструмент.

Течёт вода Кубань-реки куда велят большевики.
Re[5]: Qt и Андроид
От: AlexGin Беларусь  
Дата: 08.04.16 19:59
Оценка:
Здравствуйте, уважаемый alpha21264, Вы писали:

A>Ну, в смысле у меня был Линукс установлен.

A>В принципе можно ставить и на Винду (но я не пробовал).
A>Возможно на Винде появится вкладка "сделать для Винды".
A>Кстати, если будешь пробовать, то напиши мне, что получилось.
A>Потому что я уже разучился программировать под Винду, а необходимость иногда бывает.

Пока эти вопросы — только "прощупывание" почвы. Просматривание ситуации вперёд.
Реальные работы под Андроид — пока для меня "вилами по воде"...
На сегодняшний день — у меня огромный фронт работ на настольных системах (при этом главная ОС — Windows).

A>Галка "сделать для нормального Линукса" удобна тем,

A>что можешь отлаживать поведение программы на большой машине,
A>и только в последний момент переключиться на Андроид,
A>чтобы обработать уже совсем тонким напильником.
Ну это также очень полезно.

A>>>Вообще, процесс такого программирования сопровождается матюгами.

A>>>Которые начинаются с момента инсталяции тулзов разработчика.
A>>>Например мне удалось скрестить их на одной машине и не удалось на другой.
A>>>Версии не совпали, одна из этих тулзовин изменила структуру каталогов, а вторая не отреагировала.
AG>>Выделенная проблема имеет какое-либо рациональное объяснение (аппаратурная конфигурация, версия ОС или что-то другое)?

A>Это три разных тулзовины, которые делают три разные группы разработчиков.

A>В идеале они должны быть настроены друг на друга.
A>Но в реальности это не всегда так.
A>Кстати, Версию Линукса тоже пришлось сменить.
А какая на сегодня наиболее актуальная — для таких вот занятий — версия Линукса?

A>>>Андроидная версия имеет глюки, которых нет в "нормальном" Qt.

A>>>Например MDI не работает. (В той версии, с которой я трахался (в плохом смысле)).
AG>>Я пользуюсь Андроидом на смартфоне (пока я в нем — только как пользователь).
AG>>В актуальности MDI для таких устройств — у меня сомнения. А надо ли это?

A>Ну мне было надо, тебе может быть и не очень.

На маленьком экранчике MDI — как-то не эргономично. Я об этом.

A>Я это к тому, что если там есть одни баги, значит могут быть и другие.


Сложно назвать программный продукт, где их нет вообще (скорее всего — такой продукт отсутствует в природе).
Другое дело, что например в Borland C++ Builder-их целое полчище, в MSVS-бывают отдельные "особи".
Что касается QtCreator, то в новых версиях я их (пока?) не замечал, а вот в старом (за 2009 год) они иногда всплывали.

AG>>Насчет выбора Java/Qt я не знаю, что правильнее для мобильных платформ.

AG>>Лично мне C++ нравится больше (возможно потому, что имею в этом намного больший опыт).

A>Я тоже предпочитаю C++/Qt по причине того, что лучше их знаю. Тут уж сам смотри.

A>Кто будет больше глючить — ты сам от незнания платформы Java или сыроватый инструмент.
Здесь весь вопрос в том, что, если припрёт, "мои глюки" я смогу пофиксить относительно быстро
(подсмотреть решение в Internete, в книгах, спросить здесь, додуматься самому и т.д.).
А вот ждать выпуска нового инструмента, который пилит за-бесплатно группа энтузиастов — может и не хватить жизни
Re[6]: Qt и Андроид
От: SaZ  
Дата: 11.04.16 07:02
Оценка:
Здравствуйте, AlexGin, Вы писали:

AG>А вот ждать выпуска нового инструмента, который пилит за-бесплатно группа энтузиастов — может и не хватить жизни


1) Qt, включая QtCreator — это опенсорс. Нет никакой проблемы пофиксить там баг, если он будет найден. Код у них очень понятный и легко читаемый. Пару раз так и делал.
2) Далеко не за бесплатно и не группа энтузиастов, а команда профессионалов.
Re[7]: Qt и Андроид
От: AlexGin Беларусь  
Дата: 11.04.16 13:00
Оценка:
Здравствуйте, уважаемый SaZ, Вы писали:

SaZ>Здравствуйте, AlexGin, Вы писали:


AG>>А вот ждать выпуска нового инструмента, который пилит за-бесплатно группа энтузиастов — может и не хватить жизни


SaZ>1) Qt, включая QtCreator — это опенсорс. Нет никакой проблемы пофиксить там баг, если он будет найден. Код у них очень понятный и легко читаемый. Пару раз так и делал.

SaZ>2) Далеко не за бесплатно и не группа энтузиастов, а команда профессионалов.
+100500
В данном случае — я подразумевал, НЕ QtCreator!
В отличном качестве такого продукта, как QtCreator — я уже убедился!

Я подразумевал то, что является "мостиком": Qt <---> Android.
По словам товарища (alpha21264) — я понял, что кроме непосредственно инструментария Qt, там применяются ещё некоторые утилиты — это было замечание о них.
Какие производители их делают — не знаю.

P.S. Меня насторожило это:

Это три разных тулзовины, которые делают три разные группы разработчиков.
В идеале они должны быть настроены друг на друга.
Но в реальности это не всегда так.
Кстати, Версию Линукса тоже пришлось сменить.

Отредактировано 11.04.2016 13:03 AlexGin . Предыдущая версия .
Re[8]: Qt и Андроид
От: SaZ  
Дата: 11.04.16 13:24
Оценка: 4 (1) +1
Здравствуйте, AlexGin, Вы писали:

AG>Я подразумевал то, что является "мостиком": Qt <---> Android.

AG>По словам товарища (alpha21264) — я понял, что кроме непосредственно инструментария Qt, там применяются ещё некоторые утилиты — это было замечание о них.
AG>Какие производители их делают — не знаю.

Разницы нет. Там всё — open source. Да, придётся один раз повозиться с настройками. Но я не вижу в этом никакой проблемы.
Ошибки возможны везде. И практически все ошибки обходятся. Вот тот же decltype в msvc постоянно работает не так, как надо. Хотя в 2015 update 2 вроде всё ок.
Re: Qt и Андроид
От: Skorodum Россия  
Дата: 12.04.16 10:34
Оценка:
Здравствуйте, AlexGin, Вы писали:

Год или два назад just for fun написал решалку квадратных уравнений с племянником на QML.
Больше всего времени заняло скачивание Qt.
Re[3]: Qt и Андроид
От: Zhendos  
Дата: 18.04.16 08:29
Оценка: 4 (1)
Здравствуйте, Igore, Вы писали:

I>Здравствуйте, AlexGin, Вы писали:


AG>>Еще такой момент — вот эта штука:

AG>>https://sourceforge.net/p/necessitas/home/necessitas/
AG>>серьезна или нет?
I>Current release is Necessitas alpha 4 (27 Aug 2012) похоже не взлетело, а жаль.

Взлетело, это был отдельный от mainstream порт для Qt4, в Qt5 эти наработки
интегрировали уже в mainline и теперь они часть Qt:
http://blog.qt.io/blog/2012/11/08/necessitas-android-port-contributed-to-the-qt-project/
Re[2]: Qt и Андроид
От: Zhendos  
Дата: 18.04.16 08:40
Оценка: 2 (1)
Здравствуйте, velkin, Вы писали:

V>Здравствуйте, AlexGin, Вы писали:


AG>>Вот интересный вопрос — можно ли на Qt5 создавать приложения для мобильных девайсов на андроиде?

AG>>Я так понял, что вообще-то можно. Какие тут есть грабли?
AG>>Что более популярно для подобных разработок Qt или Java?
AG>>Заранее благодарю за любые соображения!

V>Попробуйте запустить на андроиде приложение "Debian noroot" или что-то в таком же роде. Суть в том, что десктопные приложения в том числе ваши могли бы прекрасно работать на смартфонах и планшетах. Вместо этого каждая фирма — Apple, Google и Mircrosoft лепят свои поделия, вроде как предлагают разработчикам перейти на их фреймворки.


Да, в основе android linux ядро, поэтому если написать реализацию Xов использующую
android opengl (скорее все уже написана), а само приложение просто компилировать кросс компмилятором,
и при инсталяции положить рядом с приложение glibc,libstdc++ и остальные то десктопное
приложение должно без проблем заработать.

Но не все делают из-за того что хотят бабла и пипл хавает.
Десктопные приложения расчитаны на мышь, и элементы интерфейса
неудобны для нажатия пальцем, вроде бы невелика проблема,
но переделать то нужно каждое окно. Плюс приложение если у него
нет фокуса должно дать заснуть ОС, т.е. со всякими таймерами и потоками
нужно разобраться. Т.е. ядро приложения останется, а GUI по хорошему нужно
переписать, и вобщем-то все основные мобильные ОС и их mainline IDE для разработки
(XCode,Android Studio, VS) позволяют иметь ядро на C++ + GUI. Поэтому на мой
взгляд они особо и не ставят палки в колеса разработчикам.
Отредактировано 24.07.2017 11:28 Zhendos . Предыдущая версия .
Re[4]: Qt и Андроид
От: AlexGin Беларусь  
Дата: 18.04.16 18:48
Оценка:
Здравствуйте, уважаемый Zhendos, Вы писали:

Z>Взлетело, это был отдельный от mainstream порт для Qt4, в Qt5 эти наработки

Z>интегрировали уже в mainline и теперь они часть Qt:
Z>http://blog.qt.io/blog/2012/11/08/necessitas-android-port-contributed-to-the-qt-project/
+100500
Вот и отлично!
Спасибо, уважаемый Zhendos!!!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.