Architecture des systèmes mobiles

Documents pareils
TP SIN Programmation sur androïde Support : eclipse

TP au menu «UI ANDROID»

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

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

De Java à Android version 0.1

Projet Android (LI260) Cours 2

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

Créer des applications Android

Les fondamentaux du développement d applications Java

SOMMAIRE

Programmation Mobile Android Master CCI

Encore plus de widgets et de conteneurs

TP2 : Client d une BDD SqlServer

Programmation mobile avec Android

Programmation Android L3 informatique

Tutoriel Android - TP de prise en main

Tutorial pour une application simple

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

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

Introduction ANDROID

1.3 Gestion d'une application

Développement Android. J.-F. Couchot

Terminaux Mobiles Communicants

Warren PAULUS. Android SDK et Android x86

Développement sous Android

TD/TP 1 Introduction au SDK d Android

Gestion des différentes tailles d écran

Education Delivery Intelligent Tool

Android et le Cloud Computing

Android. Présentation d Android. Florent Garin

Développement d applications professionnelles avec Android 2

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

Développement sous Android

Guillaume GENS

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

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

Génie Logiciel et Interaction Homme-Machine PROJET UCAMPUS

Le hub d entreprise est une application de déploiement des applications mais aussi un outil de communication

DÉVELOPPEMENT ANDROID

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

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

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

Développement mobile MIDP 2.0 Mobile 3D Graphics API (M3G) JSR 184. Frédéric BERTIN

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

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

Bases Java - Eclipse / Netbeans

DUBREUIL Raphaël VERNET Antoine RAPPORT PROJET DE FIN D'ETUDES BORNE INTELLIGENTE HETEROGENE

Architectures Mobiles

Android 101. Rémi Forax

Reversing Android. Aïe, robot...

Annexe Android Studio

Alfstore workflow framework Spécification technique

TP1 : Initiation à Java et Eclipse

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

Android UIThread, Thread, Handler et AsyncTask

Projet gestion d'objets dupliqués

Environnements de développement (intégrés)

Page 1 sur 5 TP3. Thèmes du TP : l la classe Object. l Vector<T> l tutorial Interfaces. l Stack<T>

3 Octobre Les Communautés MS

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

Remote Method Invocation (RMI)

Approche Contract First

INTRODUCTION AUX TESTS CODES DE L INTERFACE UTILISATEUR

Android en action. Abdelkader Lahmadi Université de Lorraine

Programmation par les Objets en Java

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

TD Objets distribués n 3 : Windows XP et Visual Studio.NET. Introduction à.net Remoting

AUVRAY Clément (168187) HOMBERGER Alexandre (186897) GLADE. Langages, outils et méthodes pour la programmation avancée Page 1 sur 12

Surveiller sa maison via son Smartphone sous Android

TP3. Mail. Attention aux fausses manoeuvres lors de ce TP vous pouvez endommager votre mail sur ouindose.

Guide de mise à jour BiBOARD

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

TP1 : Initiation à Java et Eclipse

@ vocatmail SECIB DES SOLUTIONS INFORMATIQUES POUR LES AVOCATS. Première messagerie professionnelle pour avocat en mode hébergé.

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

RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION)

Catalogue des formations Edition 2015

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

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

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

TD/TP PAC - Programmation n 3

Installation et prise en main

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

Module.NET 3 Les Assemblys.NET

Chapitre 1 Retour en arrière

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris :

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

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki

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

Apache Camel. Entreprise Integration Patterns. Raphaël Delaporte BreizhJUG

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

Paris Airports - Web API Airports Path finding

Votre premier projet Android

Lancement de la simulation SIMBA

Projet de programmation (IK3) : TP n 1 Correction

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

Formation : WEbMaster

RMI le langage Java XII-1 JMF

TP4 : Installer configurer un contrôleur de domaine

Transcription:

Architecture des systèmes mobiles Cours 1 : Activités et Ressources Sorina Ionica 1

Organisation du module 1ère partie : activités et ressources, cycle des vie des activités toasts, notifications, composants graphiques, quelques applications classiques. 2ème partie : la programmation concurrente handlers, asynctasks, les services, les broadcastreceivers 2

Organisation du module Cours intégré au TP salle a préciser (D11/12?) 2 contrôles sur papier : 1 er contrôle lundi 6 fevrier 16h-18h 1 mini-projet en fin de semestre Page du cours : http://home.mis.u-picardie.fr/~ionica/android.htm 3

Historique d Android Système d exp. Mobile, basé sur le noyau de Linux 2008 : Le source du SDK 1.1 (Api level 2) disponible sous licence Apache, premier smartphone Android aux USA Dévéloppé par Google et l Open Handset Alliance 4

Versions d Android Plusieurs mises à jour et ajout de nouvelles fonctionnalités source http://developer.android.com/about/dashboards /index.html 5

Ressources Applications fonctionnelles sur une variete de terminaux => fichiers XML! Ressources = images, chaines de charac., musique 6

L'interface utilisateur Fichier source res/layout/activity_main.xml <?xml version="1.0" encoding="utf 8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/text_invit" /> <TextView android:id="@+id/val" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="" /> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="+ 1" android:onclick="actionajout" /> </LinearLayout> 7

Le fichier layout Inflation : opération de création d'une UI à partir d'un fichier XML Boite conteneur verticale <LinearLayout Namespace obligatoire a la racine xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" Prendre la taille du parent android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/text_invit" />.. </LinearLayout> 8

Le TextView @string/texte est une référence à une ressource string de nom texte <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/texte" /> fichier res/values/string.xml <?xml version="1.0" encoding="utf 8"?> <resources> <string name="app_name">marre d\'hello World</string> <string name="texte">marre du classique hello World</string> </resources> 9

Le fichier Layout <TextView android:id="@+id/val" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="" /> -@+id/val signifie une référence à l'identifiant val -En Java, cela permet de récupérer une référence sur l'objet ainsi : (TextView)findViewById(R.id.val) 10

Le fichier Layout Le widget bouton possède un attribut onclick précisant le nom de la méthode qui traitera les événements "click": <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="+ 1" android:onclick="actionajout" /> 11

La classe R L'IDE Android Studio génère automatique une classe static R de toutes les ressources : fichier app/df.cours.marredhelloworld/test/r.java package df.cours22; public final class R { public static final class id { public static final int bouton=0x7f050001; public static final int val=0x7f050000; public static final class string { public static final int app_name=0x7f040000; public static final int texte=0x7f040001;... 12

La classe R public final class R {... ->Utilisation des classes internes : public et static public static final class drawable { public static final int upjv_launcher=0x7f020000; public static final class id { public static final int bouton=0x7f050001; public static final int val=0x7f050000; public static final class layout { public static final int main=0x7f030000; public static final class string { public static final int app_name=0x7f040000; public static final int text_invit=0x7f040001; 13

La classe R public final class R { ->ressources dans le dossier res <=> identifiants ds. R.java... public static final class string { public static final int app_name=0x7f040000; public static final int texte=0x7f040001; fichier res/values/string.xml <?xml version="1.0" encoding="utf 8"?> <resources> <string name="app_name">marre d\'hello World</string> <string name="texte">marre du classique hello World</string> </resources> 14

La classe R public final class R { fichiers /res/layout/main.xml et /res/layout/main1.xml public static final class layout { public static final int main=0x7f030000; public static final int main1=0x7f030001; En Java : setcontentview(r.layout.main) Et comment faire pour accéder aux vues décrites dans le fichier layout? 15

Le fichier Layout <TextView android:id="@+id/val" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="" /> ->en passant par la classe interne id! -En Java, cela permet de récupérer une référence sur l'objet ainsi : (TextView)findViewById(R.id.val) 16

La classe View Brique de base de l'interface utilisateur Zone dessinable et source d'événements 17

Le fichier Layout <TextView android:id="@+id/val" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="" /> -@+id/val signifie une référence à l'identifiant val -En Java, cela permet de récupérer une référence sur l'objet ainsi : (TextView)findViewById(R.id.val) 18

Activités la classe hérite d'activity : import android.app.activity; public class MarreDHelloWorldActivity extends Activity { private int val; private TextView text; @Override public void oncreate(bundle bundle) { super.oncreate(bundle); setcontentview(r.layout.activity_main); val = 0; text =(TextView)findViewById(R.id.val); text.settext("valeur = "+val); public void actionajout(view view) { text.settext("valeur = "+ ++val); 19

Activités Le contenu graphique de l'application est obtenu à partir de res/layout/activity_main.xml La référence du widget text est obtenue à partir de son identifiant grâce à la fonction findviewbyid @Override ->paramètre Bundle pour la sauvegarde des données on y reviendra! public void oncreate(bundle bundle) { super.oncreate(bundle); setcontentview(r.layout.activity_main); val = 0; text =(TextView)findViewById(R.id.val); text.settext("valeur = "+val); 20

Activités La méthode actionajout prévue pour traiter les événements click : elle reçoit la référence du widget cliqué en paramètre d'appel Ou programmer un écouteur implémentant l'interface View.OnClickListener avec une méthode public void onclick(view v) public class MarreDHelloWorldActivity extends Activity { private int val; private TextView text;... public void actionajout(view view) { text.settext("valeur = "+ ++val); <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="+ 1" android:onclick="actionajout" /> 21

Le fichier AndroidManifest.xml <?xml version="1.0" encoding="utf 8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="df.cours.marredhelloworld"> <uses sdk version de API (et non de SDK) android:minsdkversion="8" android:targetsdkversion="17" /> <application android:allowbackup="true" android:icon="@mipmap/upjv_launcher" android:label="@string/app_name" android:supportsrtl="true" android:theme="@style/apptheme"> <activity android:name=".mainactivity"> <intent filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" /> </intent filter> </activity> </application> </manifest> 22

Le fichier AndroidManifest.xml <application android:exported ="true" indique si l activité peut être lancée à partir d une autre application android:icon="@mipmap/upjv_launcher" android:label="@string/app_name" android:supportsrtl="true" android:theme="@style/apptheme"> <activity android:name=".mainactivity"> l activité et le nom de la classe <intent filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" /> </intent filter> </activity> </application> Dans le filtre d'intention : c'est la classe principale (MAIN) et elle apparaît dans le "Launcher" lanceur 23

L'arborescence d'une application Applications fonctionnelles sur une variete de terminaux => fichiers XML! Ressources = images, chaines de charac., musique 24