Mise en place de l environnement Conception et développement d applications mobiles - Android F. Guinand (frederic.guinand@univ-lehavre.fr) IUT Le Havre
Plan du cours mise en place de l environnement 1 eclipse 2 android SDK + configuration 3 ADT plugin pour eclipse + configuration création d une première application (très simple) un rapide aperçu de AVD (Android Virtual Device) exécution d une première application sur l émulateur installation de l application sur le matériel (téléphone et/ou tablette) un aperçu de quelques outils complémentaires.
Environnement windows XP, vista, 7 ou 8, linux ou mac os X (x86 only) jdk 6 ou +. Installations eclipse IDE : Integrated Development Environment. Android SDK : Software Development Kit (ensemble d outils pour le développement d applications Android). Android Development Tools (ADT) plugin pour eclipse
Installations sur Windows
Sur Windows je vous propose de créer un répertoire Android sur votre bureau je vous suggère également d ajouter un raccourci vers un terminal (commande ms-dos) sur le bureau ou dans la barre des tâches. En cas de problème vous pouvez consulter l une des pages suivantes (Windows 8) : http ://pcsupport.about.com/od/windows-8/a/command-prompt-windows-8.htm ou http ://www.guidingtech.com/16601/pin-command-prompt-run-as-adminwindows-8-start-screen-taskbar/)
Sur Windows dans votre navigateur ouvrez la page https ://www.eclipse.org/downloads/ choisissez la dernière version d eclipse (probablement eclipse Luna 4.4.1) release pour Windows, cliquez sur le lien Eclipse IDE for java Developers Attention (voir transparent suivant)
Sur Windows la version d eclipse choisie dépend de votre système (32 ou 64 bits), mais également de la version de java installée sur votre machine. Dans le cas d un système 64 bits hébergeant un java 32 bits, vous devez choisir eclipse 32 bits ou changer votre version de java pour la version 64 bits avant d installer eclipse 64 bits. version Système : 32 ou 64 bits : vous pouvez accéder à cette information dans les propriétés de votre ordinateur (en cas de problème vous pouvez consulter la page suivante http ://windows.microsoft.com/en-us/windows/32-bit-and-64-bit-windows#1tc=windows-7) pour java, ouvrez une fenêtre de commandes ms-dos et tapez la commande java -version si vous obtenez : Java HotSpot(TM) 64-Bit Server VM (build...) (java 64 bits est installé) autrement vous devez avoir Java HotSpot(TM) Client VM (build...) choisissez ensuite un site miroir, le téléchargement devrait commencer (plus de 150 Mo, soyez patient...).
Sur Windows à la fin du téléchargement, ouvrez l archive et cliquez sur eclipse.exe eclipse devrait vous demander d indiquer un emplacement pour le workspace, le répertoire où sont rangés les codes et certaines données. Choisissez un emplacement (par exemple à l intérieur du répertoire Android situé sur votre bureau). passons maintenant à l installation du SDK d Android et au plugin ADT pour eclipse.
Windows - Android SDK + Tools allez sur la page dédiée au SDK : http ://developer.android.com/sdk/index.html (la page peut avoir changé depuis la rédaction de ce cours)
Windows - Android SDK + Tools
Windows - Android SDK + Tools acceptez les conditions et installez le SDK à la fin de la procédure d installation une fenêtre pour la gestion du SDK Android s ouvre Android SDK Manager. dans cette fenêtre plusieurs éléments sont déjà cochés pour leur installation ou sont déjà installés (les éléments cochés peuvent varier par rapport à la date de rédaction de ce cours) :
Windows - Android SDK + Tools répertoire "Tools" : Android SDK Tools 24.0.1 (installé) Android SDK Platform-tools 21 (il s agit de la dernière version, il doit être coché sinon cochez-le ou cochez la dernière version) Android SDK Build-tools (idem) Android 5.0.1 (API 21) tout est coché DÉCOCHEZ-LE! Android 4.4.2 (API 19) décoché COCHEZ-LE! et dans le même répertoire, décochez "Glass Development Kit Preview" répertoire "Extras" Android Support Library (cochez-le si non coché) Google USB Drivers (cochez-le si non coché) cliquez sur Install xx packages, acceptez la license et install Rendez-vous au transparent Installation ADT (après la partie dédiée à Linux)
Installations sur Linux je vous suggère de créer un répertoire Android à la racine de votre compte : mkdir ${HOME}/Android/
Sur Linux (Ubuntu 14.04 LTS) - eclipse ouvrir un terminal dans le terminal tapez la commande : sudo apt-get install eclipse tout s installe sans autre intervention (version 3.8 au moment de la rédaction de ce cours) lancez eclipse vous pouvez indiquer ${HOME}/Android/workspace comme workspace. si la fenêtre d eclipse s ouvre, tout devrait aller pour le mieux, vous pouvez fermer cette fenêtre pour le moment
Linux - Android SDK Allez sur la page du SDK : http ://developer.android.com/sdk/index.html
Linux - Android SDK
Linux - Android SDK après le téléchargement vous devriez retrouver le fichier dans votre répertoire Téléchargement ou Download. Déplacez-le dans le répertoire ${HOME}/Android/ placez-vous dans ce répertoire et ouvrez l archive : tar xcvf android... placez-vous dans le nouveau répertoire android-sdk-linux une fois dans le répertoire tapez la commande : tools/android ou./tools/android en fonction de la valeur de votre variable d environnement $PATH
Linux - Android SDK une fenêtre apparaît, il s agit du gestionnaire du SDK Android. NE CLIQUEZ PAS ENCORE SUR INSTALL!!! cette fenêtre permet la mise à jour de l environnement Android
Linux - Android SDK répertoire "Tools" : Android SDK Tools 24.0.1 (installé) Android SDK Platform-tools 21 (la dernière version peut-être supérieure à 21, il doit être coché sinon cochez-le) Android SDK Build-tools (idem) selection de l API : API, Android 5.0 (API 21) : NON (désélectionnez-le) API, Android 4.4W (API 20) : NON API, Android 4.4.2 (API 19) : OUI à l intérieur du répertoire Glass Development Kit Preview : NON (désélectionnez-le).
Linux - Android SDK sélection dans le répertoire Extras : Android Support Library 21 (déjà sélectionné) : OUI puis cliquez sur install, acceptez la license et soyez patient...
Installation de l ADT indépendant du système d exploitation de votre machine de développement
ADT Android 4.4.2 (API 19) Android platform (4.4.2 : KitKat) API level : 19 problèmes de compatibilité : développer des applications ciblant la plateforme Android 3.1 signifie Ok pour des matériels équipés d une plateforme 3.1 aucune garantie pour des matériels équipés d une plateforme < 3.1 en fonction de vos besoins, et afin d atteindre le plus grand nombre de machines lorsque vous développerez une nouvelle application essayez de choisir la plateforme Android (min SDK) la plus faible possible installation de l Android Development Tools (ADT)
ADT pour eclipse lancez eclipse, il est opérationnel pour java mais pas encore pour Android allez dans le menu "Help > Install New Software cliquez sur le bouton "Add", une nouvelle fenêtre s ouvre : Renseignez les champs "Name" et "Location" Name : ADT Location : https ://dl-ssl.google.com/android/eclipse/ OK. Pending...
ADT pour eclipse Dès que les Developper Tools apparaissent, ouvrez le menu désélectionnez "Android Native Development Tools" (for C++ programming with Android) et "Tracer for Open GL..." cliquez ensuite deux fois sur Next, acceptez les conditions, puis "Finish" et attendez la fin du processus d installation Remarque : le système peut vous avertir que le contenu n est pas signé, ignorez cet avertissement et cliquez sur OK. après l installation redémarrez eclipse.
Troubleshooting / Additional Configuration Lorsque vous relancez eclipse, une boîte de dialogue peut s ouvrir indiquant : Location of the Android SDK has not been setup in the preferences ouvrez les préférences et retrouvez l emplacement du SDK (le répertoire au sein duquel vous avez placé et extrait le SDK d Android - pour linux il s agit du répertoire ${HOME}/Android/ si vous avez suivi les indications du départ
Troubleshooting / Additional Configuration vérifions maintenant la barre d outils et les raccourcis d eclipse : allez dans le menu Window > Customize Perspective... dans l onglet Command Groups Availability, cochez les éléments suivants s ils ne sont pas déjà sélectionnés : Android SDK and AVD Manager Android Wizards Faites la même chose dans l onglet ToolBar Visibility Dans l onglet Shortcuts (raccourcis), cochez Android Application Project tout devrait bien se passer...
si vous avez... dans le menu déroulant et dans la barre d outils nous en avons (presque) fini avec la configuration
Votre première app Android
nous commencons avec un nouveau projet d application Android : eclipse File > New > Android Application Project
Application Name ce nom apparaitra sur le smartphone mais également dans Google Play Project Name (usage interne de eclipse, pas d influence). Package Name. Le choisir pour éviter les conflits de noms. Minimum SDK : pour des raisons de lisibilité du code choisissez API 14 Target SDK : API 19 Compile with API 19
Cliquez "Next" plusieurs fois (y compris choix de l icône) Validez le choix de Blank Activity jusqu à obtenir : Activity Name (e.g. MyFirstActivity). Ce nom apparaitra dans la fenêtre de l appareil. Cliquez sur "Finish"
Après un bref instant vous obtenez...
La moulinette Android génère de nombreux fichiers...
Visualisation de l interface graphique
Exécution de l application nous verrons en détail tous ces fichiers plus tard. une fois l application prête (pas d erreur dans eclipse), nous l exécutons : sur l émulateur sur des architectures réelles (smartphones et tablettes) mais avant... il faut définir un émulateur et/ou... connecter un appareil mobile
AVD Android Virtual Device
Émulateur - AVD les Android Virtual Devices sont des émulateurs permet de tester les applications sans les installer sur de vrais appareils les AVD peuvent être configurés pour émuler de nombreuses caractéristiques matérielles (GPS, RAM, etc.)
Exécution - AVD - Emulateur définition d une nouvelle architecture cible avec AVD cliquez dans la barre d outils d eclipse sur Android Virtual Device Manager Create...
Exécution - AVD - Emulateur exemple avec un Galaxy SIII mini...
Exécution - AVD - Emulateur
Exécution - AVD - Emulateur une fois l appareil virtuel créé... Exécution choisir l onglet MyFirstApplication.java ensuite cliquez sur le bouton Run et choisissez Run Configuration...
Exécution - AVD - Emulateur vous devriez obtenir
Exécution - AVD - Emulateur dans la console vous pouvez vérifier que l application a été lancée
Exécution - AVD - Emulateur le comportement peut être différent en fonction de l AVD, de la version d eclipse et de la version du SDK.
Exécution - AVD - Emulateur dans la console [2014-10-28 14 :52 :46 - MyFirstApplication] HOME is up on device emulator-5554 [2014-10-28 14 :52 :46 - MyFirstApplication] Uploading MyFirstApplication.apk onto device emulator-5554 [2014-10-28 14 :52 :47 - MyFirstApplication] Installing MyFirstApplication.apk... [2014-10-28 14 :54 :14 - MyFirstApplication] Success! [2014-10-28 14 :54 :15 - MyFirstApplication] Starting activity mobapp.myfirstapplication.myfirstactivity on device emulator-5554
Exécution sur une architecture réelle
Exécution - Machines réelles Smartphone WIKO et/ou votre propre smartphone Comment charger l app sur la machine? Il y a plusieurs solutions possibles : 1 en utilisant l outil adb des platform tools d Android 2 directement depuis eclipse 3 en utilisant une SD Card 4 en envoyant le package par email et en l ouvrant dans la machine
Exécution - Machines réelles avec adb adb : Android Debug Bridge programme Client/Serveur pour communiquer avec l émulateur et les machines réelles daemon daemon client Machine serveur 5037 client client Emulateur Machine de développement
Exécution - Machines réelles avec adb adb peut être utilisé en ligne de commande avec des options et des paramètres : Syntaxe : adb [-d -e -s <serialnumber>] commande adb help adb devices liste des clients adb en cours d exécution (emulateurs/machines) List of devices attached c7345d1e device si la machine n apparait pas, ce peut être parce que les pilotes ne sont pas chargés, téléchargez adb Universal Driver
Exécution - Machines réelles ADB Troubleshooting Accès refusé adb devices List of devices attached c7345d1e unauthorized
Exécution - Machines réelles Solution ADB Troubleshooting vous devez autoriser le débogage USB pour permettre la communication entre adb et votre smartphone
Exécution - Machines réelles Pas de serveur adb devices ADB Troubleshooting adb server is out of date. killing... cannot bind tcp :5037 ADB server didn t ACK * failed to start daemon * error :
Exécution - Machines réelles ADB Troubleshooting Solution adb start-server adb server is out of date. killing... * daemon started successfully * List of devices attached emulator-5554 device
Exécution - Machines réelles ADB Troubleshooting Machine non présente attachez le smartphone à votre machine de développement par la prise USB et lancez la commande "adb devices" List of devices attached emulator-5554 device le smartphone n apparaît pas...
Exécution - Machines réelles ADB Troubleshooting Solution autorisez USB debugging dans les propriétés du système du smartphone (sous Developer options). Pour cela : sur Android 4.2 et les plateformes suivantes, l écran "Developer options" est caché par défaut. Pour le rendre visible allez dans Settings > About phone et cliquez sur Build number sept fois. Retournez à l écran précédent pour trouver les options de développement cliquez sur cette option, un nouvel écran apparaît avec "USB debugging". En autorisant USB debugging il est maintenant possible au smartphone de communiquer avec le serveur adb.
Execution - Real Device ADB Troubleshooting I ve already set USB debugging but device is still "not present" it may be caused by the used protocol when you allow USB debugging and plug your smartphone to your development machine, the smartphone chooses the kind of connection : connected as "multimedia peripheral (MTP)" or as "Camera (PTP)" if your current used protocol is MTP you should switch to PTP
Exécution - Machines réelles ADB Troubleshooting Device offline List of devices attached emulator-5554 device c7595dff offline
Exécution - Machines réelles ADB Troubleshooting Solution? plusieurs raisons peuvent être à l origine du problème, parmi celles-ci l une des raisons peut être que le SDK est les outils associés ne forment pas un ensemble cohérent entre la machine de développement et les architectures cibles. Il convient de vérifier que la version du client sur l architecture cible est compatible avec la version du serveur sur la machine de développement. si cela vous arrive, avertissez nous
Exécution - Machines réelles Installation de l app sur la cible adb -s serialnumber install ${HOME}/Android/workspace/MyFirstApplication/bin/MyFirstApplication.apk installation avec adb messages dans l onglet console 2933 KB/s (384788 bytes in 0.128s) pkg : /data/local/tmp/myfirstapplication.apk Success
Exécution - Machines réelles Exécution Tapez sur l icône de l app cela devrait fonctionner!!
Exécution - Machines réelles A partir d eclipse Cliquez sur Run Configurations... > Target and cochez le bouton always prompt to pick device Cliquez sur le bouton Run
Exécution - Machines réelles Cela devrait fonctionner!! si vous vous positionnez sur l écran des applications sur votre smartphone, vous devez voir une nouvelle app nommée MyFirstApplication vous pouvez maintenant la lancer directement depuis le smartphone
Un ensemble complet d outils Android Tools situés dans le répertoire ${HOME}/Android/android-sdk-xxx/ trois sous-répertoires : platform-tools build-tools tools dans la suite trois outils
Tools ${SDK_DIR}/platform-tools/adb cible (target) : adb -d commande seulement si un seul matériel est connecté adb -e commande seulement si un seul émulateur est en cours d exécution adb -s serialnumber commande dans tous les autres cas data (nous supposons qu un seul matériel est connecté) : adb -d install chemin-vers-le/package-à-installer.apk adb -d push depuis/machine/fichier vers/smartphone/fichier adb -d pull depuis/smartphone/fichier vers/machine/fichier adb -d shell exécute un shell sur le smartphone depuis un terminal adb -d shell commande exécute une commande shell sur le smartphone et retourne les résultats sur l écran du terminal
Tools autres outils screenshot2 : prend un instantané de l écran de votre smartphone depuis un terminal android déjà présent dans eclipse au travers de différents outils gestion des Android Virtual Devices : android avd mise à jour des SDK : android sdk création de projets Android : android create-project -OPTIONS [name, location, target ID, etc.]
A votre tour exécutez l application précédente et prenez une photo de l écran prenez quelques photos avec votre smartphone puis copiez les images sur la machine de développement copiez un fichier de votre machine (image par exemple ou fichier pdf) vers votre smartphone ouvrez ce ou ces fichiers sur votre smartphone en utilisant l AVD Manager, créez une nouvel AVD correspondant aux caractéristiques de la tablette Galaxy Tab 2 10.1". Cherchez les spécifications techniques de la tablette sur le web exécutez l application MyFirstApplication sur ce nouvel AVD.
Références Création de projets http ://developer.android.com/training/basics/firstapp/creating-project.html Création de machines virtulles avec AVD http ://developer.android.com/tools/devices/managing-avds.html ADB http ://developer.android.com/tools/help/adb.html Emulateur https ://developer.android.com/tools/devices/emulator.html
Prochaines étapes création et analyse d une application introduction aux interfaces graphiques sous Android