• Aucun résultat trouvé

Applications Mobiles

N/A
N/A
Protected

Academic year: 2022

Partager "Applications Mobiles"

Copied!
292
0
0

Texte intégral

(1)

APPLICATIONS MOBILES

Dr. Maïssa Mbaye

(2)

Avant-propos

L’Université Virtuelle Africaine (UVA) est fière de participer à accès à l’éducation dans les pays africains en produisant du matériel d’apprentissage de qualité. Nous sommes également fiers de contribuer à la connaissance globale, pour nos ressources éducatives sont principalement accessibles de l’extérieur du continent africain.

Ce module a été développé dans le cadre d’un programme de diplôme et diplôme en

informatique appliquée, en collaboration avec 18 institutions partenaires dans 16 pays africains.

Un total de 156 modules ont été développés ou traduits pour assurer la disponibilité en anglais, français et portugais. Ces modules sont également disponibles en tant que ressources éducatives ouvertes (OER) à oer.avu.org.

Au nom de l’Université Virtuelle Africaine et notre patron, nos institutions partenaires, la Banque africaine de développement, je vous invite à utiliser ce module dans votre

établissement, pour leur propre éducation, partager aussi largement que possible et participer activement aux communautés AVU de pratique d’intérêt. Nous nous engageons à être à l’avant-garde du développement et de partage ouvert de ressources pédagogiques.

L’Université Virtuelle Africaine (UVA) est une organisation intergouvernementale

panafricaine mis en place par lettre recommandée avec un mandat d’augmenter l’accès à l’enseignement supérieur et de formation de qualité grâce à l’utilisation novatrice des technologies de communication de l’information. Une charte instituant la UVA Organisation intergouvernementale, signée à ce jour par dix-neuf (19) Les gouvernements africains - Kenya, Sénégal, Mauritanie, Mali, Côte d’Ivoire, Tanzanie, Mozambique, République démocratique du Congo, Bénin, Ghana, République de Guinée, le Burkina Faso, le Niger, le Soudan du Sud, le Soudan, la Gambie, la Guinée-Bissau, l’Ethiopie et le Cap-Vert.

Les institutions suivantes ont participé au programme informatique appliquée: (1) Université d’Abomey Calavi au Bénin; (2) University of Ougagadougou au Burkina Faso; (3) Université Lumière Bujumbura Burundi; (4) Université de Douala au Cameroun; (5) Université de

Nouakchott en Mauritanie; (6) Université Gaston Berger Sénégal; (7) Université des Sciences, Techniques et Technologies de Bamako au Mali (8) Institut de la gestion et de l’administration

publique du Ghana; (9) Université des sciences et de la technologie Kwame Nkrumah au Ghana; (10) Université Kenyatta au Kenya; (11) Université Egerton au Kenya; (12) Université d’Addis-Abeba en Ethiopie (13) Université du Rwanda; (14) University of Salaam en Tanzanie Dar; (15) Université Abdou Moumouni Niamey Niger; (16) Université Cheikh Anta Diop au Sénégal; (17) Université pédagogique au Mozambique; E (18) L’Université de la Gambie en Gambie.

Bakary Diallo le Recteur

Université Virtuelle Africaine

(3)

Auteur

Dr. Maïssa Mbaye

Pair Réviseur

Kaboré Kiswendsida Kisito

UVA – Coordination Académique

Dr. Marilena Cabral

Coordinateur global Sciences Informatiques Apliquées

Prof Tim Mwololo Waema

Coordinateur du module

Victor Odumuyiwa

Concepteurs pédagogiques

Elizabeth Mbasu Benta Ochola Diana Tuel

Équipe de médias

Sidney McGregor Michal Abigael Koyier

Barry Savala Mercy Tabi Ojwang

Edwin Kiprono Josiah Mutsogu

Kelvin Muriithi Kefa Murimi

Victor Oluoch Otieno Gerisson Mulongo

(4)

Droits d’auteur

Ce document est publié dans les conditions de la Creative Commons http://en.wikipedia.org/wiki/Creative_Commons

Attribution http://creativecommons.org/licenses/by/2.5/

Le gabarit est copyright African Virtual University sous licence Creative Commons Attribution- ShareAlike 4.0 International License. CC-BY, SA

Supporté par

Projet multinational II de l’UVA financé par la Banque africaine de développement.

(5)

Avant-propos 2

Crédits de production 3

Copyright Remarquer 4

Aperçu du cours 7

Prérequis 7

Matériaux 7

Objectifs du cours 7

Unités 8

Évaluation 9

Plan 11

Lectures et autres ressources 14

Unité 0. Évaluation diagnostique 18 Introduction à l’unité 18

Objectifs de l’unité 18

Termes clés 18

Évaluation de l’unité 19

Évaluation 19 Réponses aux Questions 28 Lectures et autres ressources 31

Résumé de l’unité 31

Unité 1. Introduction aux environnements d’applications mobiles 32 Introduction à l’unité 32

Objectifs de l’unité 32

Activités d’apprentissage 33

Activité 1 1 – Notions d’appareils, plateformes et applications mobiles 33

Introduction 33 Termes clés 33

(6)

Plateformes d’applications mobiles 36

Système d’exploitation mobile 37

Applications mobiles 39

Conclusion 39

Etude comparative 40

Évaluation 40

Activité 1 2 – Fondamentaux des applications mobiles sous Android 42

Introduction 42

Architecture du framework d’Android 42

Composantes d’une applications Android 44

Conclusion 45

Évaluation 45

Activité 1 3 – Mise en place de l’environnement de développement 46

Introduction 46

Installation de JDK 7 47

Installation d’Android Studio 49

Conclusion 54

Évaluation 55

Activité 1 4 – Première Application Android 56

Introduction 56

Créer un projet Android Sous Android Studio 56 AVD (Android Virtual Device) Manager et lancement de

l’application Android 59

Présentation de l’interface d’Android Studio 65

Conclusion 66

Évaluation 67

Résumé de l’unité 71 Évaluation de l’unité . . . 71 Lectures et autres ressources 72 Unité 2. Conception et développement d’applications Android 73

(7)

Termes clés 73

Évaluation 74

Activités d’apprentissage 74 Activité 2 1 – Rappel sur XML 74

Introduction 74

Réponses: 77

Activité 2 2 - Structure d’un projet Android 78

Introduction 78

Le fichier Manifest 80

Les ressources d’un projet Android 81

Activités Android 88

Conclusion 91

Évaluation 92

Activité 2.3 – Conception des interfaces utilisateurs Android : widgets et

Layout 93

Introduction 93

Codage de l’interface utilisateur 94

Conteneur de vues : Les layouts 95

Les widgets d’Android 102

La gestion des evenements 118

Conclusion 119

Évaluation 120

Activité 2.5 - Les Intent et Toast Android 122

Introduction 122

Les deux types d’Intents 122

L’affichage de message avec Toast 124

Conclusion 125

(8)

Résumé de l’unité 142

Evaluation de l’unité 142

Lectures et autres ressources 143

Unité 3. Développement Android avancé 144 Introduction à l’unité 144

Objectifs de l’unité 144

Activités d’apprentissage 145

Activité 3 1 – Services d’Android 145

Introduction 145 Termes clés 145

Etat et Cycle de vie des services 146 Implémentation d’un service 148 Conclusion 152 Évaluation 153 Activité 3 2 – Géolocalisation, et Services basés sur la localisation 159

Introduction 159 GPS et Localisation 159 API Android de Localisation 160 Obtention des mises à jour de position GPS 161 Conclusion 163 Évaluation 164 Activité 3 3 – Gestion des capteurs du mobile 165

Introduction 165 Capteurs courant sur les appareils mobiles 165 API Android de programmation des capteurs 168 Utilisation de l’API de programmation des capteurs 170 public List<Sensor>getSensorList(int type) 172 Conclusion 173 Evaluation 173 Activité 3 5 – Services Téléphonies et SMS 187

(9)

Envoi de SMS par invocation de l’application SMS native 189

Api d’émission d’appel téléphonique 190

Évaluation 191

Évaluation de l’unité 197

Résumé de l’unité 197

Lectures et autres ressources 199

Unité 4. Applications Web Mobiles avec HTML5 200 Introduction à l’unité 200

Objectifs de l’unité 200

Termes clés 201

Activités d’apprentissage 202

Activité 4 1 – Applications mobiles, Web, Natives, hybrides 202

Introduction 202 Technologies des applications Web mobiles 205 Conclusion 206 Évaluation 206 Activité 4 2 –HTML5 pour le mobile 212

Introduction 212 Les nouveaux champs pour aider les mobiles 212 URL HTML5 pour le mobile 214 Géolocalisation sous HTML5 216 Conclusion 217 Évaluation 218 Activité 4.3 – Développement mobiles avec le framework JQuery Mobile 219

Introduction 219

Première application web mobile basée sur JQM 219

Ajout de JQM dans une page Web : 223

(10)

Utilisation des thèmes: 227

Boutons, Menus et icones: 233

Les listes JQuery Mobile: 240

Les éléments de formulaire: 245

Conclusion 250

Evaluation 251

Activité 4 4 – Applications Mobiles hybride avec Apache Cordova et

PhoneGap 263

Introduction 263 Installation des prérequis de Apache Cordova : Node.JS, Git et Apache Ant 264 Installation de Apache Cordova 270 Conclusion 276 Évaluation 276 Évaluation de l’unité 277

Résumé de l’unité 277

Lectures et autres ressources 278

Résumé du cours 278

Evaluation du cours 279

Introduction 279 Evaluation 2 – Pré déclaration de naissance 280 Introduction 280 Activité 3 – Réseaux social météo 282

Introduction 282 Références du cours 284

(11)

Aperçu du cours

Bienvenue à Applications Mobiles

Ce cours vous initie à la conception et la mise en œuvre d’applications Android pour les appareils mobiles. Vous développerez des applications à partir de zéro, en supposant que vous ayez une connaissance de base du langage de programmation Java. Vous apprendrez à mettre en place l’environnement de développement Android Studio, à l’utiliser pour créer des interfaces graphiques (utiliser les widgets d’Android) et programmer leur comportement, à interagir avec les ressources de l’appareil mobile (capteurs, sms, …). Vous apprendre également à développer des applications Web mobile avec HTML5 et hybride avec Apache PhoneGap.

Prérequis

Avant de prendre ce cours, vous devez

• Avoir une expérience de la programmation Object en Java

• Avoir une bonne connaissance des technologies web suivantes: HTML5 / CSS / JavaScript

La connaissance d’un framework JavaScript Mobile (JQuery UI, Dojo Mobile UI) est un plus.

Matériaux

Les matériaux nécessaires pour compléter ce cours comprennent:

• Un ordinateur sur lequel est installé un des systèmes d’exploitation populaires (Windows, Linux, MAC). De préférence i5 au minimum et 8GB de RAM et 20 GB de Disque libre.

• Une connexion Internet. L’installation de tout l’environnement peut nécessiter jusqu’à 8GB de téléchargement;

Objectifs du cours

À la fin de ce cours, l›étudiant devrait être en mesure de

• Concevoir et développer des applications mobiles natives sous Android.

• Intégrer dans une application mobilede fonctionnalités avancées d’Android comme l’utilisation des services, les capteurs, la localisation et la cartographie, …

(12)

Unités

Unité 0: Évaluation diagnostique

Cette unité a pour objectif de permettre à l’apprenant d’évaluer sa connaissance par rapport aux prérequis.

Unité 1 Introduction aux environnements d’applications mobiles

Cette unité présente les concepts générales sur les plateformes d’application mobiles

(Android,iOS, BlackBerry,…). Elle présente aussi les briques de base d’une application mobile.

Enfin, elle présente la procédure de mise en place de l’environnement de développement Android Studio ainsi que la première application Android.

Unité 2: Conception et développement d’applications Android

Cette unité présente la programmation sous Android avec Android SDK. Elle contient une présentation de l’a conception d’interfaces utilisateurs (Vues) et de la programmation du comportement de la plus part des widgets disponibles sous Android.

Unité 3: Services avancés d’applications mobiles

Cette unité a pour objectif de présenter des aspects avancés de l’API Android telles que les services, SMS et Appels. Elle présente aussi, l’interaction avec le matériel sur l’appareil tel que la gestion des capteurs (accéléromètre, gyroscope, capteur de température ;…).

Unité 4: Application Web Mobile

Cette dernière unité traite du développement des applications web mobiles avec HTML5.

Elle présente les technologies du Web (HTML, CSS3, JavaScript) ainsi que les Framework permettant d’avoir des applications Web qui s’adapte à la taille de l’écran(Responsive) telles que BootStrap, JQuery Ui. Enfin elle présente les technologies de développement d’applications mobiles hybrides indépendantes des plateformes avec PhoneGap.

(13)

Évaluation

Les évaluations formatives (vérification de progrès) sont inclues dans chaque unité.

Les évaluations sommatives (tests et travaux finaux) sont fournies à la fin de chaque module et traitent des connaissances et compétences du module.

Les évaluations sommatives sont gérées à la discrétion de l’établissement qui offre le cours. Le plan d’évaluation proposé est le suivant:

Titre évaluation Note Commentaires

1

Evaluation/Examen de fin de module

(évaluation sommative)

50%

Note sur 20 ou 100. Durée : au moins 3H00.

Cette évaluation peut être de préférence un projet pour évaluer les compétences en développement acquise.

2

Evaluation unité 1 (évaluations formatives)

10% Note sur 20 ou 100. Ils peuvent être des projets en ligne ou composés avec les évaluations données dans le cours.

3

Evaluation unité 2 (évaluations formatives)

10% Note sur 20 ou 100. Ils peuvent être des projets en ligne ou composés avec les évaluations données dans le cours

4

Evaluation unité 3 (évaluations formatives)

15% Note sur 20 ou 100. Ils peuvent être des projets en ligne ou composés avec les évaluations données dans le cours

5

Evaluation unité 4 (évaluations formatives)

15% Note sur 20 ou 100. Ils peuvent être des projets en ligne ou composés avec les évaluations données dans le cours

(14)

Grille et barème de notation

Notes sur 100 Notes sur 20 Appréciation du résultat

90-100 18 ou Plus Excellent. Résultat largement au-dessus de la moyenne des étudiants.

80-89 [16-18[ Résultat au-delà des attentes. L’apprenant est allé au-delà des objectifs fixés par le cours

70-79 [14-16[ Résultat conforme à ce qui est attendu d’un étudiant moyen

60-69 [12-14[ Résultat acceptable mais certains objectifs de cours n’ont pas été atteints.

50-59 [10-12[

Passage conditionnel. Les objectifs ne sont que

partiellement atteints. Des activités de remédiations sont nécessaires pour mieux assimiler les cours et acquérir les compétences.

49 ou moins Moins de 10 Echec. L’apprenant doit reprendre le module.

(15)

Plan

Unité Sujets et Activités Durée

estimée Séance 1

Évaluation diagnostique

Cette séance est réservée à la présentation du cours et de l’unité 0. Après ce cours,

• Les objectifs et les compétences du cours

• Les prérequis

• Le déroulement du cours

• Le contenu

• les travaux à rendre et les délais de soumission et ainsi que le système de notation

• Les différentes ressources disponibles sur le cours

Répartition du temps de travail

1. Compréhension des objectifs du cours ainsi que les prérequis 0h30mn

2. Activités de l’unité 7h30,

3. Activités de remédiations, révision et lectures d’autres cours 4h00

12H00

Séance 2 : Introduction aux environnements d’applications mobiles

Cette séance concerne le contenu de l’unité 1 du cours.

• Lecture du contenu de l’unité 1 par les apprenants

• Les apprenants doivent faire les activités d’apprentissage de l’unité 1

Répartition du temps de travail 1. Lecture du cours 10h00

2. Activités du cours 10h00 3. Evaluation de l’unité 3h00

4. Re c h e r c h e e t c o n s u l t a t i o n d e s li e n s supplémentaires 2h00

25H00

(16)

Unité Sujets et Activités Durée estimée Séance 3:

Conception et développement d’applications Android

Cette séance concerne le contenu de l’unité 2 du cours.

• Lecture du contenu de la de l’unité 2 par les apprenants

• Les apprenants doivent faire les activités d’apprentissage de l’unité 2

Répartition du temps de travail 1. Lecture du cours 8h00 2. Activités du cours 13h00 3. Evaluation de l’unité 2h00

4. Recherche et consultation des liens supplémentaires 2h00

25H00

Séance 4 : Services avancés d’applications mobiles

Cette séance concerne le contenu de l’unité 3.

• Lecture du contenu de la l’unité 3 par les apprenants

• Les apprenants doivent faire les activités d’apprentissage de l’unité 3

Répartition du temps de travail 1. Lecture du cours 10h00 2. Activités du cours 10h00 3. Evaluation de l’unité 3h00

4. Recherche et consultation des liens supplémentaires 2h00

25H00

(17)

Unité Sujets et Activités Durée estimée Séance 5 : :

Application Web Mobile

Cette séance concerne le contenu de l’unité 4.

• Lecture du contenu de l’unité 4 par les apprenants

• Les apprenants doivent faire les activités d’apprentissage de l’unité 4

Répartition du temps de travail 1. Lecture du cours 8h00

2. Activités du cours 18h00 3. Evaluation de l’unité 2h00

4. Recherche et consultation des liens supplémentaires 2h00

30H00

Séance 6 Examen de fin de semestre 3h00

(18)

Lectures et autres ressources

Les lectures et autres ressources dans ce cours sont indiquées ci-dessous.

Unité 0

Lectures et autres ressources obligatoires:

• Aucun

Lectures et autres ressources optionnelles:

Les lecturres optionnelles suivantes permettent d’approfondir les concepts vues dans le cours.

• Développons en Java, Michelle Doudoux, 2014 http://www.jmdoudoux.fr/java/

dej/titre.htm

• Apprenez à programmer en Java , Cyril Herby , Open ClassRooms , 2015, https://

openclassrooms.com/courses/apprenez-a-programmer-en-java

• Cours de développement en Java, http://java.developpez.com/cours/

Unité 1

Lectures et autres ressources obligatoires:

• Aucun

Lectures et autres ressources optionnelles:

Les lecturres optionnelles suivantes permettent d’approfondir les concepts vues dans le cours.

• Programmation Android De la conception au déploiement avec le SDK Google Android 2, Damien Guignard Julien Chable, Emmanuel Robles, Editions Eyrolles 2009

• Développement sous Android, Jean-Francois Lalande - May 2015 - Version 2.2 (Auto-publication)

• Professional Android™ 2 Application Development, Reto Meier, Editions WileyPublishing WROX, 2010

• Android Application Development , Rick Rogers, John Lombardo, Zigurd Mednieks, et Blake Meike, O’Reilly Media, Inc 2009

• Pro Android 3, Satya Komatineni, Dave MacLean, and Sayed Y. Hashimi, Editions Apress 2011

(19)

Unité 2

Lectures et autres ressources obligatoires:

• Aucun

Lectures et autres ressources optionnelles:

Les lecturres optionnelles suivantes permettent d’approfondir les concepts vues dans le cours.

• http://www.tutorialspoint.com/android/android_acitivities.htm

• http://www.kilobolt.com/day-4-building-a-music-app---part-1-building-blocks.

html

• http://www.kilobolt.com/day-5-building-a-music-app---part-2-intents.html

• http://www.kilobolt.com/day-6-building-a-music-app---part-3-activity-lifecycles.

html

• http://developer.android.com/tools/projects/index.html

• https://developer.xamarin.com/guides/android/application_fundamentals/

resources_in_android/

• https://developer.xamarin.com/guides/android/application_fundamentals/

activity_lifecycle/

• https://developer.xamarin.com/guides/android/user_interface/

• http://developer.android.com/guide/components/activities.html

• https://www.youtube.com/watch?v=kT6JFvLxoxs

• https://bestandroidtraining.wordpress.com/2013/03/30/android-project-structure/

• http://android4beginners.com/2013/06/

appendix-a-android-xml-syntax-structure-of-xml-tags-and-attributes/

• http://android4beginners.com/2013/06/lesson-0-7-running-an-android-app-in-a- real-device-but-you-dont-need-any-to-create-an-app/

• http://android4beginners.com/2013/06/

lesson-0-6-running-an-android-app-in-a-virtual-phone-or-tablet/

• http://android4beginners.com/2013/06/lesson-0-5-previewing-app-layout-on- various-devices-and-screen-sizes-without-having-them/

• http://javatechig.com/tools/android-studio-project-structure

• http://code.tutsplus.com/tutorials/android-project-structure--mobile-12781

(20)

Unité 3

Lectures et autres ressources obligatoires:

• Aucun

Lectures et autres ressources optionnelles:

Les lecturres optionnelles suivantes permettent d’approfondir les concepts vues dans le cours.

• http://www.vogella.com/tutorials/AndroidServices/article.html

• http://developer.android.com/guide/components/services.html

• http://www.tutos-android.com/service-android

• http://www.tutorialspoint.com/android/android_services.htm

• https://developer.xamarin.com/guides/android/application_fundamentals/

services

• http://javatechig.com/android/android-service-example

Unité 4

Lectures et autres ressources obligatoires:

• Aucun

Lectures et autres ressources optionnelles:

Les lecturres optionnelles suivantes permettent d’approfondir les concepts vues dans le cours.

• Mobile Web Apps vs. Mobile Native Apps: How to Make the Right Choice , LionBridge, Novembre 2012 http://www.lionbridge.com/files/2012/11/

Lionbridge-WP_MobileApps2.pdf

• HTML5 Mobile Development, Maximiliano Firtman, DZone, https://dzone.com/

refcardz/html5-mobile-development

• The 5 Critical App Questions http://www.app-press.com/blog/2015/4/29/

the-five-critical-app-questions

• The Vital Guide to Interviewing Mobile Application Designers http://webdesignledger.com/

the-vital-guide-to-interviewing-mobile-application-designers

• HTML5: The Evolution of Web Standards, James Sugrue, https://dzone.com/

refcardz/html5-new-standards-web-interactivity

• HTML5 Mobile Development, http://www.sixfeetup.com/app-development/

mobile-html5

• Getting Started With jQuery Mobile https://www.smashingmagazine.

com/2013/03/getting-started-jquery-mobile/

(21)

• LE FRAMEWORK MOBILE : JQUERY MOBILE, Nassim Kebbani, https://

openclassrooms.com/courses/un-site-web-dynamique-avec-jquery/le-framework- mobile-jquery-mobile (dernier accès 13/02/16)

• Comment simplifier la création de vos applications mobiles avec jQuery Mobile, Matthieu, http://programmation-facile.developpez.com/tutoriels/javascript/

comment-simplifier-creation-vos-applications-mobiles-avec-jquery-mobile/

(dernier accès 13/02/16)

• Apache Cordova Tutorial, Fast Track to Mobile Application Développent,

Christophe Coenraets, 2014 http://ccoenraets.github.io/cordova-tutorial/ (dernier accès 13/02/16)

• jQuery Mobile Tutorial, W3SChools, http://www.w3schools.com/jquerymobile/

(dernier accès 13/02/16)

• Getting Started with JQuery Mobile, https://learn.jquery.com/jquery-mobile/

getting-started/ (dernier accès 13/02/16)

• jQuery Mobile Demo http://jquerymobile.com/demos/(dernier accès 13/02/16)

(22)

Unité 0. Évaluation diagnostique

Introduction à l’unité

Cette unité vous permettra de vérifier les connaissances que vous devez avoir avant de commencer le cours. Vous pouvez faire l’évaluation de l’unité avant de faire des activités d’apprentissage pour aider à rafraîchir vos connaissances.

Il traite du langage Java et des technologies Web.

Objectifs de l’unité

À la fin de cette unité, vous devriez être capable de prouver votre connaissance dans les domaines prérequis:

1. programmation en Java

2. programmation Web HTML / CSS3 / JavaScript

Termes clés

[Langage Java]: [Le langage Java est un langage de programmation informatique orienté objet créé par James Gosling et Patrick Naughton, employés de Sun Microsystems, avec le soutien de Bill Joy (cofondateur de Sun Microsystems en 1982), présenté officiellement le 23 mai 1995 au

SunWorld.]

[Programmation orientée Objet]: [La programmation orientée objet (POO), ou programmation par objet, est un paradigme de programmation informatique qui consiste en la définition et l’interaction de briques logicielles appelées objets ; un objet représente un concept, une idée ou toute entité du monde physique, comme une voiture, une personne ou encore une page d’un livre.]

[Technologies Web]: [Les technologies web sont un ensemble de technologies qui composent et utilisent le World Wide Web (généralement abrégé en Web) et ses normes.]

(23)

Évaluation de l’unité

Vérifiez votre compréhension!

Test d’auto-évaluation de connaissances

Directives

Ce test est sous forme de questions et d’actions à réaliser pour évaluer votre bonne connaissance de la programmation en langage Java.

Système de notation

Chaque bonne réponse ou action réalisée avec succès rapporte 5%. Le système de notation est décrit par le tableau suivant :

Note sur 100 Commentaire

[80,100] Succès

[0,79] Echec. Nécessite une action de remédiation (lecture des liens supplémentaires).

Évaluation

Questions

1. Qu’est-ce que Java?

A. java est le nom d’une ville en Indonésie.

B. java est un logiciel qui génère des tâches à exécuter.

C. java est Langage orienté objet.

D. java est un éditeur de texte.

E. aucune des autres réponses.

(24)

2. Quelle est la sortie du code suivant ? class MaClasse {

publicstaticvoid main(String[] args){

for(int i =0; i <0; i++) {

System.out.println(“Bonjour le monde”);

break;

} } }

A. Erreur à l’exécution B. Erreur à la compilation C. Affichage vide

D. “ Bonjour le monde “

3. Lequel parmi les codes suivants est une définition correcte d’une classe en Java?

A.

publicclass NomDeLaClasse { déclarations des méthodes

déclarations des champs (attributs, propriétés) }

B.

publicclass NomDeLaClasse {

déclarations des champs (attributs, propriétés) déclarations des méthodes

} C.

déclarations des champs (attributs, propriétés) publicclass NomDeLaClasse {

déclarations des méthodes }

(25)

D.

déclarations des champs (attributs, propriétés) déclarations des méthodes

publicclass NomDeLaClasse { publicvoid main(){...}

}

4. Pour empêcher une classe d’être étendue, quel mot réservé doit prendre la place des tirets sur la définition de la classe suivante.

public _ _ _ _ class MaClasse {

...

} A. final B. native C. abstract D. transcient

5. Pour les classes A et B définies comme suit:

class A { publicint x;

public A(){

x=5;

} }

class B extends A { public B(){

x++;}

public B(int i){this(); x=x+i;}

public B(String s){super(); x--;}

(26)

Qu’affichera le code suivant?

B b1=new B();

B b2 =new B(2003);

B b3=new B(”Bonjour”);

System.out.println(b1.x+ ” et ” + b2.x+ ” et encore ” + b3.x);

A. 1 et 2004 et encore 2003 B. 1 et 2004 et encore 4 C. 6 et 2009 et encore 4 D. autre chose

6. Quelle est la bonne affirmation pour les mots clés dans la déclaration d’un attribut d’une classe ?

A. defaut : accessible par toutes les classes. Hérité par les sous classes.

B. public : accessible que par les seules méthodes de sa classe. Non hérité.

C. protected : accessible par les classes du même package. Hérité par les sous classes.

D. private : accessible par les classes du même package. Hérité par les sous classes que si elles se trouvent dans le même package.

7. Quelle exception sera levée à partir du bloc de code suivant?

try{

thrownew TryException();

} catch{

thrownew CatchException();

}

finally {

thrownew FinallyException();

}

A. TryException B. CatchException C. FinallyException

(27)

8. Soit la sortie suivante :

publicvoid methode1() throws Exception { methode2();

}

publicvoid methode2() throws Exception { throw methode3();

}

public Exception methode3(){

returnnew Exception();

}

Quelle sera la sortie du terminal ? A.

Exception in thread “main” java.lang.Exception at mypackage.MyClass.methode3(MyClass.java:30) ...

B.

Exception in thread “main” java.lang.Exception at mypackage.MyClass.methode2(MyClass.java:20) ...

C.

Exception in thread “main” java.lang.Exception at mypackage.MyClass.method1(MyClass.java:10) ...

9. Quelle est l’utilité du bloc d’instruction try … catch ? 10. Quelle est la bonne syntaxe de try catch complet ?

A.

try{

}

finally{

(28)

B.

try{

}

catch(Exception e){

}

finally{

} C.

try{

}

catch(Exception e){

} D.

try{

}

11. Soient les instructions

Manager m =new Manager (1000);m.raiseSalary(10);

Quelle est la valeur de la variable d’instance salary de l’objet référencé par m ? publicclass Employee {

protectedint salary;

public Employee (int salary) {this.salary= salary;}

publicfinalvoid raiseSalary (int percent) {

salary += salary * percent;

} }

(29)

publicclass Manager extends Employee {

public Manager (int salary) {super(salary);}

publicvoid raiseSalary (int percent) {

super.raiseSalary(percent);

salary +=200;

}

publicint getsalary() {

return salary;

} }

A. 1000 B. 10000 C. 10200 D. 200 E. 1200

12. Les collections Java sont parcourues grâce à laquelle de ces structures de contrôles?

A. une boucle while B. un itérateur : Iterator C. une requête SQL D. une boucle for

(30)

13. Toute instance de Y peut appeler la méthode aMethod () de toute autre instance de Y

package a;

class X{

protectedvoid aMethod(){}

}

package b;

class Y extends X {

} A. Vrai B. Faux

14. A quoi sert l’opérateur new ?

A. Sert à fabriquer un objet à l’aide d’un constructeur défini dans une classe B. Sert à initialiser une nouvelle classe

C. e s’emploie que pour les accès statiques

15. Laquelle des définitions suivantes correspond le plus à la définition d’une méthode de classe :

A. Une méthode visible à tous les niveaux

B. Une méthode accessible sans instance de classe C. Une forme de macro

16. Quelle est la différence entre la surcharge (overloading) et la redéfinition (overiding) d’une méthode ?

A. Une surcharge de méthode utilise les mêmes arguments que la méthode initiale, mais permet de retourner un type différent. La redéfinition d’une méthode permet de modifier les arguments de la méthode, mais le type de retour doit être même.

B. Une surcharge de méthode doit avoir une liste d’arguments différente par rapport à la méthode initiale, il peut retourner ce qu’il veut. Une méthode redéfinie doit avoir la même liste d’arguments que la méthode initiale, et doit retourner le même type, ou une sous-classe de la superclasse.

(31)

17. Lesquels des éléments suivants sont vrais sur les packages Java?

A. Chaque classe fait partie d’un package.

B. Toutes les classes dans un même fichier font partie du même package.

C. Si aucun package n’est spécifié, les classes du fichier vont être dans un paquet anonyme spéciale.

D. Si aucun package n’est spécifié, un nouveau package est créé avec le nom du dossier de classe et de la classe est mis dans ce paquet.

18. Essayez de prédire la sortie du programme Java suivant : class Mistere {

publicstaticvoid main(String args[]){

try{

throw10;

}

catch(int e){

System.out.println(“Voila la l’exception “+ e);

} } }

A. Exception 10 B. Exception 0

C. Erreur de compilation

19. Quelle est la sortie de ce programme ? class Main {

publicstaticvoid main(String args[]){

int x =0;

int y =10;

int z = y/x;

}

(32)

A. Compile et s’exécute sans erreurs B. Erreur de compilation

C. Compile sans erreurs mais lance l’exception ArithmeticException 20. Remplissez le tableau suivant avec les mots accessible et non accessible :

Classe Package Sous Classe Autre Classe public

protected Sans qualificateur privates

Réponses aux Questions

Question Réponse Question Réponse

1 C 11 C

2 C 12 B

3 B 13 B

4 A 14 A

5 C 15 B

6 C 16 A

7 C 17 A,B

8 A 18 C

9 Contrôle des

exceptions

19 C

10 B 20 Voir la

docuumentation Java

(33)

Exercice 1:

Créez un programme qui affiche un carré n X n de dièse (#) ; Exemple de sortie

# # # # #

# # # # #

# # # # #

# # # # #

# # # # # Exercice 2:

Modifiez le programme precedent pour qu’il affiche un triangle

*

***

*****

***

*

Exercice 3:

Ecrivez un programme qui affiche la table de multiplication entre 1 et 9. La sortie doit être comme suite :

* | 1 2 3 4 5 6 7 8 9 ---

1 | 1 2 3 4 5 6 7 8 9 2 | 2 4 6 8 10 12 14 16 18 3 | 3 6 9 12 15 18 21 24 27 4 | 4 8 12 16 20 24 28 32 36 5 | 5 10 15 20 25 30 35 40 45 6 | 6 12 18 24 30 36 42 48 54 7 | 7 14 21 28 35 42 49 56 63 8 | 8 16 24 32 40 48 56 64 72

(34)

Exercice 4:

Ecrivez un programme qui teste si un nombre est Armstrong ou pas. Un nombre de 3 chiffres Armstrong est un nombre pour lequel somme des cubes de ses chiffres sont égaux au nom, par exemple 371 est un nombre Armstrong parce 3 * 3 * 3 + 7 * 7 * 7 + 1 * 1 * 1 = 371.

Exercice 5:

Ecrire un programme qui calcule exponentiel d’un nombre réel en utilisant la formuleCalculez expentielle de 2 :

Exercice 6:

Écrire un programme appelé HEX2BIN pour convertir une chaîne hexadécimale dans sa chaîne binaire équivalente. La sortie doit ressembler à:

Entrez une chaîne hexadécimale: 1abc

Le binaire équivalent pour “1abc” est 0001 1010 1011 1100

Exercice 7:

Écrire une classe appelée StatistiquesEvaluation, qui se lit en n notes (d’entiers entre 0 et 100, inclus) et affiche la moyenne, minimum, maximum, et l’écart type. Le programme doit vérifier la validité des données entrées. Vous devez garder les notes dans un tableau d’entier. Définir une méthode pour chacun des calculs. Votre sortie doit ressembler à:

Entrez le nombre d’étudiants: 4

Saisissez la note de l’élève 1: 50

Saisissez la note de l’élève 2: 51

Saisissez la note de l’élève 3: 56

Saisissez la note de l’élève 4: 53

La moyenne est de 52,5

(35)

Le minimum est de 50

Le maximum est de 56

L’écart type est 2,29128784747792

L’écart type est calculé avec la formule :

où désigne la moyenne vraie de la distribution des .

Résumé de l’unité

Cette unité vous permet d’evaluer vos connaissances pré-requises pour aborder sans difficultés ce module.

Lectures et autres ressources

Les lectures et ressources de cette unité sont se trouvent au niveau des lectures et autres ressources du cours.h.2jxsxqh

(36)

Unité 1. Introduction aux

environnements d’applications mobiles

Introduction à l’unité

Les applications mobiles sont des applications logicielles conçues pour fonctionner sur les smartphones, tablettes et autres appareils mobiles. Ils sont disponibles par le biais des plates- formes de distribution natives. Typiquement, dans des App Stores (magasin d’applications) qui sont exploités par les propriétaires du système d’exploitation mobile. Certains des magasins les plus populaires sont l’App Store d’Apple, Google Play, ainsi que Windows Phone Store et BlackBerry App World. En Juin 2015, plus de 100 milliards d’applications mobiles téléchargées à partir de l’App Store d’ Apple.

Cette unité vise à décrire le développement d’applications mobiles et de créer la première application mobile pour la plateforme Android.

Les sujets traités dans ce chapitre sont :

Généralités sur les plates-formes d’applications mobiles (Android, iOS, BlackBerry, Symbian, Windows Phone, Marchés)

Les blocs fonctionnels de développement d’une application mobile,

Mise en place et configuration d’un environnement de développement pour Android, Programmation de votre première application mobile avec Android

Objectifs de l’unité

À la fin de cette unité, vous devriez être capable de:

1. décrire le paysage des technologies de développement d’applications mobile 2. installer et configurer un environnement de développement pour Android 3. programmer votre première application pour Android

(37)

Termes clés

[Plateforme Applications Mobiles] [Systèmes

d’exploitation Mobiles]: [Système d’exploitation mobileUn système d’exploitation mobile est un système d’exploitation conçu pour fonctionner sur un appareil mobile.]

[Apprareil Mobile]: [Un appareil mobile (traduction littérale du terme anglophone « mobile device ») est un appareil informatique portatif utilisable de manière autonome lors

d’un déplacement]

Activités d’apprentissage

Activité 1.1 – Notions d’appareils, plateformes et applications mobiles

Introduction

Cette section présente l’évolution des appareils mobiles et l’écosystème des applications mobiles. Les technologies mobiles ou de téléphonie mobiles permettent une communication sans fil (téléphonique, Internet, ..) qui fonctionnent même lorsque l’utilisateur est en

mouvement. Ce moyen de communication s’est largement répandu à la fin des années 1990 grâce à la miniaturisation des composants électronique. Cette technologie a beaucoup évolué depuis en termes d’appareil mobiles et de services entre 1990 et 2015.

(38)

Evolution des périphériques mobiles

Les années 1980 ont commencé à voir dans le commerce des appareils mobiles grands publics.

Même si ça parait incroyable aujourd’hui, ces appareils étaient révolutionnaires à l’époque car ils permettaient de téléphoner sans être obligé d’être à côté du combiné.

Portables 1985-86: Motorola 8000S, Mitsubishi Roamer, Technophone PC135

Portables 1987-1988: NEC 9A, Motorola 8500X, Nokia Cityman 1320, Philips PRC30E, British Telecom Coral (gauche à Figure 1 Quelques exemples de téléphones des années 1980-

1990 (principalement Analogique)

Les premiers appareils de téléphonie mobile de la décennie 1990 adressaient la question de la taille des appareils et de l’autonomie suffisante pour pouvoir émettre des appels durant toute la journée sans le recharger. Coté fonctionnalité, c’était très basique avec seulement la possibilité d’enregistrer quelques numéros de téléphones. Mais le plus important est que cette décennie a vu le développement fulgurant de GSM qui signe la fin de l’ère analogique.

GSM phones 1993-4: Ericssn GH337, Motorola 5200, One2One M200, Nokia 2140

(39)

GSM phones 1995-6: Nokia 1610, Nokia 2110i, Nokia 8110, Motorola 7500, Ericsson GA318, Motorola StarTAC

GSM phones 1999: Motorola Timeport L7089, Ericsson T28, Nokia 8210, Motorola v3688, Nokia 3210, Segem 815

Figure 2 Téléphone portables des années 1990-2000

Parallèlement les industriels ont développé des téléphones avec quelques fonctionnalités avancées telles que la gestion des calendriers, la prise de notes, la gestion plus ergonomique des contacts et des emails. Ces téléphones évolués sont appelés des PDA (Assistant de Données Personnels). Ces téléphones embarquent aussi parfois des équipements tels qu’un GPS, un appareil photo,… Toutefois ces PDA ont occupé une part de marché marginal dans le secteur des téléphones mobiles. Ceci certainement à cause de leur prix.

Palm m515 (2002) Treo Zire 21 (2002)

Figure 3 Exemple de PDA avec comme système d’exploitation PalmOS

(40)

Des années 2000 à nous jours, nous sommes dans la période de la convergence technologique et des objets connectés (diversification des équipements et des services). Cette révolution est arrivée avec l’iPhone d’Apple, puis celle du système d’exploitation Android, enfin la création d’un ensemble d’équipements connectés comme les tablettes, les montres connectés, la télévision, … Cette révolution était aussi possible grâce au passage à la 3G, 3G+ et 4G qui permettent d’avoir un accès Internet Mobile avec un débit confortable. Sur le plan fonctionnel, les smartphones sont remplis de capteurs (GPS, orientation, gyroscope, …). Ces technologies changent la manière d’utiliser les téléphones avec l’arrivé du tactile, l’augmentation de la taille de l’écran… Le téléphone devient désormais un appareil sur lequel on peut installer des applications pour en étendre l’usage : un ordinateur.

Figure 4 Smartphone, Montre et télévision connectées

En 2016, 3 milliards de personnes ont accès à Internet, et la pénétration de l’Internet mobile devrait atteindre 71% en 2019. Mais plus de 3 milliards de personnes ont un appareil mobile, ce qui en fait l’un des produits les plus prometteurs dans le monde. Parmi ces dispositifs mobiles sont inclus les téléphones simples, smartphones, les tablettes, Pocket PC, PDA, etc. Les appareils polyvalents deviennent de plus en plus populaires et embarquent des ressources qui remplacent les ordinateurs de toutes les tâches et également dans le commerce électronique. Ainsi, il ne fait aucun doute que les appareils mobiles vont devenir les principaux moyens d’accès au commerce électronique.

De nos jours les acteurs les plus importants de ce secteur sont les plus florissantes, Apple, SamSung, Google, Motorola, …

Plateformes d’applications mobiles

Avec l’utilisation croissante des appareils mobiles, le nombre de plates-formes (OS) et environnements de développement a évolué considérablement en même temps que les appareils d’accès. Le choix de la plate-forme idéale pour le développement d’un projet d’application mobile signifie choisir une solution qui offre les meilleurs avantages en terme de coûts, d’efficacité et de temps de développement prévus pour l’achèvement du projet.

(41)

Système d’exploitation mobile

Un système d’exploitation mobile, appelé aussi un système mobile, est un logiciel qui gère un appareil mobile intelligent tel qu’une tablette ou un smartphone. Les systèmes d’exploitation mobiles modernes combinent les caractéristiques d’un système d’exploitation d’un ordinateur personnel avec d’autres fonctionnalités comme un écran cellulaire, navigation GPS portable, appareil photo, enregistreur vocal et lecteur de musique.

Figure 5 Marché des OS Mobiles (source http://www.idc.com/

prodserv/smartphone-os-market-share.jsp)

Pour développer des applications mobiles, il est nécessaire de comprendre les principes sous- jacents de plates-formes. Ces plates-formes mobiles offre l’OS de base un environnement de développement et un market pour publier ces applications. Les principales plateformes mobiles sont : Android, iOS, Windows Phone, BlackBerry OS, …

Choix de la plate-forme mobile

La première étape dans le développement d’applications mobiles est de décider de quelle plate-forme pour développer. Les paramètres suivants vous permettent de choisir celle qui est la plus adaptée:

Le public cible: En fonction du niveau de diffusion de votre application, vous pouvez choisir la plateforme dominante sur le marché;

Marché: Vous pouvez choisir votre application en comparant les parts de marchés de l’application.

Caractéristiques spécifique: Chaque plateforme a des caractéristiques spécifiques qui peuvent être utilisés pour votre application. Considérer les caractéristiques des dispositifs mobiles lors de la conception de votre application peut permettre de gagner du temps de développement, d’avoir une meilleur sécurité, ...

(42)

Le tableau suivant fait une brève présentation des OS Mobiles sur le marché.

Tableau 1 Principales plateformes mobiles en 2016

Plateforme Mobile Editeur Description

Android Google Android est un système d’exploitation développé par Google Inc. et publié en Septembre 2008, suivi par le lancement d’Android Market en Octobre 2008 sont disponibles fournisseur libre de logiciels open source pour tout appareil intelligent.

iOS Apple iOS est un système d’exploitation mobile développé par Apple Inc., d’abord été dévoilée en 2007 pour l’iPhone d’Apple, et distribué exclusivement au matériel Apple. Il a la deuxième plus grande base installée de smartphones Android plus tard. Il est fermé et la source exclusive, construite sur l’open source Darwin OS noyau.

Windows Phone MicroSoft Windows Phone est Microsoft, qui a été lancé en Octobre 2010 avec sa propre boutique d’applications.

Il est développé avec le code fermé et propriétaire. Il a la troisième plus grande base installée de smartphones après Android et iOS.

RIM Blackberry OS BlackBerry BlackBerry 10 (basé sur QNX OS) est le BlackBerry.

Comme téléphone intelligent est fermé et code propriétaire. BlackBerry 10 est la plate-forme de prochaine génération pour smartphones et tablettes BlackBerry, dont l’App Store a été lancé en Avril 2009.

Tous les téléphones et les tablettes sont fabriqués par BlackBerry. Depuis, il est l’une des plates-formes dominantes dans le monde, sa part globale du marché a été réduit à moins de 1% en fin 2014.

(43)

Applications mobiles

Une application mobile est un logiciel applicatif développé pour un appareil électronique mobile, tel qu’un assistant personnel, un téléphone portable, un « smartphone », un baladeur numérique, une tablette tactile, ou encore certains ordinateurs fonctionnant avec le système d’exploitation Windows Phone.

Elles sont pour la plupart distribuées depuis des plateformes de téléchargement (parfois elles-mêmes contrôlées par les fabricants de smartphones) telles que l’App Store (plateforme d’Apple), le Google Play (plateforme de Google / Android), ou encore le Windows Phone Store (plateforme de Microsoft). Mais des applications peuvent aussi être installées sur un ordinateur, grâce par exemple au logiciel ITunes distribué par Apple pour ses appareils. Les applications distribuées à partir des magasins d’applications sont soit payantes, soit gratuites, mais généralement avec des publicités.

Figure 6 Principales plateformes d’application mobiles en 2016

En 2009, le nombre de téléchargements d’applications mobiles est élevés à environ 2,52 milliards de dollars US et devrait atteindre 268,69 milliards en 2017. En 2010, les applications mobiles ont rapporté 6,8 milliards de dollars.

Conclusion

Cette activité a présenté l’évolution des technologies mobiles ainsi que l’usage qui est fait.

Cette évolution montre que le rôle du téléphone est passé d’un simple outil d’appel à un outil complexe qui peut remplacer un ordinateur. Nous avons aussi une diversification des plateformes et applications mobiles favorisant le développement du marché des appareils mobiles.

(44)

Évaluation

Questions :

1. Définissez un appareil mobile

2. Rappelez les principales fonctionnalités des appareils mobiles des décennies 1980-1990,1990-2000 ?

3. Quelles sont les évolutions qu’il y a eu durant les années 2000 sur les appareils mobiles ?

4. Définir un Système d’exploitation Mobile

5. Quels sont les principaux systèmes d’exploitation du Marché

6. Définir quelques critères pour choisir une plateforme mobile plutôt qu’une autre 7. Comment sont distribuées les applications mobiles ?

Etude comparative

Cherchez sur le Web pour répondre aux différentes questions suivantes : 1. Définir les termes suivants :

a. application mobile native

b. application mobile Web (HTML5) c. application mobile hybride

2. En quoi les applications web mobile sont-elles différentes des applications Web Classique ?

3. Remplissez le tableau suivant

Native Web (HTML5) Hybrid

Fonctionnalité Performance Look and Feel Model Distribution Accès au Matériel

(45)

Native Web (HTML5) Hybrid

Appareil Photo Liste de contacts Stockage hors ligne Connectivité

Connexion Internet nécessaire ? Compétences en développement Langages de programmation Portabilité du code

Le principe est de le remplir comme vous semble pertinent.

(46)

Activité 1.2 – Fondamentaux des applications mobiles sous Android

Introduction

Selon le site android.com, le système est défini comme :

« Le système la plus personnalisable et la plus facile à utiliser qui est installé dans plus d’un milliard dispositifs à travers le monde - des téléphones et les tablettes à des montres, de la télévision, de voitures et d’autres à venir. »

Figure 7 Catégories d’appareil Android(android.com)

Lancé fin 2008, le système android a rapidement été adopté par de nombreux fabricants et est actuellement la plateforme avec la plus forte croissance dans le monde. Le succès d’Android est principalement dû à sa licence opensource mais aussi le fait d’avoir un environnement de développement basé sur le langage Java.

Lancé initialement par Google, l’évolution d’Android est sous la responsabilité de l’Open Handset Alliance, un consortium qui compte des dizaines de grandes d’entreprises du secteur tels que Google, Samsung, Intel, HTC, Motorola, etc.

Ainsi l’OHA se compose :

• d’opérateur mobile (Vodafone, Teleponica, Telecom Italia, China Mobile, etc.)

• de fabricants de téléphone mobiles (Asus, HTC, LG, Motorola, etc.)

• de fabricants de semi-conducteur (Intel, Nvidia, ARM, etc.)

• d’éditeurs logiciels (Ebay, Google, PacketVideo, etc.)

• de distributeurs (Aplix corporation, Borqs, TAT)

Architecture du framework d’Android

Le framework d’Android est un ensemble de bibliothèques de classes qui fournissent des interfaces aux développeurs pour créer des applications qui peuvent être déployées sous ce système d’exploitation.

(47)

L’architecture d’Android est divisée en couches:

• le noyau Linux (couche inférieure) est la couche qui fournit les principaux services offerts par la plate-forme Android ;

• les librairies de classe ;

• le runtime d’exécution Android ;

• le framework Applicatif ;

• les applications, celles que nous apprendrons à développer tout au long de ce cours

Figure 8 L’architecture d’Android Dans cette architecture nous avons les caractéristiques suivantes :

• Le système d’exploitation Android est un système Linux dans lequelle chaque application multi-utilisateurs est un autre utilisateur;

• Par défaut, le système attribue à chaque demande un ID utilisateur unique, Linux (l’ID est utilisé uniquement par le système et est inconnu à l’application). Le système définit les autorisations pour tous les fichiers dans une application de sorte que seul l’ID utilisateur affecté à cette application peut y accéder;

• Chaque processus a sa propre machine virtuelle (VM), de sorte que le code d’une application fonctionne séparément des autres applications;

• Par défaut, chaque application fonctionne dans son propre processus Linux.

Android commence le processus lorsque l’un des composants de l’application a besoin pour fonctionner, puis termine le processus quand il est plus nécessaire ou

(48)

Ainsi, le système Android en œuvre le principe du moindre privilège. Chaque application, par défaut, a accès à uniquement les composants dont il a besoin pour faire son travail et rien d’autre. Cela crée un environnement très sûr dans lequel une application ne peut pas accéder aux parties du système pour lesquelles il n’a pas donné la permission.

Composantes d’une applications Android

Le framework Android permet de créer des applications en utilisant un ensemble de

composants réutilisables. Il existe quatre différents types de composants dans une application Android. Chaque type a un but précis et a un cycle de vie différent qui définit la façon dont le composant est créé et détruit.

Les activités (activity): une activité est un seul et même écran avec une interface utilisateur.

Par exemple, une application de courrier électronique peut avoir une activité qui affiche une liste de nouveaux e-mails, une autre activité de composer un e-mail, et une autre activité pour lecture du courrier électronique. Bien que les activités travaillent ensemble pour former l’application, chaque activité est indépendante de l’autre. Une autre application peut commencer dans l’une de ces activités. Par exemple, une application de l’appareil photo peut commencer l’activité dans l’application de courrier électronique qui composer un nouvel e-mail, afin que vous puissiez partager une photo. Une activité est mise en œuvre créant une classe qui hérite de la classe Activity.

Les Services (Service) : un service est un composant qui fonctionne en tache de fond pour effectuer des opérations sur une longue durée ou effectuer un travail pour les processus distants. Un service ne fournit pas une interface utilisateur. Par exemple, un service peut jouer de la musique en arrière-plan pendant que l’utilisateur est sur une autre application, ou peut récupérer des données sur le réseau sans bloquer l’interaction de l’utilisateur avec une activité.

Un autre composant, comme une activité, peut démarrer un service et le laisser tourner ou bien s’enregistrer à son niveau afin d’interagir avec elle. Un service est implémenté comme une sous-classe de Service.

Les Intention(Intent) : un Intent est un mécanisme pour décrire une action spécifique (imaginer un Intent comme un messager qui demande une action d’autres composants). Par exemple, il est possible de demander le lancement de l’une des applications capables de lire un fichier MP4 sans les nommer explicitement. L’intention est créée avec un objet Intent et peut être explicite ou implicite, respectivement.

Le fichier Manifest.xml : Chaque application Android doit avoir un fichier AndroidManifest.

xml dans son répertoire racine. Le fichier Manifest présente des informations sur l’application destinées au système Android. Ces informations sont exploitées pour le lancement de l’application.

(49)

• Nom du package Java de l’application. Le nom du package est utilisé comme identifiant unique pour l’application.

• Description des composants de l’application - Activités (activités), services

(services) récepteurs de radiodiffusion (de diffusion) et les fournisseurs de contenu (fournisseurs de contenu);

• Détermine le processus qui va accueillir les composants

• Déclarer les autorisations que l’application doit avoir afin d’accéder à des parties protégées de l’API et d’interagir avec d’autres applications.

• Identifier le niveau minimum de l’API Android requis par l’application.

Conclusion

Cette activité présente l’architecture du système d’exploitation Android ainsi que les différents composants qui permettent de développer une application mobile Android.

Évaluation

Questions :

1. Quelle est l’entreprise qui a créé Android ? 2. Sous quelle licence est distribuée Android ? 3. Quelle est la structure qui gère son évolution?

4. Quels sont les principaux éléments de l’architecture d’Android ? 5. Quels sont les principaux éléments d’un projet Android ?

Description

En vous basant sur la documentation officielle d’Android, donnezune description des composants suivants

Composant Description Cas d’utilisation Activités

Intents Services Manifest.xml

(50)

Activité 1.3 – Mise en place de l’environnement de développement

Introduction

Cette activité couvre l’installation et la configuration de l’environnement de développement.

L’environnement de développement d’Android se compose de plusieurs briques qui travaillent ensemble :

Composant Version Rôle

Java JDK 7 Environnement Java

Android SDK 6 Framework Android

Android Studio 1.3.2 IDE

Un environnement intégré de développement. Le kit de développement (SDK) d’Android.

L’installation de tout cet environnement de travail nécessite environ 5 Go si vous installez le minimum et 13Go si vous installez les images systèmes optionnelles à partir du SDK Manager.

Il y a quelques exigences matérielles pour travailler dans de bonnes conditions avec l’émulateur.

Composant Configuration de confort Processeur Intel i5 ou i7

RAM 8Go, et 16 pour être vraiment à l’aise de lancer plusieurs émulateurs Disque 20Go de libre

(51)

Installation de JDK 7

L’environnement de travail nécessite l’installation de Java. L’installation de Java se fait en plusieurs étapes décrite ici.

Etape 1 : Téléchargez Java SE Development Kit 7 en allant sur la page suivante http://www.

oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

Figure 9 Fichier du JSDK 7 en fonction de votre système d’exploitation

Lancez l’installation et cliquez sur suivant jusqu’à la dernière fenêtre :

Figure 10 Installation du JDK 7

Une fois l’installation terminée, il faut configurer la variable d’environnement JAVA_HOME en allant sous Windows 7 à :

Démarrer

Bouton droit sur ordinateur / Propriété

(52)

Figure 11 Accès au fenetre système des variables d’environnement

La fenêtre qui s’affiche, cliquez sur Paramètres système Avancés.

Figure 12 Menu Parametres avancés de Windows 7

Ensuite, cliquez sur Variables d’environnement, puis sur la partie variables utilisateur clique et enfin sur nouvelle… Remplissez avec les valeurs suivantes :

Nom Variable : JAVA_HOME

(53)

Valeur de la variable : chemin de l’installation de Java

Figure 13 Création de la variable d’environnement JAVA_HOME

Après la configuration vous devriez vous la variable d’environnement JAVA_HOME sur la liste des variables d’environnement.

Figure 14 Liste des variables d’environnement dont JAVA_HOME Cette étape fini l’installation de la JSDK7

(54)

Installation d’Android Studio

Android Studio est le nouvel IDE fourni par Google et basé sur IntelJ. Il va progressivement remplacer l’environnement dans Eclipse (ADT). Pour télécharger Android Studio, il faut aller à la page http://developper.android.com/sdk/index.html

Figure 15 Page de téléchargement d’Android SDK Sur la page vous pouvez télécharger l’installateur intégrant :

Android Studio IDE Android SDK tools

Android 6.0 (Marshmallow) Platform L’émulateur Android 6.0

Le fichier fait environ 1,1Go à télécharger.

Pour installer Android Studio c’est assez simple, vous cliquez sur le fichier d’installation, Puis vous faites suivant.

(55)

Figure 16 Lancement de l’installation d’Adroid Studio

Dans la fenetre de configuration des chemins d’installation, il faut veiller à ce que le chemin d’installation d’Android Studio ait 500MB de libre alors que celui d’Android SDK doit avoir au moins 3,2Go de libre.

Figure 17 Installation d’Android Studio Choix du repertoire

Pour la fenêtre suivante, HAXM permet d’accélérer les émulateurs de processeur x86. Cette fonctionnalité nécessite que votre processeur support la virtualisation et qu’elle soit activée.

Figure 18 Installation d’Android Studio : Installation de HAXML

(56)

Pour les étapes suivantes il suffit de cliquer sur suivant.

Figure 19 Installation d’Android Studio : Progression de l’installation

Figure 20 Installation d’Android Studio : terminaison de l’installation

Après cette étape l’installation est terminée. Il ne reste que les dernières étapes de configuration.

Il faut faire les dernières étapes de configuration et de téléchargement.

Pour cela lancez Android Studio

(57)

Figure 21 Démarrage d’Android Sur la fenêtre suivante répondez par non puis cliquez sur OK

Figure 22d’Android Studio : fenetre de Lancement La fenêtre d’Android Studio va enfin s’afficher après quelques étapes

Figure 23 Android Studio : Configuration de lancement

(58)

Figure 24d’Android Studio : fenetre principal

Il faut maintenant configurer Android SDK pour cela sur la fenêtre de Android Studio cliquez sur Configure puis SDK Manager

Figure 25 Android Studio : Lancement de SDK Manager

Sur la fenêtre de SDK Manager il faut cocher les cases encerclées et à tout si vous avez assez d’espace disque.

Figure 26 Installation des images de système pour émulateur

Il faut compter 1,5Go de disque par image disque.Cliquez sur Install Package. Cela peut prendre beaucoup de temps pour que toutes les images soient téléchargées.

(59)

Conclusion

Cette activité présente l’installation de l’environnement de développement Android (Java, Android Studio).

Évaluation

Questions

1. Quels sont les outils qui constituent l’environnement de développement d’Android ?

2. Quelle est la version actuelle d’Android Studio ? 3. Remplissez le tableau suivant

Composant Rôle

Java JDK Android SDK Android Studio

4. Quel est l’espace disque pour installer le minimum et quelle est la taille pour installer le maximum d’émulateurs Android ?

Exercice

Installez l’environnement de développement d’Android sur Votre Machine.

(60)

Activité 1.4 – Première Application Android Introduction

Une application Android est composée d’un ensemble de classes java (représentant les activités, les intents, les services, …), des fichiers de configurations au format (ressources.

xml, android_manifest.xml, strings.xml, …) et des ressources (images,…). Au moment du développement vous pouvez tester votre projet sur un émulateur.

Pour la création de votre première application Android vous pouvez : créer à la main tous les fichiers nécessaires à votre projet ;

utiliser l’assistant d’Android Studio (méthode recommandée)

Créer un projet Android Sous Android Studio

Pour créer un projet sous Android Studio, il faut lancer l’assistant de création de projet en cliquant sur File New Project

Figure 27 Lancement de l’assistant de création de nouveau projet

Lorsque l’assistant s’ouvre, saisissez le nom de l’application, le nom du package et enfin le répertoire qui va contenir l’application. Cliquez sur next

(61)

Figure 28 Première page de l’assistant de création de projet

Le second formulaire permet de choisir quels sont les types d’équipements mobiles qui sont ciblés. Plus l’API est récent plus votre application bénéficiera des dernières optimisations.

Toutefois, dans ces conditions le nombre d’équipements qui peuvent exécuter votre application seront réduits.Android Studio vous aide à faire ce choix en vous donnant le pourcentage d’équipements couverts en fonction de votre choix.

Figure 29 Formulaire de choix de la version minimale d’Android supportée

(62)

Ensuite Android Studio vous propose un ensemble de Template de projets qui vous

permettent de commencer votre projet avec un ensemble d’exemple de code. Vous pouvez initialiser un projet vide, un projet Google Map, … Ces exemples sont très important pour avoir un premier aperçu de ces types d’application. Choisissez Blanck Activity.

Figure 30 Choix du Template d’application

Le dernier formulaire permet de donner le nom de l’activité principal qui sera créé, le fichier layout, le titre du projet, et le menu. Vous pouvez laisser les valeurs par défaut dans un premier temps.

Figure 31 Configuration de l’activité principale

(63)

La fenêtre du projet se présente à la fin de la construction du projet. La fenêtre n’est pas fondamentalement différente de celui d’eclipse mais il est plus rapide.

Figure 32 Fenêtre du projet Cette étape termine la création du projet.

AVD (Android Virtual Device) Manager et lancement de l’application Android

A l’étape de développement, pour voir le résultat de votre projet, il faut créer l’emulateur virtuel (une sorte de machine virtuelle faisant tourner Android). Dans cette partie nous allons commencer la création de la machine virtuelle.

Sur la fenêtre d’Android, lancez AVD Manager qui est l’icône sur la figure suivante :

Figure 33 Icone de lancement de AVD Manager et Fenetre d’AVD Manager

Références

Documents relatifs

ﺔــــــــــــــﻤدﻘﻤ ﻲبطﻗ نﻤ ﻞ� صﺌﺎصﺨ نیﺒ ﺔ�صنﻟا ﺎﻬتبتﻋ ﻲﻓ ﺔﻌﻤﺎﺠ رثنﻟا ةدیصﻘ� ﺎﻬتیمسﺘ تءﺎﺠ ﻪنﻤو .ﻩرثﻨو ﻩرﻌﺸ بدﻷا &#34; ﻪثح� ﻲﻓ لوﺎنﺘ دﻘﻓ ثﻟﺎثﻟا

The aim of this paper is to focus on the action selection stage of RTS, to present MHSP, an heuristic search algo- rithm based on mean values, i.e., an adaptation of UCT to RTS,

développement rigide permettant de protéger les applications essentielles du téléphone à l’aide de 4 types de composants.. Types de

En effet, la méthode du listener dataChanged() est appelée par le Timer, et donc exécutée dans le Thread de celui-ci. L'exception nous indique que toute mise

• « Eclipse » était l'outil de développement le plus utilisé pour développer des applications Android jusqu’à mai 2013.. • Cet outil était interfacé avec le

 La fragmentation menace l’aptitude à exécuter un seul APK Android créé avec le SDK Android standard dans l’ensemble de l’écosystème Android, car de nombreuses versions

Ces propositions sont destinées à fonder théoriquement la démarche du contrôle statistique qui peut cependant être formulée en termes plus intuitifs : lorsqu'il s'agit de produire

7. Au prochain écran, cliquez sur l’icône de reconnexion automatique si vous désirez. Choisissez les autres options si désiré. SI vous ne voulez pas la reconnexion automatique,