Les Fiches de MonWebFacile





Chapitre

Fiche

 

Téléchargez la fiche Mise à jour : 06/2013

Fiche Android : Outils de développement pour Android

Objet de la fiche

État de la fiche Terminée validée


Plan de la fiche :

Avant propos

Android c'est quoi?

Android est un operating system basé sur linux avec un interface de type java.
Le kit de développement Android (Android SDK) met à notre disposition tous les outils nécessaires pour développer une application Android. Ces outils incluent un compilateur, un débuger ainsi qu'un émulateur (machine virtuelle).
Android est actuellemnt développé par Google. Cet OS permet l'exécution de taches en arrière plan, dispose d'une riche librairie pour la gestion des interfaces (graphiques 2-D and 3-D utilisant OpenGL libraries), peut accéder au système de fichiers et embarque une base de données lite (SQLite).

Pré-requis (outils de développement)

Vous devez disposer ou installer les composants suivants sur votre station de développement.

La totalité de l'installation (sauf JRE) se trouve dans un fichier "adt-bundle-windows-x86.zip" disponible sur Internet. Avant de lancer la décompression et l'installation d'Eclipse créez sur le lecteur "C" le répertoire AndroidDev avec les sous répertoires APK, Keys et Projets.

Lancer la décompression et l'installation dans le répertoire AndroidDev.

JRE

Java Runtime Environment (JRE) est une machine virtuelle Java. C'est une partie en phase d'exécution de Java SDK (kit de développement Java) mais sans les outils de développement (compilateurs, débogueurs). JRE est compilé avec le logiciel plug-in de Java qui permet aux navigateurs Web d'utiliser JRE afin d'exécuter des applets.

Eclipse IDE

Eclipse IDE (Environnement de développement intégré) est un logiciel open source qui possède de nombreuses fonctions disponibles pour le développement en Java.
La caractéristique essentielle d’Eclipse est l’extensibilité de l’environnement. Plus que de se focaliser sur un environnement de développement Java, les concepteurs d’Eclipse se sont efforcés avant tout de créer un socle applicatif sur lequel viennent se greffer des modules et/ou plugins.

ADT Plugin

Android Development Tools (ADT) est un plugin pour Eclipse IDE qui apporte un puissant environnement intégré pour developper des applications android. ADT élargit les possibilités d'Eclipse et permet l'élaboration rapide de projets sous android, la création d'applications, le debuggage et l'export (signés ou non) des fichiers .apk pour la distributions de vos applications. Le développement avec Eclipse et ADT est fortement recommandé pour démarrer rapidement dans ce type de développement.

Création pas à pas d'un projet

Ouvrir un nouveau projet dans Eclipse

Définir le projet et l'application

?Application Name

c'est le nom de l'application vu par les utilisateurs. Pour ce projet nous utiliserons "Mon Web Facile"

?Project Name

c'est le nom du répertoire de votre projet visible par Eclipse.

?Package Name

c'est le nom du package pour votre application (mêmes règles que les packages du langage de programmation en java). Ce nom doit être unique parmi tous les packages installés sur votre système Android. Le mieux est d'utiler un nom inverse à votre domaine d'utilisation : si votre domaine est "monwebfacile.free.fr" utilez "fr.free.monwebfacile" comme nom qui sera forcément unique.

?Minimum Required SDK

c'est la version minimum d'Android que supporte votre application (the API level). Pour fonctionner sur le plus grand nombre d'appareils possibles. Si vous utiliser une fonctionnalité uniquement utilisable sur les dernières versions cela peut créer des problèmes. Pour notre projet on utilisera le paramétrage par défaut.

?Target SDK

indique la plus haute version d'Android (API level) avec laquelle on a testé notre application. Au fur et à mesure des évolutions de versions il sera nécessaire de re-tester notre application et de mettre à jour ce paramètre en fonction des résultats (cela permet de bénéficier des dernières évolutions des versions Android successives).

?Compile

version de la plateforme sur laquelle sera compilée l'application. Par défaut ce paramètre est initialisé avec la plus haute version du SDK disponible sur votre outil de développement.

?Theme

spécifie le style de l'interface utilisateur Android

Holo LightHolo DarkHolo Light with dark action bar.

Appuyez sur Next

Appuyez sur Next

Configure launcher icon

Ce type d'icone represente votre application sur l'écran de votre tablette.

A l'aide de cet outil vous pouvez personnaliser une launcher icone. Avant de publier votre application vous devez vérifier que votre icone est conforme aux spécifications suivantes concernant la taille et l'échelle :

  • 36×36 for low-density
  • 48×48 for medium-density
  • 72×72 for high-density
  • 96×96 for extra high-density

Sélectionner le type d'activité

Comme on ne désire pas de style particulier sélectionnez "BlankActivity"

Nommer l'activité

On conservera les noms par défaut proposés par le configurateur, soit :

  • Activity Name => "MainActivity"
  • Layout Name => "activity_main"

Structure résultant de la fin de création du projet


Les fichiers utiles

Avant de lancer l'application il est bon de savoir à quoi servent quelques fichiers contenus dans les répertoires du projet :

AndroidManifest.xml

Le fichier AndroidManifest décrit les caractéristiques fondamentales de l'application, et défini chacun de ses composants.
Ce fichier d'écrit aussi l'ensemble des permissions requises avant l'installation. Par exemple une application doit déclarer que dans son fonctionnement elle peut être amenée à accéder à Internet.

Nota : Vous devez toujours paramétrer l'attribut android:targetSdkVersion à un niveau aussi haut que possible et tester votre application sur une plateforme de même version.

Répertoire res/layout/ et le fichier activity_main.xml

Ce répertoire contient les fichiers qui définissent l'interface utilisateur.

Exemple du projet
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:text="@string/hello_world" />
</RelativeLayout>									
									

Cette vue ne contient qu'un RelativeLayout, qui sert de conteneur pour une zone de texte. Cette zone de texte (textview dans notre exemple) est définie avec les attributs suivants :

  • La largeur et la hauteur de l'élément.
  • La position de l'élément (centré horizontalement et verticalement).
  • Une marge interne (padding) pour le texte.
Différents types de layout

Voici quelques exemples de layout :

  • Les "LinearLayouts" positionnent les enfants les uns à la suite des autres, soit verticalement soit horizontallement.
  • Les "RelativeLayouts" permettent à l'aides des "LayoutParam" de positionner les enfants ou l'on veut exactement, relativement au parent principal or relativement par rapport à un autre enfant.
    Des "LayoutParam" comme above (au-dessus), below (après), alightWithParent (aligné sur le parent), align_Left (aligné à gauche), align_Top (aligné en haut) ainsi que beaucoup d'autres sont disponibles dans un "RelativeLayout".
  • Les "GridLayout" permettent d’organiser une vue sous forme d’un tableau composé de plusieurs lignes / colonnes. Il permet aussi d’étendre une colonne sur plusieurs cases ou de laisser des cases vides.

Répertoires res/drawable-hdpi/ , res/drawable-ldpi/ , res/drawable-mdpi , res/drawable-xhdpi

Ces répertoires contiennent des images haute définition comme par exemple des bitmaps.
Le dossier drawable contient l'icône de l'application (ic_launcher.png) et cela dans les quatre résolutions (ldpi = basse résolution, mdpi = résolution moyenne, hdpi = haute résolution, xhdpi = très haute résolution).

Répertoire res/values/

Répertoire pour les différents fichiers XML contenant certaines ressources, comme par exemple :

  • colors.xml fichier xml ou l'on va définir les couleurs de texte ou de fond de l'application
  • dimens.xml fichier xml ou l'on va définir les dimensions des divers composants de l'application
  • strings.xml fichier xml ou l'on va définir les textes utiles à l'application
  • styles.xml fichier xml ou l'on va définir les différents style de l'application
  • ...
strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">monwebfacile</string>
    <string name="hello_world">Hello world!</string>
    <string name="menu_settings">Settings</string>

</resources>
								

styles.xml
<resources>

    <!--
        Base application theme, dependent on API level. This theme is replaced
        by AppBaseTheme from res/values-vXX/styles.xml on newer devices.
    -->
    <style name="AppBaseTheme" parent="android:Theme.Light">
        <!--
            Theme customizations available in newer API levels can go in
            res/values-vXX/styles.xml, while customizations related to
            backward-compatibility can go here.
        -->
    </style>

    <!-- Application theme. -->
    <style name="AppTheme" parent="AppBaseTheme">
        <!-- All customizations 
		that are NOT specific to a particular API-level can go here. -->
    </style>

</resources>	
								

Répertoire src/package name (fr.free.monwebfacile)/fichiers activité java

Répertoire pour les fichiers sources principaux (les fichiers java).

MainActivity.java

package com.example.monwebfacile;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;

public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.activity_main, menu);
		return true;
	}

}
						

Nota : Au démarrage de l'application par défaut Activity class démarre et charge un fichier qui permet d'afficher "Hello World." Bien évidemment ce n'est pas terrible, mais important pour la compréhension des mécanismes.

Générer le fichier (.apk) d'installation de l'application

Toutes les applications doivent être signées. Le système sous android destinataire de l'application ne l'installera pas si le fichier .apk n'est pas signé.

Il faut donc signer l'apk avant de diffuser l'application. Pour cela dans le Package Explorer faire un click droit sur le nom du projet concerné, puis sélectionner Android Tools et enfin Export Signed Application Package


1 => sélectionnez votre projet, puis Next 2 => Créer une nouvelle clé en définissant le répertoire de stockage et le mot de passe, puis Next
3 => Définissez les paramètres de la clé, puis Next 4 => Sélectionnez le répertoire de stockage du fichier apk, puis Finish

Une fois le fichier apk généré, vous pouvez le transferer par mail, ou transfert de fichier vers votre appareil android. Une fois récupéré dans votre appareil, un double click sur le fichier lance l'installation de l'application

ATTENTION : Dans les paramètres de sécurité de l'appareil il faut autoriser l'installation d'applications non Market.

Compléments utilisation Eclipse

Avertissements

Il est important d'effectuer toutes les manipulations de fichiers dans l'environnement Eclipse, car toute modification comme par exemple un renom de fichier sera automatiquement répercuté à l'ensemble du projet.
De même pour les coller, effacer de répertoires ou de fichiers.

Renommer le projet java

Click droit sur le projet dans le Package Explorer

Renommer le package de l'application (com.example.monwebfacile)

Click droit sur le projet dans le Package Explorer

Renommer un répertoire ou un fichier

Click droit sur l'élément du projet dans le Package Explorer

Rajouter une activité

Click droit sur le projet dans le Package Explorer

Utilisation de l'émulateur

Installer l'émulateur

Eclipse met à votre disposition un émulateur sur votre ordinateur (donc sans utiliser une tablette ou un téléphone physiquement) et qui va se comporter comme se comporterait votre appareil Android. Idéal pour tester et mettre au point votre application en local.

L'émulateur Android simule le hardware et l'environnement logiciel d'une tablette ou d'un téléphone (sauf émission d'appel) sous Android. Comme sur votre tablette l'émulateur permet une complète navigation et propose les différents "control keys" que vous pouvez activer à partir de l'application.
Cet outil est idéal pour tester et mettre au point votre application en local, et cela pour diverses configurations matérielles. On peut utiliser tous les services de la plateforme Android comme par exemple invoquer d'autres applications, accéder au réseau, au wifi, aux systèmes audio et video, aux notifications et aux thèmes.

Sélectionnez Android Virtual Device Manager (AVD) Paramétrez le device

"Device" : sélectionne le type d'appareil (principalement le dimensionnement de l'écran) sur lequel appliquer la simulation.
SDCard : pour créer la zone mémoire qui correspond à celle de votre téléphone ou tablette. Cela vous permettra d'éditer des fichiers à partir de votre application android, de rajouter ou d'effacer des fichiers à partir de la console.
"GPU emulation" : autorise automatiquement l'accélération graphique (option disponible pour applications avec API niveau 15, revision 3 et plus haut).
"Snapshot" : n'est pas disponible pour les émulateurs avec accélération graphique sélectionnée. et permet un lancement rapide de l'émulateur (sauf la première fois lorsqu'il n'existe pas de snapshot initial).

Utiliser l'émulateur

Click droit sur le projet dans le Package Explorer

Travailler avec la SDCard : Dalvik Debug Monitor Server (DDMS perspective)

Il s'agit d'un outil de debugg qui permet d'obtenir des informations sur les applications en cours d'exécution ainsi que de leur environnement. L'émulateur doit être en cours d'utilisation.

La méthode générale

  • Ouvrir une nouvelle fenêtre (window/new window)

  • Dans la nouvelle fenêtre (window/Open Perspertive/DDMS)

La méthode à partir de la console générale

A partir de l'écran principal => DDMS en haut à droite ou Java pour revenir à l'écran principal.

Travailler dans la vue DDMS