Google Android SDK - Installation de la plateforme de développement et architecture

Introduction

En 2012, la mobilité avec Android est plus que jamais autour de nous : smartphones, tablettes Android. Une voie technologique à explorer impérativement pour ne pas louper le coche. Mais avant de se jeter à bras le corps dans le développement d'applications mobiles Android avec Eclipse, il est très pertinent de comprendre et maîtriser, loin s'en faut, l'architecture de Google Android SDK au cours de son installation.

Le développement d'applications mobiles Android SDK n'est donc pas abordé ici, en revanche, l'installation pas à pas des outils et packages Android SDK dans un environnement Windows est décortiquée avec le souci de comprendre la plateforme et l'architecture d'Android SDK. Maîtriser l'agencement de Google Android SDK est le premier pas indispensable dans la montée en puissance vers la mobilité.

Au cours de cette installation pas à pas, divers sujets sont abordés : utilisation d'Android SDK Manager, installation des packages Android 2.3.3 et 4.1, installation d'add-ons comme Google APIs qui intègre Google Maps, installation de packages complémentaires comme Android Support Library (bibliothèque qui garantit les compatibilités ascendantes), Google Analytics ou encore Google AdSense pour mobiles.

Comment et où sont installés ces composants ? Quelles différences entre les images Android 1.x, 2.x, 3.x et 4.x ? Quels sont les packages à ne pas oublier d'installer comme par exemple Android Support Library ou ARM EABI v7a System Image pour Android 4.1 et pourquoi ? En toute modestie, cet article tente d'y répondre.

Les installations des plateformes Android et de Google Android SDK constituent la première étape du développement d'une application Android :

Cycle de vie d'une application Android, installation de Google Android SDK

Préparation de l'environnement

Environnement Windows

Les développements Android seront réalisés sur une plateforme Windows XP SP3 32 bits. Un répertoire C:\software\android est créé pour accueillir les outils nécessaires et le SDK Android.

mkdir C:\software\android

La variable d'environnement Windows %ANDROID_HOME% qui pointe sur ce répertoire est créée. Elle peut être créée en mode graphique ou avec regedit en ligne de commandes, pour cette dernière option une réouverture de session est nécessaire.

C:\> reg add "HKLM\System\CurrentControlSet\Control\Session Manager\Environment" /v ANDROID_HOME /d "C:\Software\android" /t REG_SZ

Installation de Java JDK JRE 7 (update 6), étape obligatoire si non installé

Java JDK (Java Developer's Kit) et JRE (Java Runtime Environment) sont indispensables dans l'environnement de développement Android avec Eclipse. L'installation de Java JDK/JRE n'est pas à faire si ces composants sont déjà installés, ce qui n'est pas le cas dans ce tutoriel.

La version 1.7 de Java JDK (update 6), version mature, est sélectionnée. Les téléchargements de Java JDK sont disponibles à l'adresse suivante : http://www.oracle.com/technetwork/java/javase/downloads/index.html.

L'exécutable d'installation est téléchargé (jdk-7u6-windows-i586.exe pour la version 1.7 update 6) et lors de la configuration de l'installation :

  • Java JDK 1.7 est installé dans le répertoire C:\Software\java\jdk-1.7. Ainsi l'installation n'est pas réalisée dans le répertoire par défaut C:\Program Files\..., répertoire système Windows et qui comporte un espace, espace pénible à gérer en mode batch.
  • L'installation de la machine JRE 1.7 (Java RunTime Environment) est réalisée dans le répertoire C:\Software\java\jre-1.7 pour les mêmes raisons que précédemment.

La variable d'environnement Windows %JAVA_HOME% qui pointe sur le répertoire d'installation du JDK Java 1.7 est créée. Elle peut être créée en mode graphique ou avec regedit en ligne de commandes, pour cette dernière option une réouverture de session est nécessaire.

C:\> reg add "HKLM\System\CurrentControlSet\Control\Session Manager\Environment" /v JAVA_HOME /d "C:\Software\java\jdk-1.7" /t REG_SZ

Cette variable %JAVA_HOME% sera particulièrement pratique lors des développements en mode batch.

Installation des outils Android SDK (Android SDK Tools)

Avant de pouvoir télécharger les packages Java Android SDK (Android 4.1, Android 2.3.3 etc...), les outils nécessaires à la gestion des packages et aux supports virtuels Android doivent être d'abord installés.

Installation des outils Android SDK

Ces outils sont livrés dans le programme d'installation "Google Android Tools" disponible à l'adresse suivante : http://developer.android.com/sdk/index.html. Il s'agit d'un exécutable MSI d'installation et la version 20.0.3 de Google Android Tools est installée lors de la rédaction de cet article (août 2012). Exécuter le programme d'installation après téléchargement :

D:\> installer_r20.0.3-windows.exe

Le programme d'installation vérifie immédiatement la disponibilité de Java JDK sur la plateforme. Si Java JDK n'est pas détecté par le programme, vérifier les variables %JAVA_HOME% et la configuration de Java JDK sur le système.

Android SDK Détection JDK

Le programme d'installation propose ensuite le chemin d'installation des outils Android SDK : dans cet article, ces outils sont installés dans %ANDROID_HOME%\android-sdk

Android SDK Répertoire installation

La variable d'environnement %ANDROID_SDK% pointant sur le répertoire %ANDROID_HOME%\android-sdk est créée pour simplifier les futurs scripts DOS en mode batch :

%ANDROID_SDK%=%ANDROID_HOME%\android-sdk

Présentation sommaire des outils Android SDK

Les outils Android SDK sont installés dans le répertoire %ANDROID_HOME%\android-sdk\tools. Ils sont nombreux et en voici une liste exhaustive par ordre d'importance :

  • Android SDK Manager : gestionnaire graphique des packages Android. Cet utilitaire sera utilisé par la suite pour descendre les images Android 2.3.3, Android 4.1...
  • AVD (Android Virtual Device) : gestionnaire graphique qui permet de configurer des supports mobiles (taille des SD Cards, RAM, résolution etc...), configuration qui est utilisée par les émulateurs Android sous Windows.
  • android : programme DOS appelant Java en lignes de commandes pour créér et mettre à jour des projets Android ainsi que créér, déplacer ou supprimer des supports mobiles AVD (Android Virtual Device).
  • APKBuilder : programme DOS appelant java en lignes de commandes pour la compilation et le packaging des applications Android (.apk), étape incontournable en vue du déploiement et de la publication sur les appareils mobiles.
  • Emulateurs Android pour Windows : émulateurs pour faire tourner des applications Android sur un support mobile AVD.
  • ddms (Dalvik Debug Monitor Server) : exécutable pour le débogage des applications Android.
  • SQLite : base de données mobile sqlite 3.
  • ...

Pour retrouver la liste de tous les outils installés : Android SDK Developers : Android SDK Tools

Contrairement aux versions précédentes, l'utilitaire serveur adb (Android Debug Bridge) n'est plus installé avec les outils Android SDK, il est désormais installé lors de la descente des packages Android. adb est un démon client serveur utilisant le protocole TCP (port par défaut 5037) et qui réalise le pont entre le client et l'émulateur.

Pour plus de souplesse dans l'appel de ces outils en mode batch, la variable %ANDROID_TOOLS% pointant sur le répertoire %ANDROID_SDK%\tools est créée :

%ANDROID_TOOLS%=%ANDROID_SDK%\tools

Configuration et installation des packages Android SDK

L'installation des packages Android 2.3.3, Android 4.1 etc... peut à présent démarrer en lançant l'utilitaire Android SDK Manager installé précédemment avec Android SDK Tools.

C:\> "%ANDROID_HOME%\android-sdk\SDK Manager"

Configuration des packages

L'utilitaire Android SDK Manager est une version graphique très intuitive, elle propose les plateformes Android (2, 3, 4...) par niveaux d'API. Pour l'histoire, voici grossièrement les fonctionnalités par niveaux de version majeure :



Android 2.x Smartphones Android
Android 3.x Tablettes Android
Android 4.x Fusion des API 2.x et 3.x : smartphones et tablettes Android
Choix des packages Android SDK

Voici la liste des packages sélectionnés avec en surbrillance jaune les packages obligatoires pour bien démarrer:

Catégorie Sous catégorie Description
Tools Android SDK Platform-tools Ce package doit être installé à la première installation, il intègre notamment ADB (Android Debug Bridge)
Android 4.1 SDK Platform Package du SDK Android 4.1

Samples for SDK Exemples du SDK Android 4.1

ARM EABI v7a System Image Depuis les versions 4 d'Android, l'image système d'Android pour les architectures core ARM n'est plus fournie en standard dans le SDK pour prendre en compte la diversification technologique des types de core sur les appareils mobiles (ARM, X86...). Ce package doit être installé pour pouvoir faire fonctionner l'émulateur Android 4. Si ce package est omis, il peut être réinstallé ultérieurement toujours avec l'utilitaire Android SDK Manager et l'émulateur Android 4 sera paramétré avec AVD.

Google APIs Add-on Google contenant notamment l'extension Google Maps.
Android 2.3.3 SDK Platform Package du SDK Android 2.3.3

Samples for SDK Exemples du SDK Android 2.3.3

Google APIs Add-on Google contenant notamment l'extension Google Maps.
Extras Android Support Library Package indispensable pour développer des applications Android avec pré-requis de versions minimales Android (compatibilités ascendantes). Extras - Google Support Library

Installation des packages

Cliquer sur le bouton "Install packages" pour démarrer l'installation des packages. Certains packages sont livrés avec une licence à accepter (Google APIs...) et ne seront installés que si l'option "Accept All" est cochée avant de cliquer sur le bouton "Install" :

Extras - Google Support Library

Une fenêtre de log (Android SDK Manager Log) affiche l'évolution de l'installation qui peut prendre plusieurs minutes en fonction des packages sélectionnés. L'installation est réussie dès le message final "Done loading packages." dans cette fenêtre :

...
Done loading packages.
Preparing to install archives
Downloading Android SDK Platform-tools, revision 14
Installing Android SDK Platform-tools, revision 14
Stopping ADB server failed (code -1).
Installed Android SDK Platform-tools, revision 14
Downloading SDK Platform Android 4.1, API 16, revision 2
Installing SDK Platform Android 4.1, API 16, revision 2
Installed SDK Platform Android 4.1, API 16, revision 2
Downloading SDK Platform Android 2.3.3, API 10, revision 2
Installing SDK Platform Android 2.3.3, API 10, revision 2
Installed SDK Platform Android 2.3.3, API 10, revision 2
Downloading Samples for SDK API 16, revision 1
Installing Samples for SDK API 16, revision 1
Installed Samples for SDK API 16, revision 1
Downloading Samples for SDK API 10, revision 1
Installing Samples for SDK API 10, revision 1
Installed Samples for SDK API 10, revision 1
Downloading Android Support Library, revision 10
Installing Android Support Library, revision 10
Installed Android Support Library, revision 10
Downloading Google USB Driver, revision 6
Installing Google USB Driver, revision 6
Installed Google USB Driver, revision 6
Downloading ARM EABI v7a System Image, Android API 16, revision 2
Installing ARM EABI v7a System Image, Android API 16, revision 2
Installed ARM EABI v7a System Image, Android API 16, revision 2
Downloading Google APIs, Android API 16, revision 2
Installing Google APIs, Android API 16, revision 2
Installed Google APIs, Android API 16, revision 2
Downloading Google APIs, Android API 10, revision 2
Installing Google APIs, Android API 10, revision 2
Installed Google APIs, Android API 10, revision 2
Updated ADB to support the USB devices declared in the SDK add-ons.
Stopping ADB server succeeded.
Starting ADB server succeeded.
Done. 10 packages installed.
Done loading packages.

Quelques remarques au cours de l'installation :

  • Au cours de l'installation des packages, le message d'erreur "Stopping ADB server failed (-1)." apparaît dans la console de log : cette erreur est sans incidence, l'installation tente en effet d'arrêter le serveur de debug ADB qui n'est pas démarrré puisqu'il s'agit d'une première installation. L'arrêt de ce serveur est indispensable dans le cas de l'installation ou la mise à jour de packages.
  • En fonction du débit internet ou d'éventuelles perturbations sur le site Google hébergeant les packages, le téléchargement peut échouer pour certains packages : ce n'est pas problématique, il suffit dans ce cas de retenter l'installation du ou des packages en échec.

L'installation réalisée ici consomme 880 Mb alors que celle-ci est la plus minimale possible (documentations, code source écartés de l'installation).

Structure de l'installation des packages

La structure de l'installation des packages est assez simple à appréhender bien qu'elle différe quelque peu entre Android 1.x/2.x/3.x et Android 4.x au sujet de l'installation des images systèmes. Dans les tableaux qui suivent %ANDROID_HOME_SDK% correspond au répertoire d'installation d'Android SDK (%ANDROID_HOME%\android-sdk)

Grossièrement, l'architecture de l'installation est la suivante :

Package Répertoire d'installation
Android SDK Platform-tools ADB (Android Debug Bridge) %ANDROID_HOME_SDK%\platform-tools
Android x.ys (API Level z) %ANDROID_HOME_SDK%\platforms\android-z
Exemples Android x.y (API Level z) %ANDROID_HOME_SDK%\samples\android-z
Exception : Pour les versions Android 1.6 et 1.5 (API level 4 et 3), les exemples sont installés dans %ANDROID_HOME_SDK%\platforms\android-1.w\samples
Add-on Android x.y (API Level z) Google APIs, etc... %ANDROID_HOME_SDK%\add-ons\addon-<libelle>-z

Concrètement, dans le contexte de cette installation : Android 2.3.3 (API Level 10) et Android 4.1 (API Level 16)

Package Répertoire d'installation
Android SDK Platform-tools ADB (Android Debug Bridge) %ANDROID_HOME_SDK%\platform-tools
Android 4.1 (API Level 16) %ANDROID_HOME_SDK%\platforms\android-16
Android 2.3.3 (API Level 10) %ANDROID_HOME_SDK%\platforms\android-10
Google APIs pour Android 4.1 (API Level 16) %ANDROID_HOME_SDK%\add-ons\addon-google_apis-google-16
Google APIs pour Android 2.3.3 (API Level 10) %ANDROID_HOME_SDK%\add-ons\addon-google_apis-google-10
Exemples Google Android 4.1 (API Level 16) %ANDROID_HOME_SDK%\samples\android-16
Exemples Google Android 2.3.3 (API Level 10) %ANDROID_HOME_SDK%\samples\android-10

Images systèmes, différences entre Android 1.x/2.x/3.x et 4.x

Historiquement, les images systèmes (system.img) d'Android 1.x, 2.x et 3.x utilisées par l'émulateur sont installées dans le répertoire %ANDROID_HOME_SDK%\platforms\android-<api-level>\images et ces images sont de plus en plus volumineuses avec les versions.

Package Répertoire d'installation Taille (Mb)
Android 1.6 (API Level 4) %ANDROID_HOME_SDK%\platforms\android-4 62
Android 2.3.3 (API Level 10) %ANDROID_HOME_SDK%\platforms\android-10 91
Android 3.2 (API Level 13) %ANDROID_HOME_SDK%\platforms\android-13 117

À partir de la version 4.0, les images systèmes sont désormais installées dans le répertoire %ANDROID_HOME_SDK%\system-images\android-<api-level> et le type d'architecture des cores des supports mobiles (ARM, Intel X86...) est intégré dans la nomenclature du répertoire d'installation des images. Cette évolution prend en compte la diversification des types de cores sur les appareils mobiles qui jusqu'aux versions 3 incluses tournaient essentiellement avec une architecture core ARM.

Package Répertoire d'installation Taille (Mb)
Android 4.0.3 (API Level 15 - ARM v7a) %ANDROID_HOME_SDK%\system-images\android-15\armeabi-v7a 170
Android 4.0.3 (API Level 15 - Intel X86 Atom) %ANDROID_HOME_SDK%\system-images\android-15\x86 219
Android 4.1 (API Level 16 - ARM v7a) %ANDROID_HOME_SDK%\system-images\android-16\armeabi-v7a 201

Packages complémentaires ou extras (Android Support Library, Google Analytics...)

Les packages complémentaires (Android Support Library, Google Ad Mobs SDK, Google Analytics SDK...) sont installés dans le répertoire %ANDROID_HOME_SDK%\extras

Package Extra Répertoire d'installation
Google AdSense pour mobiles SDK (Google AdMob Ads SDK) %ANDROID_HOME_SDK%\extras\google\admob_ads_sdk
Google Analytics SDK pour mobile (Google Analytics SDK) %ANDROID_HOME_SDK%\extras\google\analytics_sdk

À propos du package Android Support Library, package indispensable pour certifier une version minimale d'Android lors des développements d'applications mobiles, l'installation est également réalisée dans le répertoire %ANDROID_HOME_SDK\extras et avec des sous-répertoires correspondant aux versions majeures stables des APIs Android :

Package Extra Répertoire d'installation Description
Android Support Library %ANDROID_HOME_SDK%\extras\android\support\v4 Android 1.6 minimum (API Level 4)

%ANDROID_HOME_SDK%\extras\android\support\v7 Android 2.1 minimum (API Level 7)

%ANDROID_HOME_SDK%\extras\android\support\v13 Android 3.2 minimum (API Level 13)

Conclusion

Il serait facile de cliquer au cours de l'installation sur NextNext Finish. Mieux comprendre ce qui est installé ainsi que l'architecture et l'agencement de Google Android SDK éviteront bien des tracas par la suite.

Par exemple, si le package complémentaire "Android Support Library" est oublié : il est impossible de définir avec Eclipse la version minimale d'Android lors du développement d'applications. Si le package "ARM EABI v7a System Image" avec Android 4.1 n'est pas installé : l'émulateur Android 4 ne peut être lancé.