Russian Qt Forum

Qt => Qt Embedded => Тема начата: Majestio от Январь 02, 2015, 14:00



Название: Qt5 & Android (вопросы начинающего)
Отправлено: Majestio от Январь 02, 2015, 14:00
Доброго времени суток!

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

1) Собрал тестовую программку, загрузил ее в эмулятор, ну как бы все заработало ...

(http://i64.fastpic.ru/thumb/2015/0102/3b/e30d1166c44acd79ad5bc4c3d490133b.jpeg) (http://fastpic.ru/view/64/2015/0102/e30d1166c44acd79ad5bc4c3d490133b.png.html)

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

Листинг содержимого каталога сборки таков:

Код:
./
./list.txt
./libc.so
./moc_widget.o
./app_process
./android-build
./android-build/project.properties
./android-build/bin
./android-build/bin/QtApp.ap_
./android-build/bin/classes
./android-build/bin/classes/org
./android-build/bin/classes/org/kde
./android-build/bin/classes/org/kde/necessitas
./android-build/bin/classes/org/kde/necessitas/ministro
./android-build/bin/classes/org/kde/necessitas/ministro/IMinistro$Stub$Proxy.class
./android-build/bin/classes/org/kde/necessitas/ministro/IMinistroCallback$Stub$Proxy.class
./android-build/bin/classes/org/kde/necessitas/ministro/IMinistroCallback.class
./android-build/bin/classes/org/kde/necessitas/ministro/IMinistro.class
./android-build/bin/classes/org/kde/necessitas/ministro/IMinistroCallback$Stub.class
./android-build/bin/classes/org/kde/necessitas/ministro/IMinistro$Stub.class
./android-build/bin/classes/org/qtproject
./android-build/bin/classes/org/qtproject/qt5
./android-build/bin/classes/org/qtproject/qt5/android
./android-build/bin/classes/org/qtproject/qt5/android/bindings
./android-build/bin/classes/org/qtproject/qt5/android/bindings/QtActivity$5.class
./android-build/bin/classes/org/qtproject/qt5/android/bindings/QtActivity$1.class
./android-build/bin/classes/org/qtproject/qt5/android/bindings/QtActivity$3$1.class
./android-build/bin/classes/org/qtproject/qt5/android/bindings/QtActivity$3.class
./android-build/bin/classes/org/qtproject/qt5/android/bindings/QtActivity$2.class
./android-build/bin/classes/org/qtproject/qt5/android/bindings/QtApplication.class
./android-build/bin/classes/org/qtproject/qt5/android/bindings/QtActivity.class
./android-build/bin/classes/org/qtproject/qt5/android/bindings/QtApplication$InvokeResult.class
./android-build/bin/classes/org/qtproject/qt5/android/bindings/QtActivity$4.class
./android-build/bin/classes/org/qtproject/qt5/android/bindings/QtActivity$3$1$1.class
./android-build/bin/classes/org/qtproject/qt5/android/bindings/QtActivity$6.class
./android-build/bin/classes/org/qtproject/example
./android-build/bin/classes/org/qtproject/example/Android_First
./android-build/bin/classes/org/qtproject/example/Android_First/BuildConfig.class
./android-build/bin/classes/org/qtproject/example/Android_First/R$attr.class
./android-build/bin/classes/org/qtproject/example/Android_First/R$array.class
./android-build/bin/classes/org/qtproject/example/Android_First/R$layout.class
./android-build/bin/classes/org/qtproject/example/Android_First/R.class
./android-build/bin/classes/org/qtproject/example/Android_First/R$string.class
./android-build/bin/QtApp-debug-unaligned.apk
./android-build/bin/build.prop
./android-build/bin/dexedLibs
./android-build/bin/dexedLibs/QtAndroid-bundled-1a667fa0c3cc80c019aca7601021b214.jar
./android-build/bin/dexedLibs/QtAndroidAccessibility-bundled-e5e574226d6b31c5cfd18249f268aebc.jar
./android-build/bin/AndroidManifest.xml.d
./android-build/bin/jarlist.cache
./android-build/bin/classes.dex.d
./android-build/bin/AndroidManifest.xml
./android-build/bin/res
./android-build/bin/QtApp-debug.apk
./android-build/bin/QtApp-debug-unaligned.apk.d
./android-build/bin/proguard.txt
./android-build/bin/classes.dex
./android-build/bin/QtApp.ap_.d
./android-build/bin/aidl
./android-build/bin/aidl/org
./android-build/bin/aidl/org/kde
./android-build/bin/aidl/org/kde/necessitas
./android-build/bin/aidl/org/kde/necessitas/ministro
./android-build/bin/aidl/org/kde/necessitas/ministro/IMinistroCallback.aidl
./android-build/bin/aidl/org/kde/necessitas/ministro/IMinistro.aidl
./android-build/libs
./android-build/libs/QtAndroid-bundled.jar
./android-build/libs/QtAndroidAccessibility-bundled.jar
./android-build/libs/armeabi-v7a
./android-build/libs/armeabi-v7a/libplugins_platforms_libqminimalegl.so
./android-build/libs/armeabi-v7a/libplugins_imageformats_libqico.so
./android-build/libs/armeabi-v7a/libplugins_generic_libqevdevkeyboardplugin.so
./android-build/libs/armeabi-v7a/libplugins_imageformats_libqicns.so
./android-build/libs/armeabi-v7a/libgnustl_shared.so
./android-build/libs/armeabi-v7a/libplugins_generic_libqevdevtouchplugin.so
./android-build/libs/armeabi-v7a/libplugins_platforms_libqoffscreen.so
./android-build/libs/armeabi-v7a/libplugins_imageformats_libqjp2.so
./android-build/libs/armeabi-v7a/libplugins_platforms_android_libqtforandroid.so
./android-build/libs/armeabi-v7a/libplugins_generic_libqevdevtabletplugin.so
./android-build/libs/armeabi-v7a/libplugins_imageformats_libqtiff.so
./android-build/libs/armeabi-v7a/libQt5Core.so
./android-build/libs/armeabi-v7a/libQt5Gui.so
./android-build/libs/armeabi-v7a/libplugins_imageformats_libqgif.so
./android-build/libs/armeabi-v7a/libplugins_imageformats_libqmng.so
./android-build/libs/armeabi-v7a/libplugins_imageformats_libqtga.so
./android-build/libs/armeabi-v7a/libplugins_imageformats_libqwbmp.so
./android-build/libs/armeabi-v7a/libplugins_imageformats_libqjpeg.so
./android-build/libs/armeabi-v7a/libAndroid-First.so
./android-build/libs/armeabi-v7a/libplugins_platforms_libqminimal.so
./android-build/libs/armeabi-v7a/libplugins_platforms_libqeglfs.so
./android-build/libs/armeabi-v7a/gdbserver
./android-build/libs/armeabi-v7a/libplugins_imageformats_libqdds.so
./android-build/libs/armeabi-v7a/libQt5Widgets.so
./android-build/libs/armeabi-v7a/libplugins_generic_libqevdevmouseplugin.so
./android-build/libs/armeabi-v7a/libgdbserver.so
./android-build/assets
./android-build/assets/--Added-by-androiddeployqt--
./android-build/assets/--Added-by-androiddeployqt--/qt_cache_pregenerated_file_list
./android-build/proguard-project.txt
./android-build/local.properties
./android-build/gen
./android-build/gen/org
./android-build/gen/org/kde
./android-build/gen/org/kde/necessitas
./android-build/gen/org/kde/necessitas/ministro
./android-build/gen/org/kde/necessitas/ministro/IMinistro.java
./android-build/gen/org/kde/necessitas/ministro/IMinistro.java.d
./android-build/gen/org/kde/necessitas/ministro/IMinistroCallback.java
./android-build/gen/org/kde/necessitas/ministro/IMinistroCallback.java.d
./android-build/gen/org/qtproject
./android-build/gen/org/qtproject/example
./android-build/gen/org/qtproject/example/Android_First
./android-build/gen/org/qtproject/example/Android_First/BuildConfig.java
./android-build/gen/org/qtproject/example/Android_First/R.java
./android-build/gen/R.java.d
./android-build/build.gradle
./android-build/AndroidManifest.xml
./android-build/res
./android-build/res/layout
./android-build/res/layout/splash.xml
./android-build/res/values-pl
./android-build/res/values-pl/strings.xml
./android-build/res/values-et
./android-build/res/values-et/strings.xml
./android-build/res/values-ja
./android-build/res/values-ja/strings.xml
./android-build/res/values-es
./android-build/res/values-es/strings.xml
./android-build/res/values-de
./android-build/res/values-de/strings.xml
./android-build/res/values-zh-rTW
./android-build/res/values-zh-rTW/strings.xml
./android-build/res/values-ru
./android-build/res/values-ru/strings.xml
./android-build/res/values-ms
./android-build/res/values-ms/strings.xml
./android-build/res/values-el
./android-build/res/values-el/strings.xml
./android-build/res/values-zh-rCN
./android-build/res/values-zh-rCN/strings.xml
./android-build/res/values-rs
./android-build/res/values-rs/strings.xml
./android-build/res/values
./android-build/res/values/libs.xml
./android-build/res/values/strings.xml
./android-build/res/values-fr
./android-build/res/values-fr/strings.xml
./android-build/res/values-pt-rBR
./android-build/res/values-pt-rBR/strings.xml
./android-build/res/values-fa
./android-build/res/values-fa/strings.xml
./android-build/res/values-ro
./android-build/res/values-ro/strings.xml
./android-build/res/values-nb
./android-build/res/values-nb/strings.xml
./android-build/res/values-it
./android-build/res/values-it/strings.xml
./android-build/res/values-nl
./android-build/res/values-nl/strings.xml
./android-build/res/values-id
./android-build/res/values-id/strings.xml
./android-build/build.xml
./android-build/src
./android-build/src/org
./android-build/src/org/kde
./android-build/src/org/kde/necessitas
./android-build/src/org/kde/necessitas/ministro
./android-build/src/org/kde/necessitas/ministro/IMinistroCallback.aidl
./android-build/src/org/kde/necessitas/ministro/IMinistro.aidl
./android-build/src/org/qtproject
./android-build/src/org/qtproject/qt5
./android-build/src/org/qtproject/qt5/android
./android-build/src/org/qtproject/qt5/android/bindings
./android-build/src/org/qtproject/qt5/android/bindings/QtApplication.java
./android-build/src/org/qtproject/qt5/android/bindings/QtActivity.java
./Makefile
./libAndroid-First.so
./android-libAndroid-First.so-deployment-settings.json
./widget.o
./moc_widget.cpp
./main.o

2) Выбирая Qt/C++, я всячески старался избегать Java. Знания чисто концептуальные по ней, практики нет, да и не особо пока хочется. Но ... о5 же в каталоге сборки я обнаружил какие-то созданные джавовские классы. Каким боком они тут? Создается впечатление, что они - некая прослойка между созданным мною приложением и системой. Так ли это? А можно без них - если да, то как?


Название: Re: Qt5 & Android (вопросы начинающего)
Отправлено: vitfil от Январь 02, 2015, 14:10
1. ./android-build/bin/QtApp-debug-unaligned.apk
2. Не обращайте внимания.


Название: Re: Qt5 & Android (вопросы начинающего)
Отправлено: gil9red от Январь 02, 2015, 14:16
Доброго времени суток!

Наконец-таки дошли руки достроить свою среду разработки с Qt 5.4.0 для возможности создания приложений для устройств, работающих под управлением Android.

Не сразу понял, что вы имели ввиду Qt Creator, а не свою разрабатываемую ide :D


Название: Re: Qt5 & Android (вопросы начинающего)
Отправлено: Majestio от Январь 02, 2015, 16:40
1. ./android-build/bin/QtApp-debug-unaligned.apk
Ясно. Пасип. Ток одного не пойму - тип сборки был "Релиз", а при чем тут "debug"??
2. Не обращайте внимания.
Раскопал в недрах .apk такую фразу "Этому приложению необходим сервис Ministro. Вы хотите его установить?".
Все же "обратить внимание" придется, не все так спокойно в датском королевстве :)


Название: Re: Qt5 & Android (вопросы начинающего)
Отправлено: Majestio от Январь 02, 2015, 16:53
Не сразу понял, что вы имели ввиду Qt Creator, а не свою разрабатываемую ide :D
Вообще-то, я не это имел ввиду :) Под "средой разработки" я имел ввиду отдельно установленный Gentoo Linux под VMWare (http://majestio.tk/viewtopic.php?id=29), установка на нем Qt 5.4.0 Linux x32/64, четыре кросс-компилятора из проекта mxe.cc (http://mxe.cc) (с моим вариантом posix-нитей (http://github.com/mxe/mxe/issues/428)), собранные под ним варианты Qt 5.4.0 - x32/x64/shared/static, ну и Valgrind в догонку. Вот добавил туда туллчейны под Android. Ну вот как-то так. QtCreator во всей этой кухне - важная часть, но не главная :-)


Название: Re: Qt5 & Android (вопросы начинающего)
Отправлено: deMax от Февраль 16, 2015, 12:42
А на чем писать GUI под Андроид: QML, Widgets?
И вообще кто то пишет на Qt под андроид, есть серьезные проекты?

p.s. Хочется написать приложения, но не не знаю java(и знать не хочу).
p.s.s. Собрал свое старое приложение на виджетах, apk весит как и пустой проект около 7Мб.


Название: Re: Qt5 & Android (вопросы начинающего)
Отправлено: Alex Custov от Февраль 16, 2015, 17:17
А на чем писать GUI под Андроид: QML, Widgets?

Это зависит от задачи. С Widgets будет десктопный интерфейс. С QML легче запрограммировать интерфейс с анимациями, но в тоже время может быть сложнее написать интерфейс со сложным layout и логикой. В любом случае, изучить оба варианта и понять самому не представляет большого труда.


Название: Re: Qt5 & Android (вопросы начинающего)
Отправлено: kibsoft от Февраль 16, 2015, 19:05
Код:
С Widgets будет десктопный интерфейс.
С Qt 5.4 виджеты транслируются в нативные.
http://blog.qt.io/blog/2014/12/03/native-android-style-in-qt-5-4/