LINUX.ORG.RU

qt for android

 , , ,


0

2

Господа, а есть ли прирост производительности при создании приложений для андройда используя qt по сравнению с обычной связкой java+android sdk? В чем вообще преимущество использования qt в этих целях? Поясните нубу.

Преимущество Qt — объединение некоторой части кодовой базы с десктопом, в чистом JNI и с Java такое же делать труднее будет. Ну и кроме того, можно кодить на C++ — иногда он удобнее Java. Заметного преимущества в производительности не будет, на Java тоже можно написать плавный UI, а если нет — то можно и без Qt часть кода вынести в нативный.

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

Библиотеки Qt довольно жирные - порядка 15 Мб приложение будет минимум.

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

Умеет, есть два варианта сборки приложения Qt для Android, а когда все либы в одном пакете - самое простое для пользователя.

I-Love-Microsoft ★★★★★ ()

есть ли прирост производительности при создании приложений для андройда используя qt

прирост производительности происходит не из-за выбора тулкита, а из-за того, как ты этот тулкит используешь

если у тебя есть конкретные вопросы - задавай

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

Это теория, а вот у меня уже практика на реальном телефоне... Иногда приложение выходит из фона с черным экраном и прибитие-перезапуск лишь помогают. Надеюсь в QML-версии такого нет...

I-Love-Microsoft ★★★★★ ()

а есть ли прирост производительности при создании приложений для андройда используя qt по сравнению с обычной связкой java+android sdk?

нативный код на C++ быстрее жабы, но вызовы Java APIs через JNI медленнее, чем напрямую. так что твердого ответа нет. смотря какое приложение, и где именно в нем «бутылочное горлышко».

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

Андроид не умеет shared библиотек?

а что, shared-библиотеки весят 0 байт?

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

Нет. Просто приложение бы не весило размера Qt, а Qt могла бы использоваться другими приложениями.

slovazap ★★★★★ ()
Ответ на: комментарий от I-Love-Microsoft

Пользователь об этом Qt знать не знает - он ставит приложение, пакетный менеджер тянет нужные библиотеки. Или на андроиде нет пакетного менеджера и принят windows-way?

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

Или на андроиде нет пакетного менеджера и принят windows-way?

считай что «или нет»

I-Love-Microsoft ★★★★★ ()
Ответ на: комментарий от slovazap

Нет. Просто приложение бы не весило размера Qt, а Qt могла бы использоваться другими приложениями.

ну это если ты найдешь >1 нужного тебе приложения на Qt. если такое приложение 1 — будет >15 метров на 1 приложение. для старых девайсов на android2.3, например, это вообще неприемлемо.

waker ★★★★★ ()
Последнее исправление: waker (всего исправлений: 1)
Ответ на: комментарий от slovazap

Или на андроиде нет пакетного менеджера и принят windows-way?

что-то вроде windows way, да. но у qt есть свой инсталлер.

waker ★★★★★ ()

Смотри на openttd, openarena и другие SDL приложения. Их делали по windows, linux, mac, etc. а сейчас они работают на android, ios и при этом они почти ничего и не делали. Такое же вскоре будет и с qt приложениями.

Имхо, производительность может даже быть ниже родных приложений. Основная фишка - переносимость программ. Вторая фишка - красота кода, который использует Qt.

frozenix ★★★ ()

если уж так хочется писать на плюсах под робота, используй NativeAcitivity

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

Да ладно, я тут недавно ГТА скачал на мобильный, сразу 3 и 4 версию по 2Гб каждая. Кстати, для старых девайсов(symbian) Qt очень даже приемлем.

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

Спасибо, довольно интересно. Но оно ведь кнопки нарисовать не сможет?

С таким успехом можно было бы использовать SDL или вообще нативный бинарник сварганить.

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

Да ладно, я тут недавно ГТА скачал на мобильный, сразу 3 и 4 версию по 2Гб каждая.

на qt?

Кстати, для старых девайсов(symbian) Qt очень даже приемлем.

может старый qt на симбиане и приемлем, а на девайсах с андроидом 2.3 в встроенную память влезет примерно 2 приложения по 15 метров, это если все остальные удалить. захочется тебе, например, установить калькулятор на qt — придется ради этого удалить оперу, fbreader, youtube, и еще пару программ.

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

почему не может рисовать кнопки? я думаю может, надо будет поставить ndk вечером, посмотреть

TERRANZ ★★★★ ()
Ответ на: комментарий от I-Love-Microsoft

Вот в qml такое и видел, это явный баг egl, судя по логам в Qt.

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

Про ГТА говорил, что 15 Мб не там уж и существенно. У меня много приложений весит больше их.

Эм, опять же никто не встраивает Qt в каждое приложение. Обычно делают само приложение, а к нему ставят Qt как зависимость, которая потом докачивается к первому Qt приложению.

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

Про ГТА говорил, что 15 Мб не там уж и существенно. У меня много приложений весит больше их.

если qt умеет ставиться целиком на sd, как ресурсы игр, то да, это не проблема даже на android2.3.

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

Преимущество Qt — объединение некоторой части кодовой базы с десктопом, в чистом JNI и с Java такое же делать труднее будет. Ну и кроме того, можно кодить на C++ — иногда он удобнее Java. Заметного преимущества в производительности не будет, на Java тоже можно написать плавный UI, а если нет — то можно и без Qt часть кода вынести в нативный.

Да вынести то можно, просто думалось что пиши я на c++ целиком оно будет много быстрее в любом случаи.

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

нативный код на C++ быстрее жабы, но вызовы Java APIs через JNI медленнее, чем напрямую. так что твердого ответа нет. смотря какое приложение, и где именно в нем «бутылочное горлышко».

Спасибо, ты удовлетворил мое любопытство :)

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

Кстати об андроиде. Кутим окончательно умер? Никто портировать его не собирается?

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

Как быть, какой workaround??? Если такое не лечится то считай порта на Android нету.

I-Love-Microsoft ★★★★★ ()
Ответ на: комментарий от Gorthauer

Единственный нормальный многопротокольный im - jasmineIM больше не развивается, и кто знает, не отвалится ли с очередным апдейтом андроида.

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