Outils, langage et approche Android Une introduction. Nicolas Stouls nicolas.stouls@insa lyon.fr



Documents pareils
TP au menu «UI ANDROID»

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

TP SIN Programmation sur androïde Support : eclipse

1.3 Gestion d'une application

Tutorial pour une application simple

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

Warren PAULUS. Android SDK et Android x86

SOMMAIRE

Créer des applications Android

Projet Android (LI260) Cours 2

Les fondamentaux du développement d applications Java

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

Encore plus de widgets et de conteneurs

Tutoriel Android - TP de prise en main

Installation et prise en main

Programmation mobile avec Android

Education Delivery Intelligent Tool

TD/TP 1 Introduction au SDK d Android

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

Développement Android. J.-F. Couchot

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

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

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

TP2 : Client d une BDD SqlServer

De Java à Android version 0.1

Programmation Android L3 informatique

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

Android en action. Abdelkader Lahmadi Université de Lorraine

Introduction ANDROID

Développement sous Android

TP1 : Initiation à Java et Eclipse

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

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

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

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

Développement tablette Android. SophiaConf2011 Par Arnaud FARINE

Génie Logiciel et Interaction Homme-Machine PROJET UCAMPUS

1. Installation d'un serveur d'application JBoss:

Prise en main rapide

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

Point sur les solutions de développement d apps pour les périphériques mobiles

Java 7 Les fondamentaux du langage Java

Interfaces graphiques avec l API Swing

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

Android et le Cloud Computing

Chapitre 1 Retour en arrière

Présentation du système d exploitation Open Source ANDROID

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

JAVA 8. JAVA 8 - Les fondamentaux du langage. Les fondamentaux du langage Java. Avec exercices pratiques et corrigés JAVA 8 29,90.

Bases Java - Eclipse / Netbeans

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

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

Annexe : La Programmation Informatique

Développement sous Android

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

Votre premier projet Android

Création d une application Android (APPInventor)

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

DOCUMENTATION VISUALISATION UNIT

HUAWEI HiSuite UTPS V300R002B610D15SP00C06. Description du produit. Édition 01. Date HUAWEI TECHNOLOGIES CO., LTD.

Android. Présentation d Android. Florent Garin

Projet gestion d'objets dupliqués

Java Licence professionnelle CISII,

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Terminaux Mobiles Communicants

Logiciel Enterprise Guide Version 1.3 Windows

TP1 : Initiation à Java et Eclipse

DÉVELOPPEMENT ANDROID

Web Tier : déploiement de servlets

Création d un service web avec NetBeans 5.5 et SJAS 9

Développement d applications professionnelles avec Android 2

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/ Vue générale 2 - Mon premier programme 3 - Types de Programme Java

Programmation Mobile Android Master CCI

BIRT (Business Intelligence and Reporting Tools)

WINDEV MOBILE. ios SMARTPHONE SUPPORT: IOS, ANDROID, WINDOWS PHONE 8.

italc supervision de salle

Visual Paradigm Contraintes inter-associations

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

Optimiser pour les appareils mobiles

Notice d Installation et d utilisation d une liaison Bluetooth avec un PDA ipaq.

Comparaison entre les applications natives et les web apps dans le domaine des Smartphones

RMI. Remote Method Invocation: permet d'invoquer des méthodes d'objets distants.

SOMMAIRE. Introduction... 3 A. ANDROID... 4

Architectures Mobiles

Eclipse atelier Java

Android. Android is an environment where the biggest limitation is your imagination. P1 1

Gestion des différentes tailles d écran

24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean.

Présentation des PowerToy pour Windows XP

Générer du code à partir d une description de haut niveau

Projet Viticulture - TP 3 : bases de données distantes BTS Services informatiques aux organisations

MANUEL UTILISATEUR. Application 4trip

Gestionnaire de connexions Guide de l utilisateur

Chapitre VI- La validation de la composition.

Programmer en JAVA. par Tama

Logiciel de gestion de caisse et d ardoises

Langage et Concepts de Programmation Objet. 1 Attributs et Méthodes d instance ou de classe. Travaux Dirigés no2

Compte Rendu d intégration d application

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

Transcription:

Outils, langage et approche Android Une introduction Nicolas Stouls nicolas.stouls@insa lyon.fr

Webographie La bible contenant «tout» : http://developer.android.com/index.html Les supports cette intervention (slides et exemple) : http://perso.citi lab.fr/nstouls/?zoomsur=enseignements Page : 2/24

Plan des points abordés Aperçu des spécificités d'une application Android Outils Ma première application Les points notables Page : 3/24

Spécificités d'une application Android Un aperçu

Plate-forme à puissance et écran restreints Puissance restreinte De moins en moins vrai, mais pas adapté aux gros calcul scientifiques Écran restreint : Paradigmes classique d'ihm totalement remis à plat Pas de notion de fenêtre Tailles d'écran très variables. IHM donc très adaptatives Listes déroulantes et tabulations très bien adaptées Page : 5/24

API Java standard Swing + Android Portage d'une application Java sous Android Définition / création d'une nouvelle IHM Copié / collé de tout le reste L'accès aux périphériques fait parti de l'api Java : machine virtuelle générique Android : machine virtuelle avec contraintes sur le matériel Accès facile et transparent aux périphériques / services : Wifi, bluetooth, USB, GPS, Accéléromètre, téléphone, SMS, Page : 6/24 etc.

Programmation orientée service Service = Activité 1 application = Ensemble d'activités + activité «principale» 1 «écran» 1 activité 1 activité = Description de son rôle Ensemble de classes java avec point d'entrée Principe de l'appel de service : Direct : nom de la classe voulue ou Indirect : description du service attendu (Ex : lecteur HTML ou édition texte) Page : 7/24

IHM Peuvent être décrite en Java ou XML Description XML plus condensée et facilite la réutilisation Page : 8/24

Outils

Outils (32 ou 64bits : oui, mais rester homogène) Installer un kit de développement consiste à : Installer Eclipse (Éditeur conseillé) Installer SDK (outils) Driver pour communiquer avec un périphérique Android Machine virtuelle permettant de tester des applications Si utilisation machine virtuelle : créer une target Choix taille écran, version API et taille mémoire Installer API (code) Présent sur les plate formes, mais nécessaire à la compilation et au test Standard VS Google : Google = Standard + API GoogleMaps (+?) Faire le lien entre éditeur et SDK Installation ADT http://developer.android.com/sdk/index.html Page : 10/24

Ma première application

Démo Grandes lignes : New > Android project Project name > HelloWorld (Nom dans eclipse) API (Pour les tests) > 7 Application Name (Nom affiché dans Android) > Mon Helloworld Package Name > (Nom du package) > fr.insa Create Activity > principale Min SDK Version (API minimum supportée) > 7 Run Génération d'un fichier.apk Chargement du fichier dans le simulateur Oh que c'est bô! ;) Page : 12/24

Démo Qu'est ce que cela a généré?./src/fr/insa/principale.java Activité initiale avec son «constructeur» public void oncreate(bundle savedinstancestate) {...}./res/layout/main.xml Descripteur de l'interface graphique <?xml version="1.0" encoding="utf 8"?> <LinearLayout... ><TextView... android:text="@string/hello" /></LinearLayout>./res/drawable/{h/m/l}dpi/icon.png Icône de l'application en haute, moyenne et basse résolution./androidmanifest.xml Description de l'application et des différentes activités qui la composent./default.properties Mémorise le SDK minimum requis (entre autres choses) Page : 13/24

Les points notables

Primitives spécifiques à Android Divers Activity : Conteneur de tout service ListActivity TabActivity Intent : Descripteur de service Graphique View : Structure graphique élémentaire (Jpanel) TextView : champs texte en lecture seule (JLabel) ListView : liste d'éléments LinearLayout : habilleur élémentaire (FlowLayout) Button : bouton classique (JButton) EditText : champs texte (JtextField) Page : 15/24

Cycle de vie d'une activité Activité = service 1 Activité 1 écran oncreate : action à redéfinir pour le lancement 1 activité à le focus et les activités s'empilent Page : 16/24

oncreate @Override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); } SavedInstanceState : mémorise certaintes informations lors d'un onpause() ou onstop(). SetContentView : choisit le layout d'habillage de l'activité. Page : 17/24

IHM : description en XML Fichier XML contient : Déclaration encodage : <?xml version="1.0" encoding="utf 8"?> Conteneur de l'ihm compatible avec le type d'activité : Activity : <LinearLayout...></LinearLayout> ListActivity : <ListView...> </ListView> TabActivity : <TabHost...> </TabHost>... Lien entre Java et XML : Nommage des entités XML : <Button android:id="@+id/mybutton"... /> Appel des entités nommées : setcontentview(r.layout.main); mybutton = (Button)findViewById(R.id.myButton); Page : 18/24

Sécurité et manifest AndroidManifest.xml doit déclarer certaines actions pour que l'application puisse les faire : android.permission.access_wifi_state android.permission.change_network_state android.permission.change_wifi_state android.permission.internet android.permission.bluetooth android.permission.send_sms... Page : 19/24

Création d'un affichage personnalisé Exemple : GraphView Définition : public class GraphView extends View Modification de la méthode d'affichage : protected void ondraw(canvas canvas) Appel depuis le XML (Il faut totalement le qualifier) : <insalyon.tracecourbe.graphview android:id="@+id/graph" android:layout_width="fill_parent" android:layout_height="fill_parent" /> Page : 20/24

Threads et mise à jour de l'affichage Principe : Tout processus qui modifie l'affichage risque de générer un conflit avec la lecture de l'affichage par la plate forme. Mise à jour de l'affichage en Java : repaint() Mise à jour de l'affichage en Android : invalidate() Mise à jour lorsque ressource dispo : postinvalidate() Page : 21/24

Appel d'une activité Appel explicite Exemple d'appel d'une activité nécessitant un paramètre (Para) : Intent intent = new Intent(this, ConnectedActivity.class); intent.setaction("fr.insa.start"); intent.putextra("fr.insa.para", ValeurATransmettre); startactivity(intent); Déclaration de l'activité : <activity android:name="connectedactivity"> <intent filter> <action android:name="fr.insa.start" /> <data android:name="fr.insa.para" android:mimetype="text/plain" /> </intent filter> </activity> Récupération du paramètre par l'activité appelée : Bundle b = getintent().getextras(); String parametre = b.get("fr.insa.para").tostring(); Page : 22/24

Appel d'une activité Appel implicite Exemple d'appel d'une activité de recherche sur google : String requete = "http://www.google.fr/search?q=" + marequete; Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(requete)); startactivity(intent); Déclaration pouvant répondre à cet appel : <activity android:name="googlesearch"> <intent filter> <action android:name="android.intent.action.view" /> <data android:name="uri" android:mimetype="text/plain" /> </intent filter> </activity> Exemple pris sur : http://www.pointgphone.com/tutoriel-android-introduction-intents-7779 Page : 23/24

Communications entre services Paramètre lors de l'appel d'une activité Communication réseau sur le 127.0.0.1 Données statiques publiques (attention aux accès concurrents) Gestion des préférences d'application Fichier SQLite DB Page : 24/24