Diferència entre revisions de la pàgina «Màquina virtual Android per a fer-la servir per a executar codis QML des de QtCreator»
m |
|||
Línia 24: | Línia 24: | ||
[[Image:SeleccioQtMaqVirtualAndroid.png|center|Selecció de la màquina virtual Android des de QtCreator]] | [[Image:SeleccioQtMaqVirtualAndroid.png|center|Selecció de la màquina virtual Android des de QtCreator]] | ||
+ | |||
+ | = Instal·lació de '''QtMqtt per Android''' = | ||
+ | Malgrat que ja us funcioni la biblioteca QtMqtt en programes d'escriptori, heu de fer la compilació de la biblioteca QtMqtt per a la versió de Qt/QML que feu servir per a poder executar programes que duguin aquesta biblioteca a Android. | ||
+ | |||
+ | Hi ha diversos suggeriments de com fer-ho. Després de diversos intents, aquest és el sistema que a mi m'ha funcionat: | ||
+ | |||
+ | Cerqueu el directori '''lib''' de la vostra distribució Qt per a '''Android x86''': | ||
+ | jordi@ecat-XPS13:~$ '''/home/jordi/Qt/6.0.0/android_x86/bin/qmake -query QT_INSTALL_LIBS''' | ||
+ | /home/jordi/Qt/6.0.0/android_x86/lib | ||
+ | o, per al dispositiu físic Android amb tecnologia '''Android ARM''': | ||
+ | ecat@iot-ecat:~$ '''/home/ecat/Qt/6.0.0/android_armv7/bin/qmake -query QT_INSTALL_LIBS''' | ||
+ | /home/ecat/Qt/6.0.0/android_armv7/lib | ||
+ | Aneu a la carpeta que ens retorna l'ordre anterior ('''Android x86'''): | ||
+ | jordi@ecat-XPS13:~$ '''cd /home/jordi/Qt/6.0.0/android_x86/lib''' | ||
+ | o, per al dispositiu físic Android amb tecnologia '''Android ARM''': | ||
+ | ecat@iot-ecat:~$ cd /home/ecat/Qt/6.0.0/android_armv7/lib | ||
+ | I feu el procés d'instal·lació ('''Android x86'''): | ||
+ | jordi@ecat-XPS13:~/Qt/6.0.0/android_x86/lib$ '''git clone git://code.qt.io/qt/qtmqtt.git''' | ||
+ | jordi@ecat-XPS13:~/Qt/6.0.0/android_x86/lib$ '''cd qtmqtt/''' | ||
+ | jordi@ecat-XPS13:~/Qt/6.0.0/android_x86/lib/qtmqtt$ '''git checkout 6.0''' | ||
+ | jordi@ecat-XPS13:~/Qt/6.0.0/android_x86/lib/qtmqtt$ '''rm -r examples/''' | ||
+ | o, per al dispositiu físic Android amb tecnologia '''Android ARM''': | ||
+ | ecat@iot-ecat:~/Qt/6.0.0/android_armv7/lib$ '''git clone git://code.qt.io/qt/qtmqtt.git''' | ||
+ | ecat@iot-ecat:~/Qt/6.0.0/android_armv7/lib$ '''cd qtmqtt/''' | ||
+ | ecat@iot-ecat:~/Qt/6.0.0/android_armv7/lib/qtmqtt$ '''git checkout 6.0''' | ||
+ | ecat@iot-ecat:~/Qt/6.0.0/android_armv7/lib/qtmqtt$ rm -r examples/ | ||
+ | Per a '''Android x86''', mitjançant el '''Qt Creator''' obriu el projecte /home/jordi/Qt/6.0.0/android_x86/lib/qtmqtt/'''qtmqtt.pro'''. Aneu al menú i seleccioneu '''Build / Run qmake''' | ||
+ | |||
+ | Per a '''Android ARM''', mitjançant el '''Qt Creator''' obriu el projecte /home/ecat/Qt/6.0.0/android_armv7/lib/qtmqtt/'''qtmqtt.pro'''. Aneu al menú i seleccioneu '''Build / Run qmake''' | ||
+ | |||
+ | Torneu al terminal d'abans i feu ('''Android x86'''): | ||
+ | jordi@ecat-XPS13:~/Qt/6.0.0/android_x86/lib/qtmqtt$ '''make''' | ||
+ | jordi@ecat-XPS13:~/Qt/6.0.0/android_x86/lib/qtmqtt$ '''sudo make install''' | ||
+ | o, per al dispositiu físic Android amb tecnologia '''Android ARM''': | ||
+ | ecat@iot-ecat:~/Qt/6.0.0/android_armv7/lib/qtmqtt$ '''make''' | ||
+ | ecat@iot-ecat:~/Qt/6.0.0/android_armv7/lib/qtmqtt$ '''sudo make install''' | ||
+ | Copieu, fora de la ruta de les Qt, els projectes d'exemple [https://binefa.cat/dam2021/20210121_qml/quickpublication.zip '''quickpublication'''] i [https://binefa.cat/dam2021/20210121_qml/quicksubscription.zip '''quicksubscription''']. Obriu els dos projectes per a que puguin ser executats des de l'escriptori i des del mòbil (emulat o no). Per a verificar llur funcionament, podeu executar un projecte al dispositiu mòbil i l'altre a l'escriptori. |
Revisió de 15:27, 25 nov 2022
Màquina virtual amb emulador per a Android[modifica]
Emulador d'Android a una màquina virtual
Aneu amb cura, malgrat és obsolet quelcom es pot fer servir en part: Using VMWare to replace the slow Android Emulator
És important que aquesta màquina virtual estigui configurada amb:
- Connexió pont (bridge i no NAT)
- Memòria mínima de 2GB
Connectant la màquina virtual Android al vostre ordinador[modifica]
- Trobeu quina IP té la màquina virtual amb l'emulador d'Android (a l'explicació faré servir com a IP de l'emulador 172.20.xy.xyz).
- Obriu un terminal a la vostra màquina:
ecat@iot-ecat:~$ cd Android/Sdk/platform-tools/ ecat@iot-ecat:~/Android/Sdk/platform-tools$ ./adb connect 172.20.xy.xyz:5555 * daemon not running; starting now at tcp:5037 * daemon started successfully connected to 172.20.25.152:5555 ecat@iot-ecat:~/Android/Sdk/platform-tools$ ./adb shell x86:/ $
- Obriu el Qt Creator (premeu la supertecla -aquella amb el símbol d'una finestra propietària- i escriviu-hi Qt). Feu un exemple simple de QML (per exemple el del swipe). Seleccioneu les Qt6 per a escriptori i Android x86 (amb l'opció Release i sense Debug ni Profile). Aneu a Tools / Options / Devices i verifiqueu que no hi dóna cap error de configuració (és possible que al principi surtin marques vermelles, però al cap de pocs segons se'n van). Assegureu-vos que compilareu per Android i feu Play al projecte de les Qt. Seleccioneu el dispositiu compatible VMware Virtual Platform. I premeu al botó OK.
- Al cap de pocs segons hi apareix el programa bàsic swipe a l'emulador sobre màquina virtual. El podeu aturar prement el botó quadrat vermell d'Application Output.
Instal·lació de QtMqtt per Android[modifica]
Malgrat que ja us funcioni la biblioteca QtMqtt en programes d'escriptori, heu de fer la compilació de la biblioteca QtMqtt per a la versió de Qt/QML que feu servir per a poder executar programes que duguin aquesta biblioteca a Android.
Hi ha diversos suggeriments de com fer-ho. Després de diversos intents, aquest és el sistema que a mi m'ha funcionat:
Cerqueu el directori lib de la vostra distribució Qt per a Android x86:
jordi@ecat-XPS13:~$ /home/jordi/Qt/6.0.0/android_x86/bin/qmake -query QT_INSTALL_LIBS /home/jordi/Qt/6.0.0/android_x86/lib
o, per al dispositiu físic Android amb tecnologia Android ARM:
ecat@iot-ecat:~$ /home/ecat/Qt/6.0.0/android_armv7/bin/qmake -query QT_INSTALL_LIBS /home/ecat/Qt/6.0.0/android_armv7/lib
Aneu a la carpeta que ens retorna l'ordre anterior (Android x86):
jordi@ecat-XPS13:~$ cd /home/jordi/Qt/6.0.0/android_x86/lib
o, per al dispositiu físic Android amb tecnologia Android ARM:
ecat@iot-ecat:~$ cd /home/ecat/Qt/6.0.0/android_armv7/lib
I feu el procés d'instal·lació (Android x86):
jordi@ecat-XPS13:~/Qt/6.0.0/android_x86/lib$ git clone git://code.qt.io/qt/qtmqtt.git jordi@ecat-XPS13:~/Qt/6.0.0/android_x86/lib$ cd qtmqtt/ jordi@ecat-XPS13:~/Qt/6.0.0/android_x86/lib/qtmqtt$ git checkout 6.0 jordi@ecat-XPS13:~/Qt/6.0.0/android_x86/lib/qtmqtt$ rm -r examples/
o, per al dispositiu físic Android amb tecnologia Android ARM:
ecat@iot-ecat:~/Qt/6.0.0/android_armv7/lib$ git clone git://code.qt.io/qt/qtmqtt.git ecat@iot-ecat:~/Qt/6.0.0/android_armv7/lib$ cd qtmqtt/ ecat@iot-ecat:~/Qt/6.0.0/android_armv7/lib/qtmqtt$ git checkout 6.0 ecat@iot-ecat:~/Qt/6.0.0/android_armv7/lib/qtmqtt$ rm -r examples/
Per a Android x86, mitjançant el Qt Creator obriu el projecte /home/jordi/Qt/6.0.0/android_x86/lib/qtmqtt/qtmqtt.pro. Aneu al menú i seleccioneu Build / Run qmake
Per a Android ARM, mitjançant el Qt Creator obriu el projecte /home/ecat/Qt/6.0.0/android_armv7/lib/qtmqtt/qtmqtt.pro. Aneu al menú i seleccioneu Build / Run qmake
Torneu al terminal d'abans i feu (Android x86):
jordi@ecat-XPS13:~/Qt/6.0.0/android_x86/lib/qtmqtt$ make jordi@ecat-XPS13:~/Qt/6.0.0/android_x86/lib/qtmqtt$ sudo make install
o, per al dispositiu físic Android amb tecnologia Android ARM:
ecat@iot-ecat:~/Qt/6.0.0/android_armv7/lib/qtmqtt$ make ecat@iot-ecat:~/Qt/6.0.0/android_armv7/lib/qtmqtt$ sudo make install
Copieu, fora de la ruta de les Qt, els projectes d'exemple quickpublication i quicksubscription. Obriu els dos projectes per a que puguin ser executats des de l'escriptori i des del mòbil (emulat o no). Per a verificar llur funcionament, podeu executar un projecte al dispositiu mòbil i l'altre a l'escriptori.