Accueil > Android, Linux > Dans la famille des loups-Garous, je demande Bogdan VATRA

Dans la famille des loups-Garous, je demande Bogdan VATRA

Il y a des gens poilus, vraiment poilus … je veux dire de ceux qui hurlent la nuit avec yeux rouges devant leur console. Bogdan VATRA fait parti de ceux-la. Bogdan est un nom slave signifiant « donné par Dieu ». On est pas trop loin du compte quand on voit le travail colossal qu’il a fallu à l’individu pour nous proposer le portage de Qt sur Android. Alors QT sur android ca marche ? Oui plutôt pas mal je dirais mais si vous le voulez bien, analysons la chronologie des événements qui m’on fait tester cette solution.Tout d’abord, il y a eu une petite vidéo assez bien faite, un didacticiel qui parle du portage de Qt grace à Necessitas et Ministro . Ce qui vous en conviendrez après visionnage, aiguise notre curiosité.

Puis ensuite, il y a eu la publication d’un article sur linux magazine parlant exactement du même sujet.linuxmag_jv2013
Et enfin, il y a eu l’annonce de Ubuntu sur téléphone mobile relatée dans un post précédent. Quel rapport me diriez-vous ? et bien tout simplement, quand on se rend sur la page dédiée d’Ubuntu pour mobile et qu’on s’intéresse au développement on se rend compte que l’outil proposé est QT avec un accent particulier mis sur QML.
Bon tout cela ne peut laisser insensible une âme curieuse, alors si vous aussi vous voulez tester et rentrer un peu plus dans les détails je vous invite à lire la suite …

Toutes les manipulations décrites dans la vidéo citée précédemment ont été réalisées sans problème majeur sur une debian stable « Squeeze ». Cette vidéo ainsi que la lecture du LinuxMag sont un bon point de départ pour l’installation des outils. Quelques remarques néanmoins qui pourront vous faciliter la tâche.

  • Cohabitation Open-JDK / Sun Jre

Dans la configuration de Qtcreator (version Necessitas) on vous demande de spécifier l’outil « ant » utilisé.
ant est à java ce que make est au C/C++. Vous pouvez installer ant par un #apt-get install ant.
Le cas échéant, son path sera : /usr/bin/ant.
Pour java,  il faudra l’open-JDK et si c’est pas déjà fait, un #apt-get install openjdk-6-jdk openjdk-6-jre vous donnera ce qu’il faut.
Cependant attention ! si vous avez par le passé installé le jre de sun (^w^w^w Oracle®) il faut s’assurer que le système utilise bien le bon environnement.
Dans ce cas, il faut reconfigurer le système en lui spécifiant le jre à utiliser. Le plus simple est de lancer:
#update-alternatives –config java. Là, un menu intéractif permet de choisir facilement.

* 0 /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061 mode automatique
1 /usr/bin/gij-4.4 1044 mode manuel
2 /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061 mode manuel
3 /usr/lib/jvm/java-6-sun/jre/bin/java 63 mode manuel
Appuyez sur <Entrée> pour conserver la valeur par défaut[*] ou choisissez le numéro sélectionné :

  • avd Squatte ton $home

Avd c’est pour Android Virtual Device. C’est donc l’outil (fournit par le SDK) qui vous permet de tester vos applications en virtualisant un système android. Les machines virtuelles sont configurables (écran, proc, version android etc…) et leur image se retrouve dans votre $home sous un rerpertoire caché nommé .android. Cette ou ces images peuvent être très grosses !!!. Dans mon cas je fait un backup régulier de mon $home où se trouve la majorité de mes données perso. Impossible donc pour moi de garder le répertoire à cette place. Le SDK ne permet pas de configurer l’emplacement du répertoire de destination. il faudra donc utiliser un lien symbolique. Par exemple:
$ln -s ~/.android /mnt/SDK/android

  • avd plus lent tu meurs !

Le principe des machines virtuelles c’est vraiment bien surtout pour un développeur qui voudrait tester ses applications sur différentes plateformes. Lors de l’utilisation de QTcreator (version Neccessitas), adb sera lancé en se connectant à la machine virtuelle de votre choix. Sauf que c’est tellement lent que cela reste inutilisable en l’état pour du développement. La première fois que j’ai lancé la machine virtuelle je pensais à un bug car tout était freezé. Je mettais ca sur le compte des performances modestes de ma machine (Lenovo T60) mais j’ai eu écho de performances similaires sur des confs plus pointues. Donc vas mourir machine virtuelle !!! Je vous conseille tout simplement de connecter un vrai device android grâce à adb et un cable usb ad-hoc. Exemple de configuration pour un Samsung Galaxy S2.
On autorise tout d’abord le device à communiquer via adb. Dans Android menu <paramètres> puis <Applications> puis <Développement> et cocher [Débogage USB] ainsi que [Actif en chargement] (bon normalement c’est un détail mais parfois la précipitation …)
Il faut ensuite renseigner l’identifiant du device pour adb. Faites un $lsusb dans mon cas:

$lsusb
...
Bus 001 Device 015: ID 04e8:XXXX Samsung Electronics Co., Ltd
...

Dans le répertoire $/home/.android on renseigne le fichier adb_usb.ini de la façon suivante:

# ANDROID 3RD PARTY USB VENDOR ID LIST -- DO NOT EDIT.
# USE 'android update adb' TO GENERATE.
# 1 USB VENDOR ID PER LINE.
0x04e8

Il en sera ainsi pour tous les appareils que vous voudrez rajouter de la sorte en ajoutant leur ID ligne après ligne dans ce fichier.
Enfin, il faut donner les bons droit d’acces sur le périphérique connecté au niveau de votre hôte. Pour cela une règle udev à placer dans /etc/udev/rules.d/ sera nécessaire. Exemple toujours pour le Galaxy S2, un fichier samsungS2_android.rules qui contient:

SUBSYSTEM=="usb", SYSFS{idVendor}=="04e8", MODE="0666"

On déconnecte son appareil du PC, on redémarre udev avec un #/etc/init.d/udev restart et puis on rebranche le téléphone. voila ce que devrait vous sortir la commande adb devices si tout est bien configuré:

/mnt/Sdk/android-sdk-linux/platform-tools$ ./adb devices
List of devices attached
0123456789ABCDEF device

Voila avec tout ça vous êtes prêt à jouer avec Qt et Android.
Dans un post à venir, je détaillerai les premiers résultats (assez bluffant de simplicité je dois dire) obtenus avec le développement d’une petite application. Nous analyserons les avantages mais aussi les limitations de ce type de développement.

Catégories :Android, Linux Étiquettes : , , ,
  1. Aucun commentaire pour l’instant.
  1. No trackbacks yet.

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

%d blogueurs aiment cette page :