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)
Ответ на: комментарий от slovazap

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

умеет

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

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

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

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

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

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

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

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

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

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

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

waker ★★★★★
()
Ответ на: комментарий от 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 ★★★
()
Ответ на: комментарий от 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 ★★★★
()
Ответ на: комментарий от 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

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

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

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

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