• Aucun résultat trouvé

Programmation Android

N/A
N/A
Protected

Academic year: 2022

Partager "Programmation Android"

Copied!
59
0
0

Texte intégral

(1)

Programmation Android

Wafa Badreddine

[email protected]

(2)

Plan

Présentation d’Android

Qu’est ce qu’Android ?

Qui utilise Android ?

Concepts de base

Composants d’une application Android

Architecture logicielle d’Android

Activité

Cycle de vie

(3)

Wafa Badreddine PROGRES

Qu’est ce qu’Android ?

Un système d’exploitation

Un système d’exploitation orienté dispositif mobiles

il s’agit donc d’un ensemble de logiciels qui sert d’interface entre le matériel (les composants du téléphone, d’une tablette...) et les logiciels applicatifs (ceux que vous allez développer)

Un système d’exploitation open source

disponibilité du code,

importante communauté d’utilisateurs.

Un système d’exploitation basé sur le noyau Linux

Environnement de développement gratuit

Kit de développement (SDK Android) disponible et propose de nombreux outils pour le développement d'applications Android et de nombreuses API utiles.

https://developer.android.com/studio

Android est basé sur JAVA et principalement toutes ses applications sont développées en JAVA

!3

(4)

Open Handset Alliance

Date de création : Le 5 novembre 2007 à l’initiative de Google

Objectifs : Développer des normes ouvertes pour les appareils de téléphonie mobile

Membres : 34 grands acteurs opérateurs de téléphonie mobile, fabricants de semi-conducteurs, d’appareils mobiles, de

logiciels…

(5)

Wafa Badreddine PROGRES

Les versions d’Android

Les différentes versions d’Android ont toutes des noms de desserts depuis la sortie de la version 1.5 et suivent un ordre alphabétique :

1.0 -- 2007 : Version peu connue (version du SDK distribuée avant la sortie du premier téléphone Android)

1.1 -- 2008 : Version incluse dans le premier téléphone, le HTC Dream

1.5 - Cupcake - 04/2009 : Dernière révision officielle en mai 2010

1.6 - Donut - 09/2009 : Dernière révision officielle en mai 2010

2.0 - Eclair - 2009 : Vite remplacée à cause de nombreux bugs par la 2.0.1 puis par la 2.1

2.1 - Eclair - 01/2010 : Dernière révision officielle en mai 2010

2.2 (2.2.3) - FroYo - 05/2010 : Dernière révision officielle en 2011

2.3 (2.3.7) - Gingerbread - 12/2010

Y 3.0 (3.2) - Honeycomb - 01/2011

4.0 (4.0.3) - Ice Cream Sandwich - 10/2011

5.0 - Jelly Bean

…..

!5

(6)

De plus en plus d’équipements

(7)

Wafa Badreddine PROGRES

Concurrents Android

Apple avec iOS

Research In Motion (RIM) avec BlackBerry OS

Microsoft avec Windows Phone

Samsung avec Bada (même si Samsung utilise aussi Android)

HP avec Palm webOS devenu webOS (Arrêté en 2011)

Nokia avec Symbian OS (Arrêté en 2011, Nokia utilisera désormais Windows Phone).

!7

(8)

Télécharger/Distribuer des applications

Google Play Store (ancien Android Market): Système standard de téléchargement/

distribution d’applications.

Pas de vérification des applications

Navigation plus laborieuse que AppMarket (recherche par catégories, mots clés, prix)

Nécessite un terminal certifié (camera, 3G,…)

Gestion des autorisations avant l’installation

Des centaines de milliers d’applications disponibles (la plupart sont gratuites)

Si vous souhaitez vendre vos applications:

S’inscrire en tant que développeur (Frais d’inscription)

% du prix revient au développeur, % à Google

(9)

Concepts de base

(10)

Composants d’une application Android

Activité (Activity)

Brique de base d’une interface utilisateur

Présenter une interface utilisateur visuelle pour un projet ciblé que l'utilisateur peut entreprendre

Equivalent d’une fenêtre (Windows, Linux) ou d’une boîte de dialogue

Une activité peut éventuellement ne pas avoir d’interface utilisateur (cas des services par exemple)

Exemple: une liste d'éléments de menu que les utilisateurs peuvent choisir

(11)

Wafa Badreddine !11 PROGRES

Service (Service)

Tourne en arrière-plan pour une durée indéterminée

Logiciel autonome prévu pour durer (contrairement aux activités, fournisseurs de contenus, récepteur d’intentions).

Ne nécessite pas d’interface utilisateur.

Exemples: Service vérifiant périodiquement des mises-à-jour de flux RSS - Service permettant d’écouter une playlist (indépendamment de toute activité)

(12)

Fournisseur de contenu (Content provider)

Niveau d’abstraction pour toutes données stockées sur le terminal

Il permet de stocker et de récupérer des données et de les rendre accessibles à toutes les applications

Exemple: Android est livré avec un certain nombre de fournisseurs de contenu pour les types de données courants (par exemple, audio, vidéo, images, informations de contact personnelles, etc.).

Android encourage la mise à disposition de ses propres données aux autres programmes

Le content provider le permet en proposant un contrôle sur la façon dont on accédera aux données

(13)

Wafa Badreddine PROGRES

Intention (Intent)

Une intention est un message système qu’on peut qualifier d’événement

Emis par le terminal pour prévenir les applications de la survenue d’événements (cas des événements systèmes) ou par toute autre application (cas des événements applicatifs).

Système: Insertion d’une carte SD, Réception d’un SMS, …

Applicatif : Un intent «  Le logiciel X démarre  », Un intent «  L’utilisateur arrive à Paris  » en utilisant les informations de géolocalisation du terminal, …

!13

(14)

Manifeste (Manifest)

Point de départ de toute application Android

L’application doit déclarer ce que l’application contient (ses composants, notamment les activités et services,…) dans un fichier AndroidManifest.xml

Le fichier Manifest indique au système qu’un composant qui veut se lancer existe déjà

Précise comment ces composants sont reliés à Android (que fait-on apparaitre dans le menu ? …)

Précise les permissions de l’application (contrôle de la webcam, accès au réseaux, accès au service de localisation...)

(15)

Wafa Badreddine PROGRES

Conteneur (container)

Permet de disposer un ensemble de widgets pour obtenir la présentation désirée

La plupart des outils de construction d’interfaces graphique fournissent des gestionnaires de disposition (layout manager) qui sont organisés le plus fréquemment en conteneurs.

Equipement Android Virtuel (Android Virtual Devices)

Les AVD permettent de simuler l’exécution d’un terminal Android sur un ordinateur

Ces terminaux sont personnalisables (version d’Android, type de processeur, espace de stockage…).

Simplifie le développement et la mise au point des applications

!15

(16)

Architecture Logicielle d’Android

(17)

Activité: Définition et

cycle de vie

(18)

Qu’est ce qu’une activité (1/2)

Une application Android est généralement composée de plusieurs activités liées les unes aux autres

Exemple : Soit une application d’envoi de SMS

Une activité pour choisir un contact dans le répertoire

Une activité pour la saisie du message

Une activité pour afficher le journal des envois

(19)

Wafa Badreddine PROGRES

Qu’est ce qu’une activité (2/2)

D’un point de vue opérationnel :

Une activité doit hériter de la classe android.app.Activity

Une activité est indépendante des autres activités MAIS :

Il faut designer une activité de départ (celle qui sera utilisée en 1er)

L’activité affichée au lancement de l’application est appelée

«activité main »

Il faut chainer les activités (une activité doit activer la suivante)

Chaque activité peut en lancer une autre pour effectuer différentes actions et respecte un cycle de vie

!19

(20)

Cycle de vie d’une activité

(21)

Wafa Badreddine !21 PROGRES

(22)
(23)

Wafa Badreddine !23 PROGRES

(24)
(25)

Wafa Badreddine !25 PROGRES

(26)
(27)

Wafa Badreddine !27 PROGRES

(28)

Layout XML

(29)

Wafa Badreddine PROGRES

Positionnement XML (Layout XML)

La structure visuelle d’une activité est décrite dans un fichier .xml appelé layout

XML: eXtensible Markup Language

Langage de balisage extensible pour structurer des données

Permet de concevoir des interfaces plus simplement qu’en langage Java

Permet concrètement d’instancier des widgets

Chaque activité a son propre fichier layout pour la décrire

Par exemple, on associera l’activité MainActivity au fichier activity_main.xml qui est généré automatiquement lors de la création de l’activité

!29

(30)

Choix du Layout:

LinearLayout : Il organise les différents éléments de votre interface sur une ligne ou sur une colonne.

AbsoluteLayout : Cette mise en page vous laisse définir les coordonnées exactes des éléments qui le composent.

RelativeLayout : Il permet de définir la position des éléments en fonction de la position de leurs éléments parents. On ne peut pas avoir de dépendance circulaire dans la taille dans le RelativeLayout.

TableLayout : Cette mise en page peut se faire en colonne et en ligne.

(31)

Wafa Badreddine PROGRES

Les widgets:

EditText : Un champ de texte modifiable

Toast : Un pop up message qui s’affiche sur l’écran

ImageView : Une image

CheckBox : Une case à cocher

Button : Un bouton cliquable

RadioButton : sélecteurs/interrupteurs.

ImageButton : Une image qui se comporte comme un bouton

DatePicker : Un sélecteur de dates

SlidingDrawer : Un élément qui se présente sous forme d’un tiroir qu’on ouvre et ferme

!31

(32)

Exemple de layout XML dans

Android

(33)

Wafa Badreddine !33 PROGRES

(34)
(35)

Wafa Badreddine !35 PROGRES

(36)
(37)

Manifeste

(38)

Fichier Manifest

Fichier XML

Chaque application doit en avoir un

Précise l’architecture de l’application: L’application doit déclarer tous ses composants, notamment les activités

AndroidManifest.xml est dans la racine du projet

(39)

Wafa Badreddine PROGRES

Contenu fichier Manifeste

Décrit les composants de l’application

Liste des activités, services, …

Précise les classes qui les implémentent

Précise leurs capacités (à quels intents ils réagissent)

Ceci permet au système de savoir comment lancer chaque partie de l’application.

Définit les permissions de l’application

Droit de passer des appels

Droit d’accéder à Internet

Droit d’accéder au GPS

Précise la version d’Android minimum nécessaire

Déclare les librairies utilisées

!39

(40)

Permissions

Une application ne peux pas utiliser certaines fonctionnalités sauf s’il le précise dans le fichier manifest

Il faut donc préciser les permissions nécessaires grâce à : <uses-permission>

Il existe des permissions standards :

android.permission.CALL EMERGENCY NUMBERS

android.permission.READ OWNER DATA

android.permission.SET WALLPAPER

android.permission.DEVICE POWER

(41)

Wafa Badreddine !41 PROGRES

Avant de pouvoir accéder au Hardware NFC d'un périphérique et de gérer correctement les

intentions NFC

(42)

Hello World

(43)

Wafa Badreddine PROGRES

Android Studio

Android Studio est un environnement de développement pour développer des applications mobiles Android.

https://developer.android.com/training/basics/firstapp/creating- project

!43

(44)

New —> New Project

(45)

Wafa Badreddine !45 PROGRES

(46)
(47)

Wafa Badreddine !47 PROGRES

Android utilise Bundle pour le partage de variables.

Bundle est utilisé pour transmettre des données

entre les activités.

(48)

Contenu du répertoire res

res/drawable/ : Répertoire qui contient les images (JPG, PNG…)

res/layout/ : Répertoire qui contient les descriptions XML de la composition de l’IHM (les layouts)

res/menu/ : Répertoire qui contient les descriptions XML des menus

res/raw/ : Repertoire qui contient les fichiers généraux (un fichier CSV contenant les informations de compte par exemple)

res/values/ : Répertoire qui contient les messages, les dimensions…

res/xml/ : Répertoire qui contient les autres fichiers XML que vous souhaitez fournir

(49)

Wafa Badreddine !49 PROGRES

(50)
(51)

Wafa Badreddine !51 PROGRES

(52)
(53)

Wafa Badreddine !53 PROGRES

(54)
(55)

Wafa Badreddine PROGRES

Prochain TP

Android

Le TP est autour de la programmation Android. Afin de développer vos applications en Android, la maitrise du langage Java est indispensable.

Application simple —> Application plus complexe

Personnalisation est notée

!55

(56)

Prochain cours

(57)

Wafa Badreddine PROGRES

Prochain Cours

Technologie NFC

NFC (NearFieldCommunication) est une technologie permettant d’échanger des données à une distances très faible (moins de 5cm), entre deux appareils équipés de NFC sans contact

NFC est intégrée dans certains téléphones portables sous forme d’une antenne, ainsi que sur certaines cartes de transport ou de paiement (permettant le paiement sans contact)

!57

(58)

Projet

Lecture de carte NFC et HCE

Le but du projet est d’introduire le principe de la communication sans contact NFC afin de pouvoir développer des applications NFC dans le futur.

La maitrise « du langage Java et la programmation Android » est indispensable.

Il faut avoir au moins un smartphone Android intégrant une antenne NFC et au moins une carte bancaire NFC ou une carte Navigo.

(59)

Merci pour votre attention

Références

Documents relatifs

Appy pie pour android gratuits sur les applications rend difficile sur comment créer une application gratuite où vous aurez besoin pour toutes les sites.. Lxtream application

For more information on using Google Maps in Android application

Il s'agit de développer un système qui sera utilisé dans un cadre médicale par la clinique de l'Ecole Supérieur d'Ostéopathie (à 500m de l'ESIEE) pour évaluer quantitativement

  

Il s'agit de développer un système qui sera utilisé dans un cadre médicale par la clinique de l'Ecole Supérieur d'Ostéopathie (à 500m de l'ESIEE) pour évaluer quantitativement

The only approach to achieve great efficiency for such a universal and flexible model as XML/XQuery is to choose appropriate data structures and processing techniques

• L’application doit déclarer tous ses composants, notamment les activités et services, dans un fichier AndroidManifest.xml. • Le fichier Manifest indique au

Together we have developed Android TM , the first complete, open, and free mobile