Yoctopuce et Android Studio

Yoctopuce et Android Studio

Cette semaine, nous avons publié notre librairie pour Android sur le dépôt de librairies jcenter. On a profité de cette occasion pour écrire un petit tutoriel sur comment ajouter notre librairie à un projet Android Studio.





Lorsque nous avions publié la librairie Yoctopuce pour Android il y a deux ans, l’environnement de développement de référence était Eclipse. Pour compiler une application, il fallait utiliser Eclipse lors du développement et des scripts ANT pour compiler la même application depuis une ligne de commande. Dans les deux cas, le processus était fastidieux et difficilement personnalisable.

Heureusement, en mai 2013, Google a annoncé un nouvel environnement de développement qui a remplacé Eclipse: Android Studio. Pendant un temps Android Studio a coexisté avec Eclipse, mais depuis décembre passé Android Studio est devenu l'IDE officiel pour développer une application.

Android Studio propose une interface beaucoup plus convivial et surtout utilise un nouveau système de compilation : Gradle. Toutes les informations de compilation sont stockées dans un fichier build.gradle. Il est possible de modifier à la main les fichier gradle, mais il est plus facile d'utiliser les wizards d'Android Studio (qui vont modifier ces mêmes fichiers).

Il existe quatre solutions pour ajouter la librairie Yoctopuce à un projet Android Studio.

  • Copier les sources
  • Copier le fichier .jar qui contient les classes compilées
  • Importer le fichier .aar qui contient les classes compilées
  • Ajouter une dépendance jcenter à votre script gradle


Copier les fichiers sources


C'est la solution la plus basique. Il suffit de télécharger notre librairie depuis notre site web et de copier le contenu du répertoire YoctoLib/src/main/java/ dans le répertoire source de votre projet.

Avec cette solution, vous n'avez pas besoin de modifier vos scripts de build. Un copier-coller et c'est parti! L'autre avantage pour les plus courageux est que vous pouvez modifier directement la librairie;-) Il faut cependant faire attention à copier tous les fichiers ensemble. Il faut faire particulièrement attention de ne pas mélanger les fichiers de deux versions lors de la mise à jour de la librairie.

Copier le fichier .jar


Dans le répertoire Binaries de la librairie Yoctopuce pour Android, il y a un fichier YoctoApi.jar qui comporte toutes les classes compilées. Il faut copier le fichier YoctoApi.jar dans le répertoire libs de votre projet et modifier le script gradle pour l'inclure lors de la compilation. On peut le faire depuis l'IDE avec la fonction "Add As Library" lors d'un clic droit sur le fichier .jar, ou en ajoutant la ligne suivante au fichier build.gradle:

  compile files('libs/YoctoAPI.jar')



Les avantages du fichier .jar sont que le temps de compilation est un peu plus court et qu'il n'y a qu'un seul fichier à maintenir à jour.

Importer le fichier .aar


Le type de fichier .arr (pour Android ARchive) est un nouveau format d'archive qui a été introduit avec Android Studio. Cette archive contient non seulement les classes Java compilées mais peut aussi contenir des fichiers spécifiques à la plate-forme Android (ex: AndroidManifest.xml, les ressources, etc.).

Ce nouveau format de libraire est très utile pour les librairies graphiques qui nécessitent des fichiers graphiques ou des ressources externes en plus des classes Java. Il permet de tout inclure dans un seul fichier, contrairement à un fichier .jar. Mais pour notre librairie, cela n'apporte rien car notre libraire contient uniquement des classes Java compilées.

La librairie Yoctopuce inclut aussi un fichier YoctoApi.aar dans le répretoire Binaries. Pour importer le fichier .aar dans un projet Android Studio, il faut passer par la fenêtre "Project Structure" et ajouter un nouveau module en cliquant sur l’icône '+' verte. Cela lance un wizard qui permet d'inclure le fichier .aar au projet.

Le wizard pour inclure une librairie au format AAR
Le wizard pour inclure une librairie au format AAR



Attention, cette étape va uniquement créer un nouveau module "YoctoAPI" qui est utilisable par le module principal (l'application). Dans la fenêtre "Project Structure", il faut aussi sélectionner l'application et ajouter une dépendance au module "YoctoAPI" que l'on vient de créer pour que l'application soit compilée correctement.

Ajouter une dépendance jcenter


Mise à jour: Suite à l'annonce de JFrog de fermer le repository JCenter, nous avons décidé de migrer notre libraire sur mavenCentral. L'article "Migration de JCenter vers mavenCentral" explique comment utiliser mavenCentral au lieu de JCenter.

Jcenter est le dépôt de librairie maven qui est supporté nativement par gradle et Android Studio. C'est en fait un sur-ensemble du dépôt central de maven. Il fonctionne selon de la même manière: on spécifie le nom et la révision des librairies qui sont utilisées par l'application. Lors de la compilation, les librairies sont automatiquement téléchargées et ajoutées au binaire.

Cette solution est très simple à mettre en place. Il suffit d'ajouter une référence à "com.yoctopuce.android:YoctoLib" à la liste de dépendances pour que le projet soit compilé automatiquement avec la dernière version disponible de la libraire Yoctopuce pour Android.

Cette dépendance peut être ajoutée directement dans le fichier build.gradle dans la section "dependencies".

apply plugin: 'com.android.application'

android {
    compileSdkVersion 21
    buildToolsVersion "21.1.2"

    defaultConfig {
        applicationId "com.yoctopuce.examples.myapplication"
        minSdkVersion 15
        targetSdkVersion 21
        versionCode 1
        versionName "1.0"
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:appcompat-v7:22.1.1'
    compile 'com.yoctopuce.android:YoctoLib:+'
}



Mais il est aussi possible de passer par la fenêtre "Project Structure". Il faut sélectionner le module de l'application, ouvrir l'onglet "dependencies" et ajouter une dépendance "com.yoctopuce.android:YoctoLib:+" de type "maven". En cherchant "com.yoctopuce.android", le wizard va proposer la dernière version de la libraire publiée.

Attention à ne pas confondre la libraire "com.yoctopuce.android:YoctoLib" et "com.yoctopuce.java:yoctolib". La libraire "com.yoctopuce.java:yoctolib" est la librairie Yoctopuce pour Java pour les plateformes autres que Android. Si vous utilisez cette librairie, vous ne pourrez pas accéder aux modules branchés sur le port USB.

Conclusion


Voici une vidéo qui illustre les quatre méthodes pour ajouter la librairie à un projet Android Studio:

  



Vous avez maintenant toutes les clefs en main pour choisir la méthode qui convient le mieux pour ajouter la librairie Yoctopuce à votre application Android.

Commenter aucun commentaire Retour au blog












Yoctopuce, get your stuff connected.