Introduction à Android. Jean-Marc Lecarpentier Université de Caen



Documents pareils
Projet Android (LI260) Cours 2

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

Les fondamentaux du développement d applications Java

Tutorial pour une application simple

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

TD/TP 1 Introduction au SDK d Android

Tutoriel Android - TP de prise en main

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

TP SIN Programmation sur androïde Support : eclipse

Votre premier projet Android

TP au menu «UI ANDROID»

Programmation mobile avec Android

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

1.3 Gestion d'une application

DÉVELOPPEMENT ANDROID

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

Programmation Mobile Android Master CCI

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

Introduction ANDROID

Développement d applications professionnelles avec Android 2

Android en action. Abdelkader Lahmadi Université de Lorraine

Warren PAULUS. Android SDK et Android x86

Android. Présentation d Android. Florent Garin

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

De Java à Android version 0.1

SOMMAIRE

Android et le Cloud Computing

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

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

Installation et prise en main

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

Programmation Android L3 informatique

Chapitre 1 Retour en arrière

Plan du cours. Historique du langage Nouveautés de Java 7

TP2 : Client d une BDD SqlServer

Annexe Android Studio

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

TP1 : Initiation à Java et Eclipse

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

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

TP1 : Initiation à Java et Eclipse

Android 101. Rémi Forax

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

Education Delivery Intelligent Tool

Java - la plateforme

Module Criteo Tags et Flux pour Magento

Introduction aux Machines Virtuelles avec VMKit

1. Base de données SQLite

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

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

Licence Bio Informatique Année Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

Cours Android. Développement et API. Romain Raveaux 1. Mars 06-03, romain.raveaux at univ-tours.fr. Organisation du module

Créer des applications Android

Reversing Android. Aïe, robot...

Initiation à JAVA et à la programmation objet.

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

Développement sous Android

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

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

Java Avancé. Le langage Java. Rémi Forax

Prise en main rapide

Projet de Veille Technologique

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

Développement Android. J.-F. Couchot

Web Tier : déploiement de servlets

Poste virtuel. Installation du client CITRIX RECEIVER

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

Séminaire Partenaires Esri France 7-8 juin Paris Les API ArcGIS pour les smartphones

Terminaux Mobiles Communicants

Projet gestion d'objets dupliqués

Machines Virtuelles. et bazard autour. Rémi Forax

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Création d une application Android (APPInventor)

Jahia. Guillaume Monnette École Ingénieurs 2000 Marne-La-Vallée IR3

Annexe : La Programmation Informatique

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

LES OBJETS CONNECTES

Eclipse atelier Java

Module.NET 3 Les Assemblys.NET

Environnement Zebra Link-OS version 2.0

Java Licence Professionnelle CISII,

Encore plus de widgets et de conteneurs

Machines virtuelles. Brique ASC. Samuel Tardieu Samuel Tardieu (ENST) Machines virtuelles 1 / 40

Environnement Zebra Link-OS version 2.0

Composants Logiciels. Le modèle de composant de CORBA. Plan

Programmeur Java 1.4 et 5.0

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

Génération de code binaire pour application multimedia : une approche au vol

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

Introduction à Java. Philippe Genoud.

Derrière toi Une machine virtuelle!

Vulgarisation Java EE Java EE, c est quoi?

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

Cours 1: Java et les objets

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

DOCKER MEETUP. Christophe Labouisse

WiFi Security Camera Quick Start Guide. Guide de départ rapide Caméra de surveillance Wi-Fi (P5)

Java au cœur de la base de données Oracle

Béatrice Bertrand CDDP de l Eure. Béatrice Bertrand CDDP de l'eure

Architectures Mobiles

Transcription:

Introduction à Android Jean-Marc Lecarpentier Université de Caen

Android Environnement de développement Basé sur noyau Linux Applications en Java Architecture spécifique Java VM adaptée aux terminaux mobiles 2008 : Android 1 2013 : Android 4.4 KitKat 2014 : Android 5 Lollipop 2015 : Android Marshmallow

Écosystème Android Plate-forme Google Play Fin 2015 : 1,9 million d Apps Diffusion simple Chiffre d affaire ~5 milliards dont 90% jeux

Coûts de développement Source : Intersog http://intersog.com/blog/ecommerce/app-development-cost-in-2014-ios-vs-android/

Développer pour Android Android Studio Prêt à l emploi Basé sur IDE IntelliJ Gestion des émulateur (Android Virtual Device ou AVD) Pré-requis : programmation OO - Java - XML

Apps App = Android package (archive.apk) 1 App = 1 Linux user id 1 App = 1 process = 1 virtual machine

Architecture

Architecture

Architecture

Architecture

Runtime Dalvik Virtual Machine : par défaut avec Android < 5 optimisée pour terminaux peu puissants compilation JIT (Just In Time) : création de bytecode ART : pour Android 5 mélange ad-hoc de compilation AOT (Ahead Of Time), JIT et de code interprété garbage collection améliorée les + : performances et réactivité, rapidité, durée de batterie les (petits) - : mémoire, install + longue et volumineuse

Au programme Comment créer une App pour démarrer Voir les concepts généraux Composants Android : Activity, Intent, View, etc Structure d une App : fichiers XML, programmes Java, code auto-généré, ressources, etc Utilisation de Android 4.4 sur nos appareils Possibilité de tester avec Android 5 sur émulateur

Créer une App Utiliser l assistant de Android Studio Choisir un namespace Java (à partir d un URL) Choisir la version minimale de SDK (compatibilité antérieure) Choisir les noms de l activité et du layout utilisés au lancement de l application

Structure

Tester son App Connecter un appareil Android : multiplicité des terminaux Utiliser un AVD : tester sur de multiples configurations Run lance l émulateur Android (un peu long)

Composants de base Manifest : déclaration des caractéristiques de l App Activity = un écran de l App. Programme Java spécifiant les comportements de l écran Intent = message asynchrone pour activer des composants (par ex. Activity) Service, Content Provider, Broadcast Receiver

Android Manifest Fichier obligatoire qui décrit les caractéristiques de l App : requirements : par ex. camera indispensable que faire au démarrage permissions icônes etc. Android 6 permet de gérer les permissions plus finement

Layout Fichier XML déclaratif Gérer la diversité des appareils Éditeur Wysiwyg et code XML généré par le SDK Par programme Dynamique, créé à l exécution Ne pas utiliser pour les éléments fixes

Capter un évènement Définir dans le Layout attribut onclick dans la déclaration XML <Button android:id= @+id/gogo" android:onclick= afficher /> Méthode publique correspondante dans l activité public void afficher(view view) { }

Capter un évènement Par programme : mettre un capteur d évènement lors de la création de l activité (méthode oncreate) Utilisation de callback btngo.setonclicklistener(new OnClickListener() { @Override public void onclick(view v) { // ce qu on fait lorsque le clic est capté } } });

Callback onclick Méthode déclarative ou par programme Méthode publique et valeur de retour void public void onclick(view v) public void afficher(view v) objet View en argument : l élément graphique qui a capté l évènement

Accéder aux éléments Méthode findviewbyid() de Activity Identifiants générés par le SDK et gérés par la classe R.java Exemples : txtsaisie=(textview) findviewbyid(r.id.saisie); btngo=(button) findviewbyid(r.id.go); setcontentview(r.layout.activity_main);

Activity Définit un écran de l App : layout, évènements, comportement Fonctionnement à base de callbacks : oncreate(), onpause(), etc Lancement d une App oncreate() de l activité déclarée comme launcher ou main dans le Manifest

oncreate() Exécuter les actions nécessaires au lancement de l App créer les variables de classe déclarer l interface (Layout XML) à utiliser toute autre action

Intents Intent : objet permettant de lier des composants séparés Par exemple pour lier 2 activités Intent intent = new Intent(this, affichermessage.class); Arguments : objet Context (ici l objet Activity courant) la classe à utiliser (ici le nom de l activité) Lancer l activité : méthode startactivity startactivity(intent);

Créer un objet Activity Utiliser l assistant du SDK Crée la classe Java, le fichier de layout XML, complète le Manifest Créer ensuite le Layout de l activité

Transmettre des données Comment passer des informations d une activité à une autre? Intent peut contenir des extras extras : ensemble de paire (nom, valeur) Ajouter une paire aux extras : méthode putextra()

Transmettre des données Clé : Constante publique de l activité en cours Bonne pratique : préfixer par le namespace de l App public final static String MON_MESSAGE = fr.greyc.users.lecarpentier.toto.mon_message"; Valeur : gérée par le programme Intent intent = new Intent(this, AfficherMessage.class); String message = txtsaisie.gettext().tostring().trim(); intent.putextra(mon_message, message); startactivity(intent);

Recevoir les données Récupérer l objet Intent qui a déclenché l activité Intent intent = getintent(); Récupérer le contenu des extras pour la clé donnée String message = intent.getstringextra(apphome.mon_message);

Resources Tout ce qui n est pas du code Séparer présentation (layout) et exécution (java) Proposer des alternatives de layout en fonction de : type ou taille du terminal langue d interface etc Fichiers déclaratifs XML dans dossier res/

Resources et textes Ne JAMAIS mettre un texte en dur dans les fichiers XML TOUJOURS utiliser une référence vers une resource Fichier res/values/strings.xml : contient les textes à utiliser, avec un nom (attribut name) À éditer avec le SDK pour mettre à jour les références

En bref Android c est quoi Ma première App : Hello Android! Créer un Layout Afficher des informations Lancer un autre écran Transmettre un message à une activité

Ressources developer.android.com : tout y est (ou presque) Training : tutoriels progressifs pour apprendre Android Studio : introduction & download Configuration avec Gradle : concepts de base