Android PACT 2016 Encadrement Informatique
Le système Android Système d’exploitation Open Source (en partie) pour smartphone et tablette, et autres dispositifs portables Applications développées en Java Utilise une machine virtuelle spécifique (Dalvik ou ART) S’appuie sur des classes communes au Java (java.lang.*, java.io.*, java.util.*…) mais en ajoutant des classes spécifiques (android.*) Fonctionnement particulier lié au téléphone Cycle de vie Gestion de la mise en page 17/11/16 Android
Environnement de travail – Java Utiliser n’importe quel OS Windows, Mac, Linux Installer un JDK Environnement d’exécution et de compilation Java Version recommandée: JDK 1.8 32-bits* * Il semblerait que la version 64 soit nécessaire sur certaines machines Quelle version de JDK on recommande ? 1.7 ? 1.6? Attention erreurs @override Quelle version du SDK Android on recommande? 17/11/16 Android
Environnement de travail – SDK Android Ensemble d’interfaces versionnées API 3, 4, …, 19, 20, 21 fonction de la version de l’OS ciblé Android 1.5, …, 4.4, 5.0 Version recommandée: au moins 2.2 (Voir 4.0) Bien installer: API + Tools + Extras Ne pas installer le NDK http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels 17/11/16 Android
Environnement de travail – 2 IDEs Eclipse Environnement générique (C/C++, Java, …) Télécharger Eclipse IDE for Java Developers ou le Bundle sur le site Android Configurable pour Android via un plugin ADT ( Android Development Tools) AndroidStudio Proposé par Google, basé sur IntelliJ, sorti en 05/2013 Attention: Apache Ant / Apache Maven vs. Google Gradle 17/11/16 Android
Environnement de travail – Émulateur, machine virtuelle, téléphone Android Virtual Device (AVD) Permet d’émuler un téléphone Lent! Genymotion (+ plugin Genymotion pour AndroidStudio) Machine virtuelle exécutant Android OS Potentiellement plus rapide qu’un téléphone Téléphone, Tablette Bien cocher la case « Debug USB » 17/11/16 Android
Développer une application Android La notion d’Activité « Page » Emplacement de l’interface graphique Peut-être: « active », « suspendue », « arrêtée » Gestion des transitions entre états La classe « Activity » http://developer.android.com/reference/android/app/Activity.html Application vs. Activité Plusieurs activités Comparer un « Hello World!> Java avec un « Hello World! » Android Qu’est-ce qu’une application Android = ensemble d’activité? Quel point d’entrée ? Application = Context + Activity http://developer.android.com/reference/android/app/Application.html android.view.View: http://developer.android.com/reference/android/view/View.html Fragment (master/detail) 17/11/16 Android
Cycle de vie 17/11/16 Android
Assistant de création d’application 17/11/16 Android
Icône de démarrage 17/11/16 Android
Création assistée de l’activité 17/11/16 Android
Fichiers générés automatiquement MainActivity.java AndroidManifest.xml Ressources Icônes XML Mise en page (layout) Éléments du menu Chaînes de caractères … Autres R.java 17/11/16 Android
Ajouter des fichiers Fichiers Java Fichiers Android Comme d’habitude Plus pratique pour certains types de fichiers 17/11/16 Android
Compiler/Exécuter une application 17/11/16 Android
Debugger Android Debug Bridge (ADB) Installé dans les « Tools » http://developer.android.com/tools/help/adb.html LogCat: Système de gestion des messages de debug Générer des messages dans votre code avec plusieurs niveau (debug, verbose, erreur, …) classe Android.util.Log Afficher/Trier les messages Debuggage pas-à-pas 17/11/16 Android
Documentation http://developer.android.com http://fr.openclassrooms.com/informatique/cours/creez-des-applications-pour-android 17/11/16 Android
A approfondir dans la suite (PAN2 …) La gestion propre du cycle d’activité L’éditeur d’interface graphique La gestion des évènements La notion d’ « intent » & de « bundle » La navigation entre activités Base de données Tâches asynchrones « AsyncTask » Fonctionnalités avancées GPS, camera, … 17/11/16 Android
Fonctions avancées Déclarer les fonctions nécessaires <uses-feature android:name="android.hardware.camera" /> android.hardware.location android.hardware.sensor.accelerometer http://developer.android.com/guide/topics/manifest/uses-feature-element.html Demander les permissions <uses-permission android:name="android.permission.INTERNET" /> http://developer.android.com/guide/topics/manifest/uses-permission-element.html 17/11/16 Android
Questions 17/11/16 Android