1.3 Gestion d'une application



Documents pareils
TP au menu «UI ANDROID»

TD/TP 1 Introduction au SDK d Android

Installation et prise en main

Outils, langage et approche Android Une introduction. Nicolas Stouls lyon.fr

Dossier. Développer en Java sur téléphone mobile. Benjamin Damécourt UFR SITEC Master 2 EESC 11 janvier 2012

Programmation des applications mobiles avec Android. 1 Inspiré du cours de Olivier Le Goaer

Tutorial pour une application simple

- TP Programmation Android - NFA024 Conservatoire National des Arts et Métiers

Warren PAULUS. Android SDK et Android x86

Votre premier projet Android

Épisode 2 : Les outils de développement Alain Menu édition 2.1, septembre 2013

Utilisation de GCM (Google Cloud Messaging) pour Android. Partie préliminaire éventuelle : Création d'un AVD lisant GCM

TP SIN Programmation sur androïde Support : eclipse

Android 4 Les fondamentaux du développement d'applications Java

Edutab. gestion centralisée de tablettes Android

Introduction à Eclipse

TP2 : Client d une BDD SqlServer

Chapitre 1 Retour en arrière

Les fondamentaux du développement d applications Java

TP architecture N-tiers en Java EE ou Java EE, Android : la synthèse. Le serveur GereCompteBancaireServlet

HP Data Protector Express Software - Tutoriel 4. Utilisation de Quick Access Control (Windows uniquement)

TP1 : Initiation à Java et Eclipse

Projet Android (LI260) Cours 2

Gestion des différentes tailles d écran

Saisissez le login et le mot de passe (attention aux minuscules et majuscules) qui vous ont

Eclipse atelier Java

DOCUMENTATION VISUALISATION UNIT

GESTION DE L'ORDINATEUR

Les tablettes et l'extranet Intermixt Mode d'emploi

GANTTPROJECT. Julien TENDERO

Développement sous Android

Installation d'une galerie photos Piwigo sous Microsoft Windows.

TP 1 : prise en main de Windows. TP 1 : prise en main de Windows

Utilisation de l'outil «Open Office TEXTE»

Table des matières. Partie I Concepts de base Préface... VII

1) Installation de Dev-C++ Téléchargez le fichier devcpp4990setup.exe dans un répertoire de votre PC, puis double-cliquez dessus :

Installation et compilation de gnurbs sous Windows

Tutoriel Android - TP de prise en main

TP1 : Initiation à l algorithmique (1 séance)

SOMMAIRE. Présentation assistée sur ordinateur. Collège F.Rabelais 1/10

TP1 : Initiation à Java et Eclipse

italc supervision de salle

Édu-groupe - Version 4.3

Programmation Mobile Android Master CCI

Utiliser le Notebook GIGABYTE pour la première fois

wxwidgets dans un environnement Microsoft Windows

Google Drive, le cloud de Google

Espace Client Aide au démarrage

Annexe Android Studio

Ecran principal à l ouverture du logiciel

MEDIAplus elearning. version 6.6

Guide d installation

Gestion du parc informatique des collèges du département du Cher. Manuel d utilisation de la solution de gestion de Parc

Introduction ANDROID

PRODIGE V3. Manuel utilisateurs. Consultation des métadonnées

Utilisation de XnView

TP réseau Android. Bidouilles Tomcat. a) Installer tomcat : il suffit de dézipper l'archive apache-tomcat windowsx64.zip.

Trier les ventes (sales order) avec Vtiger CRM

De Java à Android version 0.1

Utiliser Dev-C++ .1Installation de Dev-C++ Table des matières

OCLOUD BACKUP GUIDE DE REFERENCE POUR ANDROID

2 Grad Info Soir Langage C++ Juin Projet BANQUE

CAPTURE DES PROFESSIONNELS

FAQ pour tablette Windows 8 (NS-15MS0832 et NS-15MS0832B) Avril 2015

YAPBA M. Logiciel libre de suivi de vos comptes

L ORDINATEUR FACILE D ACCÈS!

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

Fonctionnement général de Tiny ERP

I Pourquoi une messagerie?

BIRT (Business Intelligence and Reporting Tools)

Assistance à distance sous Windows

Guide de l utilisateur Mikogo Version Windows

FORMATION PcVue. Mise en œuvre de WEBVUE. Journées de formation au logiciel de supervision PcVue 8.1. Lieu : Lycée Pablo Neruda Saint Martin d hères

Internet : Naviguer en toute sérénité

Installation et paramétrage. Accès aux modèles, autotextes et clip- art partagés

Android. Programmation. De la conception au déploiement avec le SDK Google Android 2. Damien Guignard Julien Chable Emmanuel Robles

Intégration de Cisco CallManager IVR et Active Directory

FAIRE SES COMPTES AVEC GRISBI

République Algérienne Démocratique et Populaire Université Abou Bakr Belkaid Tlemcen Faculté des Sciences Département d Informatique

Keyyo Unify Application de téléphonie intégrée pour Salesforce

Développement Android. J.-F. Couchot

Application de lecture de carte SESAM-Vitale Jeebop

Les nouveautés de Ciel Comptes personnels

Cyberclasse L'interface web pas à pas

TrueCrypt : installation et paramétrage

L'émulateur multi-système

Date de diffusion : Rédigé par : Version : Mars 2008 APEM 1.4. Sig-Artisanat : Guide de l'utilisateur 2 / 24

Ce guide décrit la procédure à suivre afin de profiter pleinement du Service de Transfert de Fichiers EGIS. Il décrit

Cette fonctionnalité est paramétrable et accessible dans le module administration via le menu "Dossier / Administration".

Universal Robots. Fiche Méthode : Installation du simulateur Polyscope

TeamViewer 7 Manuel Manager

Avertissement : Nos logiciels évoluent rendant parfois les nouvelles versions incompatibles avec les anciennes.

@telier d'initiation

Espace pro. Installation des composants avec Firefox. Pour. Windows XP Vista en 32 et 64 bits Windows 7 en 32 et 64 bits

TRUCS & ASTUCES SYSTEME. 1-Raccourcis Programme sur le Bureau (7)

AVEC LIVE TRADER, VISEZ PLUS HAUT POUR VOS INVESTISSEMENTS

Utiliser Internet Explorer 7

Transcription:

1.3 Gestion d'une application 1. Un premier projet... Il est temps maintenant d'écrire la véritable première application Android avec l'inévitable affichage du mot bonjour, ce qui évidemment pour un développement d'essence anglo-saxonne se traduit par Hellow World... Rappel : on suppose la bonne installation du SDK 2.3.3 (API 10) et d'un AVD de type Nexus S correspondant avec l'image système ARM EABI v7a et le SDK 2.2 (installé) comme base minimale. Lancez un émulateur «à vide» de type Nexus S, celui lié au SDK 2.3.3 par l'avd Manager Processus de création d'une application La méthode classique de création d'un projet Android sous Eclipse passe le menu général : Cliquez sur File New Android Application Project Une variante : on peut, par un clic droit de la souris dans le cadre Package Explorer aboutir au même résultat. Au niveau de la fenêtre de création, renseignez les éléments suivants : Application Name : Premier test Project Name : PremierTest Package Name : org.chamedu.premiertest Minimum Required SDK : API 8: Android 2.2 (Froyo) Target SDK : API 10: Android 2.3.3 (Gingerbread) Compile Width : API 17: Android 4.2 (Jelly Bean) Theme : None Le nom du paquetage représente l'identifiant (qui doit être unique) dans le Market Android car une application Android est destinée normalement à être publiée, qu'elle soit payante ou gratuite. La structure conventionnelle du nom (en minuscules et sous forme d'arborescence) se définit par : org pour les organisations non-commerciales (ou com : principe commercial intrinsèque du Market Android) chamedu : identifiant de l'organisme/entreprise émetteur premiertest : nom donné au projet (reprise du nom sans espace ni majuscules) Après Next, décochez la case Create custom launcher icon (on garde celle par défaut) puis à nouveau Next Laissez les renseignements par défaut sur une BlankActivity (les autres sont incompatibles avec ce niveau de SDK), puis Next Terminez avec Finish sur le dernier écran avec une navigation de type None Structure d'un projet Android Vous disposez dans Eclipse de toute la structure d'un projet pour Android : Page 1 sur 6

Explications (partielles) : src : sources JAVA du projet gen : sources générées à partir des ressources XML Android 4.2 : sources au format JAR de l'api utilisée pour la compilation assets : dossier contenant des fichiers statiques destinés à l'application res : ressources XML de l'application Plus spécialement, ce dernier répertoire contient : les répertoires drawable-* avec les icônes de l'application le répertoire layout avec le fichier XML décrivant l'interface en relation avec la classe JAVA (pour l'instant uniquement activity_main.xml) le répertoires values avec le fichier strings.xml contenant des variables réutilisables globalement au programme et styles.xml pour le thème Pour finir, il reste le fichier AndroidManifest.xml qui décrit l'application et ses composants, permissions, etc... et le fichier project.properties, fichier utilisé par le fichier XML avec par exemple la cible ou version du SDK pour la compilation. Lancement de l'application D'ores et déjà l'application est opérationnelle et l'on peut la voir grâce à l'émulateur... Mais avant de la lancer, une pratique simple permet d'éviter de lancer une émulateur non désiré : Positionnez-vous sur la ligne Test dans le cadre Package Explorer Choisissez par un clic droit, la ligne Run As, Run Configurations Par l'onglet Target, choisissez Always prompt to pick device puis validez par le bouton Apply et enfin Run Choisissez alors l'émulateur adéquat, celui qui est déjà lancé soit ici le NexusS_A233 : Page 2 sur 6

L'inévitable «Hello world!» s'affiche : Notes : L'appui sur la touche ronde représentant une flèche retournant sur la gauche fait revenir à l'écran principal L'appui sur le launcher d'applications apparaître une série d'icônes ou celle s'intitulant Premier test représente évidemment votre application Le lancement de l'application au sein d'eclipse correspond à l'installation de cette même application sur le téléphone mobile, ici représenté par l'émulateur. Dans les sources JAVA, la deuxième méthode du fichier MainActivity.java crée un menu par défaut : @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; } Son fonctionnement se vérifie par l'appui de la touche MENU de l'émulateur. Apparaît alors la dénomination Settings (Paramètres) définie dans l'arborescence par le sous-répertoire menu et par le fichier de description xml activity_main.xml : <menu xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@+id/menu_settings" android:orderincategory="100" android:title="@string/menu_settings"/> </menu> Page 3 sur 6

Note : cette référence à cette ressource se retrouve dans la méthode par R.menu.activity_main et sera vue plus en détail dans la prochaine partie. 2. L'application et son environnement Le principe d'une activité Android La première chose à garder en mémoire est que, Android ou pas, vous évoluez sur un téléphone... Cela implique plusieurs choses : - une mémoire plutôt faible par rapport à un ordinateur, ce qui obligera à libérer les ressources utilisées - des événements à priorités supérieures à votre application, ce qui oblige une cycle de vie particulier - une programmation événementielle et non linéaire Schématiquement, et fournit par l'api Google), voici le cycle de vie d'une activité avec on le voit les méthodes normalement présentes : Source : http://developer.android.com/reference/android/app/activity.html Ce cycle de vie s'apparente (un peu) à celui d'une applet JAVA. Suffisamment explicite, le schéma montre une succession d'états logiques de l'activité avec notamment la boucle onrestart lorsque l'activité a été mise en pause à cause d'un événement prioritaire (exemple : un appel téléphonique) et qui la relance après un arrêt forcé. On peut compléter cette introduction sur les activités en ajoutant un classement par type suivant : activité au premier plan, c'est à dire en interaction avec l'utilisateur activité en arrière-plan, c'est à dire d'un fonctionnement autonome activité sans interface graphique (GUI) comme par exemple un service Si vous regardez le code dans Eclipse (fichier MainActivity.java), une seule méthode semble être obligatoire : la méthode oncreate(). En fait c'est la seule qu'il soit nécessaire de redéfinir (surcharge en JAVA). La classe MainActivity hérite de l'objet Activity, activité standard Android. La méthode oncreate comporte : en paramètre un gestionnaire d'états de type Bundle avec savedinstancestate pour sauver l'état associé de l'instance de l'activité l'appel au constructeur parent (avec la sauvegarde de l'instance) le lancement de l'application par le positionnement de la vue Page 4 sur 6

Par défaut cette vue utilise le layout ou conteneur de base activity_main.xml (répertoire res, layout, fichier activity_main.xml, onglet inférieur activity_main.xml) : <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> Les définitions XML montrent l'utilisation d'un conteneur de type RelativeLayout, concrètement structure de présentation de l'activité et d'un label de nom TextView. On peut : soit définir statiquement les éléments dans une ressource XML soit définir dynamiquement les représentations des contrôles dans le code Java En règle générale, c'est la première solution qui prévaut. La deuxième se rencontre lorsque l'on veut dynamiquement créer une vue à l'instar des pages Web dynamiques. Il ne faut pas cependant oublier la gestion des ressources, plutôt réduite sur un téléphone portable... 3. Utilisation du Logcat LogCat : le journal de l'émulateur Indépendamment de la perspective Debug, cadre particulier pour la mise au point de programme sous Eclipse, le développeur sous Android ne se sert pas vraiment de la console d'exécution pour la simple et bonne raison que son application s'exécute sur l'émulateur et non sur le poste lui-même. Les messages de l'émulateur par son journal se trouve dans l'onglet Logcat (cadre du bas). Vous avez aussi la possibilité de les voir en passant par la perspective DDMS ou (si vous les «perdez») : Par les menus Window / Open Perspective / DDMS (Dalvik Debug Monitor Server ou cadre spécifique Android pour le débogage d'application) Les niveaux d'alertes diffèrent avec verbose debug info warn error assert suivant que l'on désire plus ou moins d'informations. Premier conseil : effacez régulièrement le journal et ce juste après le démarrage d'une application car l'exécution produit beaucoup de messages... (icône représentant un texte à droite avec une petite croix rouge) Deuxième conseil : pour faire apparaître des informations spécifiques dans le LogCat (à la manière d'un System.out.println en mode console) utilisez le code Log.i ou i représente une information. Page 5 sur 6

A titre d'exemple, placez le code ci-dessous à la suite de la ligne setcontentview dans la méthode oncreate() du fichier MainActivity.java de l'activité de test précédente : Log.i("Test", "Voici l'information"); La mise en place de cette ligne entraîne l'apparition d'une erreur (Log cannot be resolved). Pour la résoudre, il faut importer la librairie adéquate : Utilisez la combinaison de touches <Ctrl> + <Shift> + O Validez par défaut l'importation proposée (ici android.util.log) Effacez le journal par la touche LogCat Clear Log (à droite, avec un x rouge) Lancez ou relancez l'application, votre message apparaît dans le LogCat : A la place du message, on peut évidement mettre à la place une variable afin d'en afficher sa valeur. Une utilisation pratique du LogCat Le LogCat va nous permettre de démontrer le cycle de vie d'une application Android. On a donc six méthodes suivant le schéma vu plus haut : oncreate(bundle savedinstancestate) onstart() onresume() onpause() onstop() ondestroy() Les méthodes sont du type protected, avec appel de la méthode parente dans le cas d'une surcharge. Exercice : Insérez chacune des cinq méthodes avec à chaque fois deux lignes : la première pour l'affichage d'un log donnant le nom de la méthode, la deuxième faisant appel au constructeur parent (sans paramètre, à la différence de oncreate) Lancez l'application ; quelles sont les méthodes appelées? Fermez l'application ; quelles sont cette fois les méthodes appelées? Page 6 sur 6