Kim Barloso

Android Eclipse : développement sous le SDK Android

2022-10-29

Dans ce tutoriel, vous apprendrez comment commencer à développer pour Android, à savoir des applications mobiles sur la plateforme Android Eclipse + SDK. Aujourd'hui, il existe de nombreuses approches pour développer et créer des applications mobiles pour Android. Les appareils matériels sophistiqués, les tablettes et les différentes plateformes logicielles (Symbian OS, iOS, WebOS, Windows Phone 7...) offrent un espace infini aux développeurs.

La liste des applications pour commencer à développer des applications mobiles pour Android est donc vaste. Quelle plateforme choisir ? Quel langage de programmation apprendre ? Quel ensemble d'applications choisir pour la planification d'un projet ? Dans ce guide, vous apprendrez à vous lancer dans le développement d'applications mobiles pour la plate-forme Android, le système d'exploitation mobile ouvert de Google.

Pourquoi Android ?

Android est une plateforme ouverte basée sur le noyau Linux. Il est installé sur des milliers d'appareils provenant d'un large éventail de fabricants. Android fournit des applications pour chaque type de matériel imaginable sur les appareils mobiles d'aujourd'hui - boussoles numériques, caméras vidéo, GPS, capteurs, etc.

Les outils de développement Android gratuits vous permettent de commencer rapidement à créer des applications gratuites ou presque gratuites. Lorsque vous êtes prêt à exposer votre application au monde entier, vous pouvez la publier via Android Market. La publication sur l'Android Market nécessite des frais d'inscription uniques (25 dollars au moment de la rédaction de cet article) et, contrairement à l'App Store d'Apple (qui est très strict en matière de codage), votre application peut être téléchargée et achetée après un examen rapide - si l'application ne viole pas les règles et la loi.

Quelques autres différences du SDK Android vous offrent des avantages en tant que développeur :

  • Le SDK Android est disponible pour Windows, Mac et Linux, vous n'avez donc pas besoin de payer un nouveau matériel pour écrire des applications.
  • Le SDK intègre Java. Si vous êtes familier avec le langage de programmation Java, vous avez déjà fait la moitié du chemin.
  • Avec la distribution sur l'Android Market, l'application est disponible pour des centaines de milliers d'utilisateurs à la fois. Vous n'êtes pas limité au marché officiel car il existe des alternatives. Par exemple, vous pouvez publier l'application sur votre blog. Selon les rumeurs, Amazon préparerait sa propre boutique d'applications Android.
  • En plus de la documentation technique du SDK, de nouvelles ressources sont créées pour les développeurs Android. La plateforme gagne en popularité auprès des utilisateurs et des développeurs.

Arrêtons de parler et commençons à développer des applications Android !

Installation d'Eclipse et du SDK Android

L'environnement recommandé pour développer des applications Android est Eclipse avec le plugin Android Development Toolkit (ADT) installé. Je vais le décrire plus loin.

  • Télécharger le SDK Android pour votre plateforme (Windows, Mac OS X ou Linux).
  • Télécharger les fichiers téléchargés à tout emplacement mémorable sur votre disque dur (sous Linux, je m'en tiens au chemin /opt/local/).
  • Si Eclipse est déjà installé, télécharger et installer le paquet Eclipse IDE for Java Developers. Pour la programmation, Google recommande Eclipse 3.5 (Galileo).
  • Lancez Eclipse et choisissez Aide->Installer un nouveau logiciel.
  • Cliquez sur Ajouter dans la fenêtre Logiciels disponibles.
  • Entrez Android Development Tools dans le champ Nom et //dl-ssl.google.com/android/eclipse/ dans le champ Emplacement.
  • Appuyez sur OK et cochez Outils de développement dans la liste des logiciels disponibles. Cela installe les outils de développement Android et le DDMS, l'outil de débogage pour Android.
  • Cliquez sur Suivant et Terminer pour installer le plugin. Vous devez redémarrer Eclipse une fois après l'installation.
  • Après le redémarrage d'Eclipse, sélectionnez Window->Preferences et vous devriez voir Android dans la liste des catégories.
  • Maintenant, vous devez indiquer à Eclipse où se trouve le SDK Android. Cliquez sur Android, puis sur Parcourir pour sélectionner l'emplacement des fichiers SDK décompressés. Par exemple /opt/local/android-sdk.

  • Cliquez sur OK pour qu'Eclipse se souvienne de l'emplacement du SDK.

Organisez votre plateforme Android pendant le développement

Avant de commencer à écrire des applications Android, vous devez télécharger le SDK pour la plateforme Android. Chaque plateforme possède sa propre version du SDK Android, qui est installée sur les appareils des utilisateurs. Pour Android 1.5 et plus, il existe deux plateformes : le projet Android Open Source et Google.

Le projet Android Open Source est une plateforme open source mais n'inclut pas les extensions de Google telles que Google Maps. Si vous ne souhaitez pas utiliser l'API Google, la fonctionnalité Google Maps ne sera pas disponible pour votre application. Sauf si vous avez une raison spécifique de le faire, je vous recommande de configurer le ciblage sur l'une des plateformes Google, car cela vous permet d'utiliser les propres extensions de Google.

  • Choisissez Window->Android SDK et AVD Manager.
  • Cliquez sur Available Packages dans la colonne de gauche et vérifiez le référentiel pour afficher les plateformes Android disponibles.
  • Vous pouvez sélectionner les plateformes à télécharger dans la liste ou laisser toutes les cases cochées pour télécharger toutes les plateformes disponibles. Une fois terminé, cliquez sur Installer la sélection et suivez les instructions d'installation.

Après que tout a été téléchargé avec succès, vous êtes prêt à commencer à développer pour Android.

Créer un nouveau projet Android

L'assistant Nouveau projet d'Eclipse vous aide à créer votre application Android en générant des fichiers et du code prêts à être exécutés, directement sur la boîte. C'est un moyen rapide d'assurer l'opérabilité et un bon point de départ pour commencer le développement :

  • Sélectionnez Fichier->Nouveau->Projet...
  • Sélectionnez Projet Android
  • Dans la boîte de dialogue Nouveau projet, entrez les paramètres suivants :
    Project Name: BrewClock Build Target: Google Inc. 1.6 (Api Level 4) Application Name: BrewClock Package Name: com.example.brewclock Create Activity: BrewClockActivity Min SDK Version: 4

Après avoir appuyé sur Terminer, Eclipse créera un nouveau projet Android prêt à être exécuté et développé sous Android. Vous vous souvenez que vous avez demandé à Eclipse de générer une activité appelée BrewClockActivity ? Il s'agit du code qu'Android utilise réellement pour lancer l'application. Le code généré sera affiché sous la forme d'un simple message dans l'esprit de 'Hello World'.

Packages

Le nom du package est l'identifiant de votre application. Lorsque le moment sera venu de publier le résultat sur l'Android Market, cet identifiant sera utilisé pour suivre les mises à jour de l'application. Il est donc important de s'assurer que cet identifiant est unique. Bien qu'ici nous utilisions le nom com.example.brewclock,pour l'application réelle, il est préférable de choisir quelque chose comme com.yourcompanyname.yourapplication.

Versions SDK

La version SDK Min (le nom dit tout) est la version la plus ancienne d'Android sur laquelle l'application fonctionnera. Avec chaque nouvelle version d'Android, le SDK ajoute et modifie différentes méthodes. En choisissant la version du SDK, Android (et l'Android Market) sait que votre application ne fonctionnera que sur les appareils ayant la version de la plateforme Android spécifiée et supérieure.

Exécutez votre application

Essayons d'exécuter notre application dans Eclipse. Comme il s'agit de la première exécution, Eclipse vous demandera avec quel type de projet vous travaillez :

  • Sélectionnez Run->Run ou appuyez sur Ctrl+F11.
  • Sélectionnez Android Application et appuyez sur OK.

Eclipse essaiera de démarrer l'application sur votre appareil Android. A ce stade cependant, vous ne disposez pas d'un appareil Android, vous ne pouvez donc pas démarrer votre projet et vous êtes invité à créer un nouveau dispositif virtuel Android (AVD).

Dispositifs virtuels Android

Un dispositif virtuel Android (AVD) émule un environnement Android, qu'il s'agisse d'un téléphone mobile ou d'une tablette. Vous pouvez créer autant d'AVD que vous le souhaitez, avec différentes versions de la plate-forme Android. Pour chaque AVD, vous pouvez configurer différents paramètres de l'appareil, en spécifiant le clavier physique, le support GP, la résolution de la caméra, etc.

Avant d'exécuter l'application, vous devez créer votre premier AVD avec le SDK de la plateforme (API Google, 1.6).

Faisons cela maintenant :

  • Si vous n'avez pas encore essayé d'exécuter l'application, appuyez sur Exécuter (ou Ctrl+F11)
  • Lorsqu'un avertissement s'affiche, appuyez sur Oui pour créer l'AVD.
  • Cliquez sur Nouveau dans la boîte de dialogue Android SDK et Gestionnaire AVD.
  • Définissez les paramètres suivants pour l'AVD :
    Name: Android_1.6 Target: Google APIs (Google Inc.) - API Level 4 SD Card Size: 16 MiB Skin Built In: Default (HVGA)
  • Cliquez sur Créer AVD.
  • Fermez la boîte de dialogue Android SDK et Gestionnaire AVD.

Exécutez le code

Tentez d'exécuter à nouveau l'application (Ctrl+F11). Eclipse va maintenant créer votre projet et démarrer un nouvel AVD. N'oubliez pas que l'AVD émule entièrement l'environnement Android et que vous n'avez même pas à observer le processus de démarrage, plutôt lent, comme avec un appareil réel. Pour cette raison, il est préférable de garder la fenêtre ouverte lorsque vous avez fini de programmer toute la journée.

Lorsque l'émulateur android démarre, Eclipse installe et exécute automatiquement votre application:

Créer votre première application android

Tester le code généré est bien mais vous voulez commencer à construire l'application réelle. Pour cela, nous allons progresser d'un processus de développement simple à la création d'une application qui peut être déployée sur un appareil Android.

La plupart des développeurs (moi y compris), se fournissent toujours une bonne tasse de thé ou de café . Dans la prochaine section de cet article, vous allez créer un compteur d'application pour garder une trace du nombre de tasses de thé (bière) qu'un utilisateur a vidé et vous permettre de définir une minuterie pour infuser chaque tasse.

Vous pouvez télécharger le code complet de ce tutoriel sur GitHub.

Développement Android : conception de l'interface utilisateur

L'une des premières étapes de la création de toute application est la conception de l'interface utilisateur. Voici un petit croquis de notre application :

Téléchargement

L'utilisateur pourra régler le temps d'ébullition en minutes à l'aide des boutons + et -. Lorsqu'il appuie sur Start, le compte à rebours commence pour le nombre de minutes indiqué. Si l'utilisateur annule le simmer en appuyant à nouveau sur le bouton, le temps est prolongé lorsque le minuteur atteint 0.

Sous-jacente à l'interface

L'interface utilisateur Android, ou Shell, qui est décrite dans la documentation XML, peut être trouvée dans le dossier res/layouts. Le code du template déjà généré par Eclipse est déclaré dans res/layouts/main.xml et comme vous avez pu le remarquer, il fonctionne déjà dans l'émulateur.

Eclipse possède son propre outil de conception de layout qui vous permet de construire une interface par glisser-déposer dans l'écran. Cependant, il est parfois plus facile d'écrire l'interface en XML et d'utiliser la présentation graphique pour prévisualiser les résultats.

Faisons-le maintenant en modifiant le main.xml selon le croquis ci-dessus :

  • Ouvrir res/layouts/main.xml dans Eclipse en double-cliquant depuis l'explorateur de paquets.
  • Cliquer sur l'onglet main.xml en bas de l'écran pour passer en mode XML.

Modifiez maintenant le contenu de main.xml comme suit:

# /res/layouts/main.xml             

Comme vous pouvez le voir, il y a beaucoup de fichiers dans Android XML, mais cela vous permet de contrôler presque tous les éléments à l'écran.

Un des éléments les plus importants dans l'interface Android sont les conteneurs Layout, comme le LinearLayout utilisé dans cet exemple. Ces éléments ne sont pas visibles pour l'utilisateur mais servent de conteneurs pour d'autres éléments tels que les boutons et les TextViews.

Il existe plusieurs types de mise en page, chacun d'entre eux étant utilisé pour construire différents types de mise en page. Comme LinearLayout et AbsoluteLayout, TableLayout permet d'utiliser une interface basée sur une grille. Vous pouvez en savoir plus à ce sujet dans la section de la disposition générale des objets de la documentation de l'API.

Lier votre disposition au code

Après avoir enregistré votre disposition, essayez d'exécuter l'application dans un émulateur en appuyant sur Ctrl + F11, ou cliquez sur l'icône Exécuter dans Eclipse. Maintenant, au lieu du message "Hello World", vous verrez que l'Android affiche maintenant l'interface de l'application.

Si vous appuyez sur n'importe quel bouton, ils s'allument comme prévu, mais ne font rien à part cela. Continuons à écrire du code en suivant l'interface de mise en page :

# /src/com/example/brewclock/BrewClockActivity.java ... import android.widget.Button; import android.widget.TextView; public class BrewClockActivity extends Activity { /** Properties **/ protected Button brewAddTime; protected Button brewDecreaseTime; protected Button startBrew; protected TextView brewCountLabel; protected TextView brewTimeLabel; ... }

Puis, nous modifions l'appel onCreate. Cet appel se produit chaque fois qu'une application est lancée sur Android. Dans le code généré par Eclipse, onCreate crée une vue d'activité sur R.layout.main. Il s'agit de la ligne de code qui demande à Android de décoder la mise en page d'un document XML et de l'afficher à l'utilisateur.

Resource Object

Dans Android, R est un objet spécial qui est automatiquement créé pour donner accès aux ressources de votre projet (mises en page, lignes, menus, icônes...) à l'intérieur du code. Chaque ressource se voit attribuer son propre identifiant. Dans le fichier de présentation (voir ci-dessus), ce sont les attributs @+id du XML. Nous les utiliserons pour lier les Buttons et les TextViews dans notre layout:

# /src/com/example/brewclock/BrewClockActivity.java ... public class BrewClockActivity extends Activity { ... public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // Connect interface elements to properties brewAddTime = (Button) findViewById(R.id.brew_time_up); brewDecreaseTime = (Button) findViewById(R.id.brew_time_down); startBrew = (Button) findViewById(R.id.brew_start); brewCountLabel = (TextView) findViewById(R.id.brew_count_label); brewTimeLabel = (TextView) findViewById(R.id.brew_time); } }

Événements "d'écoute"

Nous devons implémenter l'écoute des boutons pour déterminer s'ils sont cliqués. Vous êtes peut-être familier avec les callbacks, ou rappels, d'autres plateformes telles que Javascript/JQuery ou Rails.

Android fournit un mécanisme similaire en fournissant une interface Listener telle que OnClickListener qui définit des méthodes à déclencher lorsqu'un événement se produit. L'interface OnClickListener notifie votre application lorsque l'utilisateur clique sur l'écran ou sur un bouton spécifique. De plus, nous devons indiquer à chaque bouton le ClickListener :

# /src/com/example/brewclock/BrewClockActivity.java ... // Be sure not to import // `android.content.dialoginterface.OnClickListener`. import android.view.View.OnClickListener; public class BrewClockActivity extends Activity implements OnClickListener { ... public void onCreate(Bundle savedInstanceState) { ... // Setup ClickListeners brewAddTime.setOnClickListener(this); brewDecreaseTime.setOnClickListener(this); startBrew.setOnClickListener(this); } ... public void onClick(View v) { // TODO: Add code to handle button taps } }

A la suite, nous allons ajouter du code qui gère chacun des clics de nos boutons. Nous allons également ajouter quatre nouvelles propriétés Activity, qui permettront à l'utilisateur de définir et de suivre le temps de brassage : combien de brassins ont été faits et si un minuteur est en cours.

# /src/com/example/brewclock/BrewClockActivity.java ... public class BrewClockActivity extends Activity implements OnClickListener { ... protected int brewTime = 3; protected CountDownTimer brewCountDownTimer; protected int brewCount = 0; protected boolean isBrewing = false; ... public void onClick(View v) { if(v == brewAddTime) setBrewTime(brewTime + 1); else if(v == brewDecreaseTime) setBrewTime(brewTime -1); else if(v == startBrew) { if(isBrewing) stopBrew(); else startBrew(); } } }

Notez que nous utilisons la classe CountDownTimer fournie par Android. Il est ainsi facile de créer et d'exécuter un simple compteur et d'être averti à intervalles réguliers pendant le déroulement du compte à rebours. Vous l'utiliserez dans la méthode startBrew, lisez à ce sujet ci-dessous.

Les méthodes suivantes modélisent le comportement du curseur du temps de cuisson, le démarrage et l'arrêt de l'infusion, et le compteur. Nous initialisons également les propriétés brewTime et brewCount dans onCreate.

Il serait de bonne pratique de déplacer ce code vers une classe de modèle séparée, mais pour la simplicité, nous ajoutons du code à BrewClockActivity:

# /src/com/example/brewclock/BrewClockActivity.java ... public class BrewClockActivity extends Activity implements OnClickListener { ... public void onCreate(Bundle savedInstanceState) { ... // Set the initial brew values setBrewCount(0); setBrewTime(3); } /** * Set an absolute value for the number of minutes to brew. * Has no effect if a brew is currently running. * @param minutes The number of minutes to brew. */ public void setBrewTime(int minutes) { if(isBrewing) return; brewTime = minutes; if(brewTime < 1) brewTime = 1; brewTimeLabel.setText(String.valueOf(brewTime) + "m"); } /** * Set the number of brews that have been made, and update * the interface. * @param count The new number of brews */ public void setBrewCount(int count) { brewCount = count; brewCountLabel.setText(String.valueOf(brewCount)); } /** * Start the brew timer */ public void startBrew() { // Create a new CountDownTimer to track the brew time brewCountDownTimer = new CountDownTimer(brewTime * 60 * 1000, 1000) { @Override public void onTick(long millisUntilFinished) { brewTimeLabel.setText(String.valueOf(millisUntilFinished / 1000) + "s"); } @Override public void onFinish() { isBrewing = false; setBrewCount(brewCount + 1); brewTimeLabel.setText("Brew Up!"); startBrew.setText("Start"); } }; brewCountDownTimer.start(); startBrew.setText("Stop"); isBrewing = true; } /** * Stop the brew timer */ public void stopBrew() { if(brewCountDownTimer != null) brewCountDownTimer.cancel(); isBrewing = false; startBrew.setText("Start"); } ... }

Seules les parties de ce code spécifiques à Android créent des mappages d'étiquettes en utilisant la méthode setText. Dans startBrew, nous créons et exécutons un CountDownTimer pour lancer un compte à rebours par seconde lorsque l'infusion/ébullition est terminée. Notez que nous définissons des écouteurs de CountDownTimer ( onTick et onFinish). Le onTick sera appelé toutes les 1000 millisecondes (1 seconde) tandis que l'appel onFinish se produit lorsque le minuteur atteint zéro.

Éviter la complexité dans la programmation Android

Pour que ce guide de développement Android reste simple, j'ai intentionnellement appliqué des étiquettes directement dans le code (par exemple, "Brew Up !", "Start", "Stop"). Ce n'est en fait pas une bonne pratique, car cela rend difficile de trouver et de modifier ces chaînes dans les grands projets.

Android fournit un moyen soigné de stocker vos chaînes de texte séparément du code objet R. R permet de définir toutes les chaînes d'une application dans un fichier XML (res/values/strings.xml) auquel on peut accéder dans le code par un lien. Par exemple:

# /res/values/strings.xml Brew Up! ... # /res/com/example/brewclock/BrewClockActivity.java ... brewLabel.setText(R.string.brew_up_label); ...

Maintenant si vous voulez changer Brew Up ! quelque chose d'autre, vous devez le changer une fois dans le fichier strings.xml. Si votre application contient des dizaines de fichiers de code, les écrire tous au même endroit est parfaitement logique !

Vérifier BrewClock

Nous avons fini d'écrire le code, il est maintenant temps d'"essayer" l'application. Appuyez sur "Run" ou Ctrl + F11 pour lancer BrewClock dans l'émulateur. Si tout se passe bien, vous verrez apparaître l'interface de configuration et vous serez prêt à infuser votre thé ! Essayez de définir différentes durées d'infusion et appuyez sur Start pour lancer le compte à rebours.

Resume

Dans cette courte introduction au développement Android, vous avez téléchargé et installé le SDK Android et le plugin Eclipse Android Development Tools (ADT). Vous avez mis en place un émulateur ou une appliance virtuelle pour tester vos applications. Vous avez également créé une application Android fonctionnelle qui a mis en évidence un certain nombre de concepts clés , que vous utiliserez lors du développement de futures applications Android.

J'espère que cela a aiguisé votre appétit pour la création d'applications mobiles et l'expérimentation dans ce domaine passionnant. Android offre un excellent moyen d'écrire des applications pour une gamme d'appareils mobiles actuels et futurs. Si vous avez déjà écrit une application fonctionnelle pour la plateforme, n'oubliez pas de nous en faire part dans les commentaires !

“Bonjour. Je m'appelle Kim. J'ai découvert que la technologie, lorsqu'elle est utilisée dans un but précis, peut être assez étonnante. Pour partager les merveilles de la technologie, j'ai écrit pour des blogs comme Appstorm.net et Time.com. Avec plus de trois ans d'expérience en tant que rédactrice indépendante dans le domaine de la technologie et du divertissement, je peux écrire une tempête à p... “

Connect with me Instagram | LinkedIn | Twitter | About

Kim Barloso
foto