Russian Qt Forum
Ноябрь 22, 2024, 16:48
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Qt Embedded
>
Ministro или как лучше распространять библиотеки Qt
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Ministro или как лучше распространять библиотеки Qt (Прочитано 6802 раз)
Гурман
Гуру общения
Offline
Сообщений: 1442
Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12
Ministro или как лучше распространять библиотеки Qt
«
:
Январь 31, 2017, 16:42 »
Всё время считал, что есть два способа поставить Qt-приложение для Android:
1. сборка с библиотеками Qt, которые включаются в APK и дублируются при каждой установке гомогенных приложений, собранных с одной и той же версией Qt
2. сборка с использованием Ministro, который при установке приложения будет предложено установить чтобы он скачал и установил библиотеки.
Оба способа мне не нравились по ряду причин. Но сегодня заметил абзац в руководстве Qt, который почему-то раньше не отложился в долговременной памяти:
Цитировать
There are some special variables recognized by Qt which can be placed inside the manifest:
android.app.use_local_qt_libs: If this is set to 1, Qt libraries are expected to be found on the target device. If it is 0, then libraries must be requested from the Ministro service.
android.app.bundle_local_qt_libs: If set to 1, the Qt libraries are expected to be bundled as part of the APK. If set to 0, they are expected to be found in the /data/local/tmp/qt folder on the target device.
Note: If use_local_qt_libs is 0, then this variable has no effect, since libraries are then requested through Ministro instead.
Вот это интересно особенно про android.app.bundle_local_qt_libs. То есть, можно по идее собрать одно своё приложение, при установке которого Qt-библиотеки будут заброшены в /data/local/tmp/qt, а при установке другого с такими же библиотеками они уже забрасываться туда не будут. Или будут, но это пофик - главное чтобы оттуда использовались. Для меня это идеальный вариант - и библиотеки будут разделяемые, и с Ministro связываться не надо.
Вопрос только - как сделать, чтобы при установке библиотеки Qt сначала из APK копировались в указанный каталог, затем происходило дальше всё как надо? Идея создать некий отдельный инсталлятор-приложение, которое только библиотеки туда закидывает - плохая идея. Надо чтобы они копировались куда надо при первой же установке.
Кто-нибудь разбирался с установкой APK? Как это можно сделать?
Записан
2^7-1 == 127, задумайтесь...
qate
Супер
Offline
Сообщений: 1177
Re: Ministro или как лучше распространять библиотеки Qt
«
Ответ #1 :
Февраль 01, 2017, 14:35 »
правильно ли я понял, что если есть 2 программы и они весят со всеми либами пусть 30мб
тогда сейчас пользователь в обоих случаях скачает 30мб
и хочется скачать после установки первой программы только, например, 1 мб самой программы и не качать теже самые либы ?
Записан
Гурман
Гуру общения
Offline
Сообщений: 1442
Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12
Re: Ministro или как лучше распространять библиотеки Qt
«
Ответ #2 :
Февраль 01, 2017, 16:22 »
Цитата: qate от Февраль 01, 2017, 14:35
правильно ли я понял, что если есть 2 программы и они весят со всеми либами пусть 30мб
тогда сейчас пользователь в обоих случаях скачает 30мб
и хочется скачать после установки первой программы только, например, 1 мб самой программы и не качать теже самые либы ?
Не совсем. Чтобы не качать два раза всё то же самое, достаточно использовать Ministro - тогда он будет скачивать нужные библиотеки только один раз. Но кроме скачивания, библиотеки Qt надо ещё хранить. Скачивается всё сжатое до 3-х раз, а вот хранятся библиотеки распакованные. Вот тут мне надо чтобы хранилась только одна копия библиотек Qt, а сколько раз они будут внутри APK скачиваться - по барабану, это доли копеек по стоимости. Сжатое в APK приложение сейчас около 7 МБайт - для скачивания это не существенно, это длина одного анимированного GIF-а с котятами в соцсетях. Сейчас у меня будут 3 приложения с общими библиотеками Qt, позже их станет 5, а в дальнейшем их может быть 10, а потом и 30 или больше. Скачивать их будут не одновременно, но хранить могут все одновременно. Не по 30 МБайт правда, но по 15 МБайт библиотек на каждое приложение - это уже дохрена получится. Ministro это тоже решает, библиотеки Qt хранятся в одной копии, но вот... не хочется связываться со сторонним приложением. Например, если по какому-то недоразумению меня вдруг забанят на Google Play (там сейчас говорят роботы банят за каждый безобидный чих), то не понятно, как будет Ministro оттуда устанавливаться на машины новых клиентов, если само приложение будет распространяться через другой сервис. Поэтому хочется избавиться от Ministro, но библиотеки хранить в одном экземпляре. Qt-приложения на Android умеют так библиотеки использовать, но не ясно как такое приложение инсталлировать.
«
Последнее редактирование: Февраль 01, 2017, 16:27 от Гурман
»
Записан
2^7-1 == 127, задумайтесь...
qate
Супер
Offline
Сообщений: 1177
Re: Ministro или как лучше распространять библиотеки Qt
«
Ответ #3 :
Февраль 01, 2017, 23:58 »
т.е. хочется заменить ministro на свой my_ministro ?
наверно смысл есть, как сделать не знаю, также интересно
Записан
Гурман
Гуру общения
Offline
Сообщений: 1442
Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12
Re: Ministro или как лучше распространять библиотеки Qt
«
Ответ #4 :
Февраль 02, 2017, 02:53 »
Цитата: qate от Февраль 01, 2017, 23:58
т.е. хочется заменить ministro на свой my_ministro ?
наверно смысл есть, как сделать не знаю, также интересно
Не, не хочется. Основное назначение Ministro - поддержка связи приложения с библиотеками Qt, включая их обновление при наличии исправлений. И автоматическая загрузка варианта, соответствующего аппаратной платформе. Хранение разделяемых библиотек для всех Qt-приложений - это у Ministro скорее побочный эффект, по необходимости. Иначе Ministro пришлось бы скачивать библиотеки заново для каждого поддерживаемого приложения.
Но мне нужно только и исключительно это, и без скачивания библиотек отдельно. Они у меня в .APK каждого приложения будут. Но я хочу, чтобы они извлекались в один каталог и оттуда работали.
Правда сейчас с удивлением прочёл в одном из обсуждений, что вроде бы можно собирать приложения статически и распространять закрытыми не нарушая GPL, и не предоставляя исходники. Якобы достаточно предоставить только ссылки на свои объектные модули, чтобы их можно было скачать. Надо разобраться, может вообще не потребуется тащить Qt-библиотеки.
«
Последнее редактирование: Февраль 02, 2017, 03:11 от Гурман
»
Записан
2^7-1 == 127, задумайтесь...
qate
Супер
Offline
Сообщений: 1177
Re: Ministro или как лучше распространять библиотеки Qt
«
Ответ #5 :
Февраль 02, 2017, 10:46 »
если задача сокращения объема скачивания не актуальна, то я не пойму смысла с отдельным общим каталогом
Записан
Day
Частый гость
Offline
Сообщений: 290
Re: Ministro или как лучше распространять библиотеки Qt
«
Ответ #6 :
Февраль 02, 2017, 16:25 »
Цитировать
вроде бы можно собирать приложения статически
Они будут огромными. Сравнимо с объемом библиотек. Совсем чуток (в несколько раз) меньше.
Записан
Гурман
Гуру общения
Offline
Сообщений: 1442
Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12
Re: Ministro или как лучше распространять библиотеки Qt
«
Ответ #7 :
Февраль 02, 2017, 17:00 »
Цитата: qate от Февраль 02, 2017, 10:46
если задача сокращения объема скачивания не актуальна, то я не пойму смысла с отдельным общим каталогом
Ещё раз - скачивается каждое приложение по 7 МБайт по одному разу, а хранится в APK по 15 МБайт на каждое приложение постоянно. На 5 приложений будет храниться 45 МБайт. Но если библиотеки Qt в одном каталоге будут лежать, то будет храниться только 15 МБайт.
Записан
2^7-1 == 127, задумайтесь...
Гурман
Гуру общения
Offline
Сообщений: 1442
Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12
Re: Ministro или как лучше распространять библиотеки Qt
«
Ответ #8 :
Февраль 02, 2017, 17:03 »
Цитата: Day от Февраль 02, 2017, 16:25
Цитировать
вроде бы можно собирать приложения статически
Они будут огромными. Сравнимо с объемом библиотек. Совсем чуток (в несколько раз) меньше.
Я делал статические приложения на десктопе - разница в 2-3 раза была. То есть, вместо 15 МБайт библиотек получалось 5-7 МБайт бинарник. Правда пока не ясно, можно ли вообще сделать статическое приложение для Android - для него даже основной модуль с main() собирается в .so библиотеку, то есть динамически связывается при запуске.
Записан
2^7-1 == 127, задумайтесь...
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...