TP au menu «UI ANDROID»



Documents pareils
1.3 Gestion d'une application

TP SIN Programmation sur androïde Support : eclipse

Installation et prise en main

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

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

Warren PAULUS. Android SDK et Android x86

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

TD/TP 1 Introduction au SDK d Android

Tutorial pour une application simple

Créer des applications Android

De Java à Android version 0.1

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

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

Projet Android (LI260) Cours 2

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

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

Les fondamentaux du développement d applications Java

SOMMAIRE

Tutoriel Android. Pour démarrer la programmation d'applications Android

Tutoriel Android - TP de prise en main

Introduction ANDROID

Android en action. Abdelkader Lahmadi Université de Lorraine

Programmation Mobile Android Master CCI

Votre premier projet Android

Encore plus de widgets et de conteneurs

Développement Android. J.-F. Couchot

BIRT (Business Intelligence and Reporting Tools)

Développement sous Android

Programmation mobile avec Android

Annexe Android Studio

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

TP2 : Client d une BDD SqlServer

[Projet S9] Rédacteurs & Contributeurs Entité Rédacteurs Contributeurs Imededdine HOSNI Olivier MARTY. Validation du document Nom Date Visa

Eclipse atelier Java

Programmation Android L3 informatique

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

Développement sous Android

Introduction à Eclipse

Connexions à un projet CVS via Eclipse en accès local et distant. 15 Mai 2007

Installation et compilation de gnurbs sous Windows

Application de messagerie simple sur Android : Rapport de projet de VAP RSM

Déploiement d application Silverlight

wxwidgets dans un environnement Microsoft Windows

Terminaux Mobiles Communicants

Guillaume GENS

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

Module Architecture des systèmes mobiles : Android première partie Didier FERMENT - UPJV

IFT287 Exploitation de base de données relationnelles et orientées objet. Laboratoire Mon premier programme Java en Eclipse

1. Base de données SQLite

Android Publish/Subscribe, GCM, Google Cloud Messaging : une introduction

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

APPLICATIONS JAVA. 1. Android. Développement d'activités Java sous Android. Android Partie I. L'architecture du système Android. Application Android

inviu routes Installation et création d'un ENAiKOON ID

Développement web et mobile

Déploiement d'une application Visual Studio Lightswitch dans Windows Azure.

Installation de Microsoft Office Version 2.1

Développement tablette Android. SophiaConf2011 Par Arnaud FARINE

Web service AREA Manuel d installation et d utilisation du mode déconnecté. Version du 18 mars 2011

SYNC FRAMEWORK AVEC SQLITE POUR APPLICATIONS WINDOWS STORE (WINRT) ET WINDOWS PHONE 8

WORKSHOP OBIEE 11g (version ) PRE-REQUIS:

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

ECLIPSE ET PDT (Php development tools)

La base de données XML exist. A. Belaïd

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

Mise à jour de version

Chapitre 1 Retour en arrière

Android et le Cloud Computing

Oracle Developer Suite 10g. Guide de l installation. Vista & Seven

Génie Logiciel et Interaction Homme-Machine PROJET UCAMPUS

TP1 : Initiation à Java et Eclipse

TP1. Outils Java Eléments de correction

Les connexions sans fil avec Android. JMF (Tous droits réservés) 1

Formation WinDev Mobile

Service Informatique et Télématique (SITEL), Emile-Argand 11, 2009 Neuchâtel, Tél ,

Emporter Windows XP sur une clé USB

Présentation des PowerToy pour Windows XP

Mes documents Sauvegardés

Xavier Costa. «Write once, run anywhere»

Reporting Services - Administration

DÉVELOPPEMENT ANDROID

Assistance à distance sous Windows

Protéger ses données dans le cloud

PHILA-Collector-USB-16Go Pour Windows & Android

FileMaker Server 13. Guide de configuration de l'installation réseau

WinReporter Guide de démarrage rapide. Version 4

Table des matières Introduction Démarrage Les composants graphiques... 26

Android 101. Rémi Forax

sommaire Archives... Archiver votre messagerie... Les notes... Les règles de messagerie... Les calendriers partagés Les listes de diffusions...

Bases Java - Eclipse / Netbeans

Mode d'emploi, If Cinéma

Tutoriel code::blocks

Synchroniser ses photos

Tutorial et Guide TeamViewer

Iphone vs. Android. Mardi 17 Novembre 2009 Paris, la Défense. Xavier PARADON, Directeur Technique Valtech Training

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

PPM(A) Programmation sur Plateformes Mobiles (Android) Legond-Aubry Fabrice

Signage Manager Express Manuel utilisateur du logiciel

Machine virtuelle Java pour Palm TX

Education Delivery Intelligent Tool

PROCÉDURE D'INSTALLATION WINDOWS 7 (32 ou 64 bit)

Transcription:

TP au menu «UI ANDROID» Pré-requis & Installation ( du couvert) soit installer en natif sur vos postes (!!! ATTENTION!!! FromScratch 1,1 Go à télécharger ) JDK http://www.oracle.com/technetwork/java/javase/downloads/index.html Eclipse 3.4 / 3.5 http://www.eclipse.org/downloads/ Android SDK : http://developer.android.com/sdk/index.html configuration dans Eclipse dans «help=>install new soft.» ajouter l'adt https://dl-ssl.google.com/android/eclipse/ installer les 2 features du plugin, relancer Eclipse dans «windows => préférences => android» : ajouter le path du SDK + apply dans «windows => Android SDK & AVD manager» (relancer Eclipse avant?) rubrique «available package», installer: SDK platform Android 2.3 (1.6 en +, compatibilité ascendante de vos smartphones ) Samples for SDK API 8 Documentation «BONUS windaube» (si vous n'avez pas oublié votre android chez vous! ) : driver USB windows soit copier dossier «dev android» (win 32 bit uniquement) sur le bureaux (refaire raccourcies?) JDK nécessaire tout de même ( binaire d'install inclut dans le dossier) TIPS & TRICKS : documentation hors-ligne PATH_SDK/docs/index.html ( tout sauf le forum évidement!) APERO : Préparation pour le débogage création d'un AVD (si vous n'avez pas encore de smarphone Android ;) ) lancer le SDK manager (depuis Eclipse ou directement depuis le PATH_SDK) rubrique «virtual devices» => new configurer l'avd (sélectionner juste la target 1.6 pour ce TP ) => create AVD lancer le maintenant ( la 1er fois prend beaucoup de temps) ne le fermer pas pour les chanceux qui en ont un (et qui n'ont pas oublié leur câble USB :p ) : activer les options de débogage sur votre smartphone (cf slide 'debuggage application') une fois connecté en USB au PC, driver windows dans «PATH_SDK/usb_driver» vérifier la connexion avec le smartphone dans la vue «device» d'eclipse NB: rien ne vous empêches pas d'avoir AUSSI un AVD le choix de la target se fera au «run» de l'application

AMUSE-GUEULE : création d'un nouveau projet file => new => Android Project Champs nécessaire : project name nom du projet dans Eclipse Build target cochez android 1.6 (ou 2.2) Rubrique Properties : application name 'tp' package name 'fr.cnam.android' (ATTENTION unique d'android market si vous le publiez metter un URI) cochez «Create activity» : main «finish» => Dans le projet généré, vous avez... en code source : dossier «src» package + main.java (1er activité spécifiée dans la création de projet) en ressource : dossier «res» dossier drawable => icône de l'application (que l'on retrouvera dans «menu d'appli» du tel) dossier layout => layout au même nom que la 1er activité crée (ici «main.xml») dossier values => chaines de caractères associées au projet (ici 2 entrée : app_name + hello) dossier «gen» => R.java fichier auto-généré lors du build (si erreur d'installation le supprimer) AndroidManifest.xml default.properties Vérifier si l'application se lance sur l'avd ou sur votre smartphone run => android application => (choix de la target si smartphone + AVD ) et vous avez bien le «Hello World, main!» HORS-D'OEUVRES : DDMS & Logcat et l'activité NB : concevoir un filtre dans la vue logcat à partir d'un même champs «tag» pour ces opérations de log. Cela sera plus simple pour différencier les logs systemes de celle de votre application. ajouter la methode «ondestroy» à l'activité principal instancier 'log.i' dans les méthodes «oncreate» & «ondestroy» visualiser (vue 'logcat') les messages précédants lors du lancement et de l'arrêt de l'application répéter ces opérations avec les méthodes «onpause» & «onresume» relancez l'application, émuler un appel (vue «emulator control»), retrouver le focus de votre application (en raccrochant!). observer le logcat => Bien faire le parallèle entre le logcat avec le cycle de vie d'une activité (perte de focus / retour de focus) PS : on peut remarquer que le processus de l'application est toujours la (cf vue «Devices» dans DDMS) et ceci, quelque soit le «launch mode» de l'activité (cf manifest ). tuer l'application (le processus donc) dans «ondestroy» (librairie java standard) PS : Tourner l'écran en «landscape» (dans l'emulateur ctrl+f12). Que se passe-t-il? Pourquoi? trouver le moyen pour la tuer 'proprement' lorsque l' «activity» sait qu'elle «estfinie» ;)

PLAT PRINCIPAL: Création de Widget / UI et Interaction avec le code Dans cette partie nous allons faire abstraction de la programmation de widget en java en travaillant directement sur la template xml (main.xml ici). Modifier la template (vous resterez toujours avec le LinearLayout comme parent) afin de rajouter 2 champs de saisies et un bouton afin d'obtenir ceci : conseils : Travailler avec le layout et non l'xml brut. Changer les identifiants (id) des champs de saisies et du boutton afin de les retrouver facilement dans le code. Changer d'autres propriétés des différents widget afin d'obtenir le résultat Créer le handler (dans la methode «onresume») du bouton ENVOYER. Prendre l'exemple fourni dans la javadoc de la classe Button. Afficher cet événement dans le logcat (recrée un nouveau tag + filtre) Créer une fonction «envoie_message» dans l'activité permettant de récupérer les champs de saisies et les afficher dans le logcat lors de l'appui du bouton ENVOYER Créer un Toast à la fin de la fonction en écrivant que 'le message est prêt à être envoyé' Créer un handler de menu pour l'activité (méthode «oncreateoptionsmenu») en «ajoutant» un «menu» intitulé ' envoyer ' ;) Créer le sélectionneur d'item de menu (méthode «onoptionsitemselected») qui appellera la fonction «envoie_message» crée précédemment ( uniquement sur sélection du menu 'envoyer' ) DESSERT : Communication avec d'autres applications Créer un intent de type ACTION_SEND dans la fonction «envoie_message». Préparer dans celui-ci les différents champs saisies. Démarrer le en lui demandant de «creerunchoix». ;) DIGESTIF : Déploiement sur smartphones aller dans le fichier manifest rajouter le use-sdk avec la version utilisée android 1.6 (API 4) puis rubrique 'exporting' => ' Use the Export Wizard ' créer un keystore (à ne pas perdre sinon vous ne pourrez plus signer vos applications avec le même nom dans le market) => créer une clé alias + champs nécessaires, exporter l'apk Pour l'installation soit : - par le 'market publisher' si vous avez un compte ( et 25 à dépenser via Checkout ) - en le téléchargeant sur SD puis en l'installant avec une application (ex : appmonster ) - ou encore plus simple (et compatible avec l'émulateur) en console : PATH_SDK/tools/adb install <path+nom>.apk

main.java CORRECTION package fr.cnam.android; import android.app.activity; import android.content.intent; import android.os.bundle; import android.util.log; import android.view.menu; import android.view.menuitem; import android.view.view; import android.widget.button; import android.widget.edittext; import android.widget.toast; public class main extends Activity public void oncreate(bundle savedinstancestate) super.oncreate(savedinstancestate); setcontentview(r.layout.main); Log.i("cycle_appli", "oncreate"); protected void onpause() super.onpause(); Log.i("cycle_appli", "onpause"); protected void onresume() super.onresume(); Log.i("cycle_appli", "onresume"); final Button button_envoyer = (Button) findviewbyid(r.id.envoyer); button_envoyer.setonclicklistener(new View.OnClickListener() public void onclick(view v) Log.i("envoie","appui de la touche ENVOYER "); envoie_message(); ); protected void ondestroy() // TODO Auto-generated method stub super.ondestroy(); Log.i("cycle_appli", "ondestroy"); if (isfinishing()) java.lang.system.exit(0); protected void envoie_message() EditText sujet = (EditText) findviewbyid(r.id.sujet); Log.i("envoie","sujet:\t"+sujet.getText().toString()); EditText message = (EditText) findviewbyid(r.id.message); Log.i("envoie","message:\t"+message.getText().toString()); Toast.makeText(this, "le message est pret à être envoyé", 2000).show(); Intent EnvoieMessageIntent = new Intent(Intent.ACTION_SEND); EnvoieMessageIntent.putExtra(Intent.EXTRA_SUBJECT,sujet.getText().toString()); EnvoieMessageIntent.putExtra(Intent.EXTRA_TEXT,message.getText().toString()); EnvoieMessageIntent.setType("text/plain"); startactivity(intent.createchooser(envoiemessageintent, "Envoyer un message"));

public boolean oncreateoptionsmenu(menu menu) menu.add("envoyer"); return super.oncreateoptionsmenu(menu); public boolean onoptionsitemselected(menuitem item) if (item.gettitle().tostring() == "envoyer") envoie_message(); return super.onoptionsitemselected(item); main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_height="fill_parent" android:layout_width="fill_parent"> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="sujet"/> <EditText android:layout_height="wrap_content" android:layout_width="fill_parent" android:id="@+id/sujet" android:text="entrer le sujet"></edittext> <TextView android:layout_height="wrap_content" android:layout_width="fill_parent" android:text="message"></textview> <EditText android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/message" android:text="entrer le message"></edittext> <Button android:layout_height="wrap_content" android:layout_width="fill_parent" android:id="@+id/envoyer" android:text="envoyer"></button> </LinearLayout>