SlideShare uma empresa Scribd logo
1 de 40
Baixar para ler offline
session sept 2014 Yann Caron (c) 2014 1
IN01
Programmation Android
01 – Introduction
Yann Caron
Avec l'aide de Jean-Marc Farinone
session sept 2014 Yann Caron (c) 2014 2
Présentations

Yann Caron

Skyguide (SCADA C/C++ et Java WinCC OA, SI C#.net /
SqlServer)

EICnam – Algoid

CyaNn74@gmail.com

Sur Developpez – http://caron-yann.developpez.com (pas encore
au niveau de JMDoudou )

Google+ (Yann Caron ou Algoid)

Et vous ?
session sept 2014 Yann Caron (c) 2014 3
Sommaire du cours

01 – Présentation d'Android

02 – La plateforme Android

03 – IHM Bases

04 – Databases

05 – Google Map

06 – Publication

07 – Techniques avancées
session sept 2014 Yann Caron (c) 2014 4
Sommaire - Séance 01

La plateforme

Historique et versions

Architecture, JAR vs DEX

Outils et IDE
➔
Eclipse – ADT
➔
Netbeans – NAndroid
➔
Android Virtual Device (AVD)
➔
Android Debug Bridge (ADB)
session sept 2014 Yann Caron (c) 2014 5
IN01 – Séance 01
La plateforme
session sept 2014 Yann Caron (c) 2014 6
La plateforme Android
 Android : système embarqué open source pour
smartphone, tablette, MP3
 Une startup rachetée en 2005 par Google
 Logo bugdroid (libre de droits CC BY 3.0)
Slide original (c) JMF
session sept 2014 Yann Caron (c) 2014 7
La plateforme Android
 OHA (Open Handset Alliance)
➔
Consortium Google, opérateurs, constructeurs et
éditeurs logiciels
➔
Favoriser l'innovation sur les appareils mobiles
➔
Plateforme véritablement ouverte, complète
➔
Et... gratuite
Slide original (c) JMF
session sept 2014 Yann Caron (c) 2014 8
IN01 – Séance 01
Historique et versions
session sept 2014 Yann Caron (c) 2014 9
La plateforme Android
 Noyau Linux
 Open source (Open Governance Index de 23 %
selon http://www.visionmobile.com)
 Site de référence :
http://developer.android.com
 Source : http://fr.wikipedia.org/wiki/Android
Slide original (c) JMF
session sept 2014 Yann Caron (c) 2014 10
Versions
 1.0 : Connue des développeurs : fin 2007
 1.1 : Incluse dans le 1er téléphone, le HTC Dream
 1.5 : Cupcake : avril 2009
 1.6 : Donut : septembre 2009
 2.0 et 2.0.1 : à cause de nombreux bogues
 2.1 : Eclair : janvier 2010
 2.2 : FroYo (Frozen Yogourt) : mai 2010
Slide original (c) JMF
session sept 2014 Yann Caron (c) 2014 11
Versions
 2.3 : Gingerbread (pain d'épice) : décembre 2010
 3.0 : Honeycomb (rayon de miel) : janvier 2011
 4.0 : Ice Cream Sandwich : version unifiée Smartphone,
Tablette et GoogleTV : octobre 2011
 4.1 : Jelly bean : juillet 2012
 4.2.2 : API 17 : février 2013
 4.3 : API 18 : juillet 2013
 4.4 : KitKat : novembre 2013
Slide original (c) JMF
session sept 2014 Yann Caron (c) 2014 12
Parts des versions – mai 2014
 À étudier avant chaque projet
 Source :
http://developer.android.com/about/dashboards/index.html
session sept 2014 Yann Caron (c) 2014 13
Parts des résolutions et densités
session sept 2014 Yann Caron (c) 2014 14
Smartphone != ordinateur
 Android tire parti des particularités des smartphones :
➔
interface homme-machine adaptée (tactile, widget)
➔
divers modes : vibreur, sonnerie, silencieux, alarme
➔
notifications (d'applications, d'e-mails, de SMS, d'appels en instance)
de boussole, accéléromètre, GPS
➔
divers capteurs (gyroscope, gravité, accélération linéaire, baromètre)
➔
NFC, RFID (technologie de cartes à puce, HF courte portée)
➔
téléphonie (GSM) et réseau EDGE, 3G, 4G, etc.
Slide original (c) JMF
session sept 2014 Yann Caron (c) 2014 15
Smartphone != ordinateur
 En plus de ce qu'on peut avoir sur un ordinateur :
➔
navigateur
➔
bibliothèques graphiques 2D, 3D (Open GL)
➔
base de données (SQLite, DB4O), applications de rendu
multimédia (audio, vidéo, image) de divers formats
➔
réseau Bluetooth et Wi-Fi
➔
Webcam, APN
 Et des outils et bibliothèques Java (XStream…)
Slide original (c) JMF
session sept 2014 Yann Caron (c) 2014 16
Parts des versions d'OpenGL
 Projets en 3d : jeux, rendu
 LibGDX, AndEngine, Unity, ShiVa, etc.
session sept 2014 Yann Caron (c) 2014 17
Google Play
 Android Market est « né » le 22 octobre 2008
 Google Play viendra le remplacer le 6 mars 2012. Il fusionne
les autres services Google (VOD, musique, livres, bd, etc.)
 30 octobre 2013, Google Play compte 700 000 applications et
égalise avec l'app store d'Apple
 Les développeurs sont rémunérés 70 % contre 30 % qui
rétribuent Google
 Chaque nouveau développeur paie 25 $ comme frais de
dossier (une seule fois)
Slide original (c) JMF
session sept 2014 Yann Caron (c) 2014 18
IN01 – Séance 01
Architecture, JAR vs DEX
session sept 2014 Yann Caron (c) 2014 19
Vue d'ensemble
session sept 2014 Yann Caron (c) 2014 20
Architecture
 Multiplateforme mais performant
➔
« Write once, execute everywhere » la philosophie du
langage Java
 Partie haut niveau (en bleu) du Java
 Partie bas niveau (en vert et rouge) du code
c/c++ compilé
 La Dalvik VM permet d'interpréter le code Java
session sept 2014 Yann Caron (c) 2014 21
Architecture partie Java
 La couche « Applications » : Android est utilisé dans un ensemble contenant
déjà des applications natives comme un client de mail, des programmes pour
envoyer des SMS, d'agenda, de navigateur web, de contacts personnels
 La couche « Application Framework » : cette couche permet au programmeur
de construire de nouvelles applications. Cette couche fournit la gestion :
➔
des Views (= IHM)
➔
des ContentProviders = l'accessibillité aux données des autres applications (ex. : les
contacts) et donc les partages de données
➔
des ressources = les fichiers non code comme les images, les écrans (Resource
Manager)
➔
des Notifications (affichage d'alerte dans la barre de titre)
➔
des Activitys = l'enchaînement des écrans
Slide original (c) JMF
session sept 2014 Yann Caron (c) 2014 22
Architecture partie compilée
 La couche "Libraries" (bibliothèques) = couche logicielle basse
pour utiliser :
➔
les formats multimédia : images, audio et vidéo
➔
les dessins 2D et 3D, bitmap et vectoriels
➔
une base de données SQL (SQLite)
➔
l'environnement d'exécution (Android Runtime). Toute application est
exécutée dans son propre processus, dans sa propre Dalvik virtual
machine
➔
le noyau Linux sur lequel la Dalvik virtual machine s'appuie pour gérer le
multithreading, la mémoire. Le noyau Linux apporte les services de
sécurité, la gestion des processus, etc.
Slide original (c) JMF
session sept 2014 Yann Caron (c) 2014 23
Dalvik Virtual Machine (DVM)
 Est la machine virtuelle Java pour les applications Android
 Conçue pour exécuter du code Java pour des systèmes ayant des
contraintes de place mémoire et rapidité d'exécution
 Exécute du code .dex (Dalvik executable) = des .class adaptées à
l'environnement Android
 Écrit par Dan Bornstein d'où le nom (= village islandais dont sont
originaires certains de ses ancêtres)
 A été choisi par Google, car une machine Android peut lancer
plusieurs instances de la DVM efficacement (comme en Java)
 Référence : http://en.wikipedia.org/wiki/Dalvik_virtual_machine
Slide original (c) JMF
session sept 2014 Yann Caron (c) 2014 24
Dalvik Virtual Machine (DVM)
 Le code de la DVM est open source (Apache License 2.0) :
http://code.google.com/p/dalvik/
 Machine à registre (register based) vs Java, machine à pile (stack based)
 JIT (Just in time compiler) introduit avec Android 2.2
 Performances controversées (selon Oracle, 3x moins par rapport à
HotSpot). Facteur 100 avec une application native
 Un remplacement prévu. ART qui précompile le byte-code à l'installation.
➔
Inconvénient, des app plus volumineuses
➔
Un gain de performance non encore prouvé
 Android Asset Packaging Tool (AAPT) convertit les JAR en dex (dexer)
session sept 2014 Yann Caron (c) 2014 25
En détail
session sept 2014 Yann Caron (c) 2014 26
Encore plus en détail
session sept 2014 Yann Caron (c) 2014 27
IN01 – Séance 01
Outils et IDE
session sept 2014 Yann Caron (c) 2014 28
Installation
 Facilitée depuis fin 2012
 Installer JDK Java6 SE
 Télécharger l'ADT Bundle
depuis
 http://developer.android
.com/sdk
 Il inclut : Eclipse, le SDK
Android, le plugin Eclipse
Slide original (c) JMF
session sept 2014 Yann Caron (c) 2014 29
La pile des outils
Slide original (c) JMF
JDK Java 6 SE
SDK Android ADT
Plugin
Eclipse
AVD
ADB
AAPT
session sept 2014 Yann Caron (c) 2014 30
Le SDK Android
 l'Android SDK (Software Development Kit) amène des outils :
➔
un environnement de développement
➔
une machine virtuelle Java adaptée : la Dalvik virtual machine
➔
un environnement debugueur DDMS (Dalvik Debug Monitor Service)
utilisant adb (Android Debug Bridge)
➔
un environnement de construction d'applications Android AAPT (Android
Asset Packaging Tool)
➔
des émulateurs de téléphones ou de tablettes AVD (Android Virtual
Device)
➔
et une énorme API (voir
http://developer.android.com/reference/packages.html)
Slide original (c) JMF
session sept 2014 Yann Caron (c) 2014 31
Eclipse
 Développement en Java
 Divers outils
➔
WYSIWYG
➔
File explorer
➔
Screen capture
➔
Threads, Heap
➔
Allocation tracker
➔
Profiler, etc.
session sept 2014 Yann Caron (c) 2014 32
IDE Autres
 Android Studio
➔
Solution de Google annoncée au Google IO 2013
➔
Basé sur Intellij IDEA
 Intellij IDEA (standalone)
 AIDE – Android IDE – Java, C++
➔
Solution tablette et smartphone
➔
Compatible avec les projets Android Studio
 Netbeans et NBAndroid
➔
Pas de WYSIWYG, certains aspects mal intégrés, en partie payant.
session sept 2014 Yann Caron (c) 2014 33
Outils indispensables

aLogCat

Un explorateur de fichiers

APK Manager, Advanced Task Killer

Un admin de bases de données SQLite

Optionnel : Google Analytics
session sept 2014 Yann Caron (c) 2014 34
Android SDK Manager
 Gestionnaire de
versions de
SDK centralisé
 Google fournit
les données au
format XML
session sept 2014 Yann Caron (c) 2014 35
Android Virtual Device (AVD)
 Multiplatforme : win,
Linux, macos
 Multirésolution
 Multi-os
 Mais plus lent qu'un
vrai device
 Senseurs émulés
session sept 2014 Yann Caron (c) 2014 36
AVD Manager
 Un gestionnaire des
émulateurs
centralisé
 Configurateur
 Accessible depuis
Eclipse
session sept 2014 Yann Caron (c) 2014 37
Android Debug Bridge (ADB)
 Outil en ligne de commande
 Un client/serveur (et service) dédié au développement
sur Android
 Server : start-server, kill-server, devices
 Shell : shell, logcat
 Data : install, pull, push
 Et bien d'autres :
http://developer.android.com/tools/help/adb.html
session sept 2014 Yann Caron (c) 2014 38
Logcat
 Un logger sur chaque device
 Accessible depuis ADT ou une app (aLogCat)
session sept 2014 Yann Caron (c) 2014 39
Logcat
 Filtre depuis Eclipse
 Recommandé
session sept 2014 Yann Caron (c) 2014 40
Fin
 Merci de votre attention
 Des questions ?

Mais conteúdo relacionado

Mais procurados

Formation Android (Initiation à la programmation sous Android)
Formation Android (Initiation à la programmation sous Android)Formation Android (Initiation à la programmation sous Android)
Formation Android (Initiation à la programmation sous Android)G²FOSS ENIT
 
In01 - Programmation Android - 02 - android
In01 - Programmation Android - 02 - androidIn01 - Programmation Android - 02 - android
In01 - Programmation Android - 02 - androidYann Caron
 
Programmation Android - 08 - Android debug bridge
Programmation Android - 08 - Android debug bridgeProgrammation Android - 08 - Android debug bridge
Programmation Android - 08 - Android debug bridgeYann Caron
 
Cours android
Cours androidCours android
Cours androidAd Hafsa
 
Cours android 2016_partie1
Cours android 2016_partie1Cours android 2016_partie1
Cours android 2016_partie1Sabeur LAJILI
 
01 programmation mobile - android - (introduction)
01 programmation mobile - android - (introduction)01 programmation mobile - android - (introduction)
01 programmation mobile - android - (introduction)TECOS
 
5 android web_service
5 android web_service5 android web_service
5 android web_serviceSaber LAJILI
 
Initiation Android Niveau Débutant
Initiation Android Niveau DébutantInitiation Android Niveau Débutant
Initiation Android Niveau DébutantNadim GOUIA
 
Cours android user_interface_2016
Cours android user_interface_2016Cours android user_interface_2016
Cours android user_interface_2016Sabeur LAJILI
 
Android pour les debutants
Android pour les debutantsAndroid pour les debutants
Android pour les debutantsAmira Hakim
 
Jug Lausanne Android Janvier2013
Jug Lausanne Android Janvier2013Jug Lausanne Android Janvier2013
Jug Lausanne Android Janvier2013jeromevdl
 

Mais procurados (19)

Formation Android (Initiation à la programmation sous Android)
Formation Android (Initiation à la programmation sous Android)Formation Android (Initiation à la programmation sous Android)
Formation Android (Initiation à la programmation sous Android)
 
In01 - Programmation Android - 02 - android
In01 - Programmation Android - 02 - androidIn01 - Programmation Android - 02 - android
In01 - Programmation Android - 02 - android
 
Programmation Android - 08 - Android debug bridge
Programmation Android - 08 - Android debug bridgeProgrammation Android - 08 - Android debug bridge
Programmation Android - 08 - Android debug bridge
 
Cours android
Cours androidCours android
Cours android
 
Programmation sous Android
Programmation sous AndroidProgrammation sous Android
Programmation sous Android
 
Cours android 2016_partie1
Cours android 2016_partie1Cours android 2016_partie1
Cours android 2016_partie1
 
Cours 1 Android
Cours 1 AndroidCours 1 Android
Cours 1 Android
 
01 programmation mobile - android - (introduction)
01 programmation mobile - android - (introduction)01 programmation mobile - android - (introduction)
01 programmation mobile - android - (introduction)
 
5 android web_service
5 android web_service5 android web_service
5 android web_service
 
Initiation Android Niveau Débutant
Initiation Android Niveau DébutantInitiation Android Niveau Débutant
Initiation Android Niveau Débutant
 
Cours Android
Cours AndroidCours Android
Cours Android
 
Formation gwt
Formation gwtFormation gwt
Formation gwt
 
Cours android user_interface_2016
Cours android user_interface_2016Cours android user_interface_2016
Cours android user_interface_2016
 
Android pour les debutants
Android pour les debutantsAndroid pour les debutants
Android pour les debutants
 
Android studio 2.0
Android studio 2.0Android studio 2.0
Android studio 2.0
 
TP GWT JDEV 2015
TP GWT JDEV 2015TP GWT JDEV 2015
TP GWT JDEV 2015
 
Support cours angular
Support cours angularSupport cours angular
Support cours angular
 
Jug Lausanne Android Janvier2013
Jug Lausanne Android Janvier2013Jug Lausanne Android Janvier2013
Jug Lausanne Android Janvier2013
 
Support developpement applications mobiles avec ionic v3 et v4
Support developpement applications mobiles avec ionic v3 et v4Support developpement applications mobiles avec ionic v3 et v4
Support developpement applications mobiles avec ionic v3 et v4
 

Semelhante a In01 - Programmation Android - 01 - introduction

Programmation Android - 01 - Introduction
Programmation Android - 01 - IntroductionProgrammation Android - 01 - Introduction
Programmation Android - 01 - IntroductionYann Caron
 
cours-android.pdf
cours-android.pdfcours-android.pdf
cours-android.pdfmed_univ78
 
Android Studio, premier contact
Android Studio, premier contactAndroid Studio, premier contact
Android Studio, premier contactJasmine Conseil
 
introAndroid_2023_V6.5.2pp1-162.pdf
introAndroid_2023_V6.5.2pp1-162.pdfintroAndroid_2023_V6.5.2pp1-162.pdf
introAndroid_2023_V6.5.2pp1-162.pdfRihabBENLAMINE
 
Gui android eclipse
Gui android eclipseGui android eclipse
Gui android eclipseESPRIT
 
Programmation Android - 02 - Android
Programmation Android - 02 - AndroidProgrammation Android - 02 - Android
Programmation Android - 02 - AndroidYann Caron
 
Analyse et optimisation des performances des applications Windows Phone 7.5
Analyse et optimisation des performances des applications Windows Phone 7.5Analyse et optimisation des performances des applications Windows Phone 7.5
Analyse et optimisation des performances des applications Windows Phone 7.5Microsoft
 
Ch1. Développement mobile
Ch1. Développement mobileCh1. Développement mobile
Ch1. Développement mobileHaifa Chorfi
 
Initiation au développement mobile sous Android
Initiation au développement mobile sous AndroidInitiation au développement mobile sous Android
Initiation au développement mobile sous AndroidAbdelkader Rhouati
 
.NET Microframework, les joies de l'électronique et du code pour tous
.NET Microframework, les joies de l'électronique et du code pour tous.NET Microframework, les joies de l'électronique et du code pour tous
.NET Microframework, les joies de l'électronique et du code pour tousMicrosoft
 
Workshop android
Workshop androidWorkshop android
Workshop android'Med Douik
 
Cours android 2016
Cours android 2016Cours android 2016
Cours android 2016Saber LAJILI
 
Composants d-une application Android.ppt
Composants d-une application Android.pptComposants d-une application Android.ppt
Composants d-une application Android.pptmahamaalej3
 

Semelhante a In01 - Programmation Android - 01 - introduction (20)

Programmation Android - 01 - Introduction
Programmation Android - 01 - IntroductionProgrammation Android - 01 - Introduction
Programmation Android - 01 - Introduction
 
cours-android.pdf
cours-android.pdfcours-android.pdf
cours-android.pdf
 
Android Studio, premier contact
Android Studio, premier contactAndroid Studio, premier contact
Android Studio, premier contact
 
1-android.pdf
1-android.pdf1-android.pdf
1-android.pdf
 
introAndroid_2023_V6.5.2pp1-162.pdf
introAndroid_2023_V6.5.2pp1-162.pdfintroAndroid_2023_V6.5.2pp1-162.pdf
introAndroid_2023_V6.5.2pp1-162.pdf
 
Gui android eclipse
Gui android eclipseGui android eclipse
Gui android eclipse
 
Programmation Android - 02 - Android
Programmation Android - 02 - AndroidProgrammation Android - 02 - Android
Programmation Android - 02 - Android
 
Intro Android
Intro AndroidIntro Android
Intro Android
 
Analyse et optimisation des performances des applications Windows Phone 7.5
Analyse et optimisation des performances des applications Windows Phone 7.5Analyse et optimisation des performances des applications Windows Phone 7.5
Analyse et optimisation des performances des applications Windows Phone 7.5
 
Ch1. Développement mobile
Ch1. Développement mobileCh1. Développement mobile
Ch1. Développement mobile
 
Initiation au développement mobile sous Android
Initiation au développement mobile sous AndroidInitiation au développement mobile sous Android
Initiation au développement mobile sous Android
 
Java vs .Net
Java vs .NetJava vs .Net
Java vs .Net
 
Paug aosp ice-creamsandwich_20120119
Paug aosp ice-creamsandwich_20120119Paug aosp ice-creamsandwich_20120119
Paug aosp ice-creamsandwich_20120119
 
Java vs .Net
Java vs .NetJava vs .Net
Java vs .Net
 
.NET Microframework, les joies de l'électronique et du code pour tous
.NET Microframework, les joies de l'électronique et du code pour tous.NET Microframework, les joies de l'électronique et du code pour tous
.NET Microframework, les joies de l'électronique et du code pour tous
 
Workshop android
Workshop androidWorkshop android
Workshop android
 
Cours android 2016
Cours android 2016Cours android 2016
Cours android 2016
 
android.pdf
android.pdfandroid.pdf
android.pdf
 
Architecture android
Architecture androidArchitecture android
Architecture android
 
Composants d-une application Android.ppt
Composants d-une application Android.pptComposants d-une application Android.ppt
Composants d-une application Android.ppt
 

Mais de Yann Caron

Théorie des langages - TP - WellKnownText
Théorie des langages - TP  - WellKnownTextThéorie des langages - TP  - WellKnownText
Théorie des langages - TP - WellKnownTextYann Caron
 
Théorie des langages - 04 Théorie des langages
Théorie des langages - 04 Théorie des langagesThéorie des langages - 04 Théorie des langages
Théorie des langages - 04 Théorie des langagesYann Caron
 
Théorie des langages - 03 - Principes et paradigmes
Théorie des langages - 03 - Principes et paradigmesThéorie des langages - 03 - Principes et paradigmes
Théorie des langages - 03 - Principes et paradigmesYann Caron
 
Théorie des langages - 02 - Code gen
Théorie des langages - 02 - Code genThéorie des langages - 02 - Code gen
Théorie des langages - 02 - Code genYann Caron
 
Théorie des langages - 01.1 - Parcours d'arbres
Théorie des langages - 01.1 - Parcours d'arbresThéorie des langages - 01.1 - Parcours d'arbres
Théorie des langages - 01.1 - Parcours d'arbresYann Caron
 
Théorie des langages - 01 - Compilation
Théorie des langages - 01 - CompilationThéorie des langages - 01 - Compilation
Théorie des langages - 01 - CompilationYann Caron
 
Théorie des langages - 00 - Introduction
Théorie des langages - 00 - IntroductionThéorie des langages - 00 - Introduction
Théorie des langages - 00 - IntroductionYann Caron
 
Algea - 04 - conclusion
Algea - 04 - conclusionAlgea - 04 - conclusion
Algea - 04 - conclusionYann Caron
 
Algea - 03 - ennemis
Algea - 03 - ennemisAlgea - 03 - ennemis
Algea - 03 - ennemisYann Caron
 
Algea - 02 - gemmes
Algea - 02 - gemmesAlgea - 02 - gemmes
Algea - 02 - gemmesYann Caron
 
Algea - 01 - hero
Algea - 01 - heroAlgea - 01 - hero
Algea - 01 - heroYann Caron
 
ALGEA - 00 - introduction
ALGEA - 00 - introductionALGEA - 00 - introduction
ALGEA - 00 - introductionYann Caron
 
Programmation Android - Tp2 Travaux pratiques - Geomatique
Programmation Android - Tp2 Travaux pratiques - GeomatiqueProgrammation Android - Tp2 Travaux pratiques - Geomatique
Programmation Android - Tp2 Travaux pratiques - GeomatiqueYann Caron
 
Programmation Android - 10 - Spatialite
Programmation Android - 10 - SpatialiteProgrammation Android - 10 - Spatialite
Programmation Android - 10 - SpatialiteYann Caron
 
Programmation Android - 09 - Web services
Programmation Android - 09 - Web servicesProgrammation Android - 09 - Web services
Programmation Android - 09 - Web servicesYann Caron
 
Programmation Android 07 - Techniques avancées
Programmation Android 07 - Techniques avancéesProgrammation Android 07 - Techniques avancées
Programmation Android 07 - Techniques avancéesYann Caron
 
Programmation Android - 06 - Publication
Programmation Android - 06 - PublicationProgrammation Android - 06 - Publication
Programmation Android - 06 - PublicationYann Caron
 
Programmation Android - 05 - Google map
Programmation Android - 05 - Google mapProgrammation Android - 05 - Google map
Programmation Android - 05 - Google mapYann Caron
 
Programmation Android - 04 - Databases
Programmation Android - 04 - DatabasesProgrammation Android - 04 - Databases
Programmation Android - 04 - DatabasesYann Caron
 
Programmation Android - 03 - IHM bases
Programmation Android - 03 - IHM basesProgrammation Android - 03 - IHM bases
Programmation Android - 03 - IHM basesYann Caron
 

Mais de Yann Caron (20)

Théorie des langages - TP - WellKnownText
Théorie des langages - TP  - WellKnownTextThéorie des langages - TP  - WellKnownText
Théorie des langages - TP - WellKnownText
 
Théorie des langages - 04 Théorie des langages
Théorie des langages - 04 Théorie des langagesThéorie des langages - 04 Théorie des langages
Théorie des langages - 04 Théorie des langages
 
Théorie des langages - 03 - Principes et paradigmes
Théorie des langages - 03 - Principes et paradigmesThéorie des langages - 03 - Principes et paradigmes
Théorie des langages - 03 - Principes et paradigmes
 
Théorie des langages - 02 - Code gen
Théorie des langages - 02 - Code genThéorie des langages - 02 - Code gen
Théorie des langages - 02 - Code gen
 
Théorie des langages - 01.1 - Parcours d'arbres
Théorie des langages - 01.1 - Parcours d'arbresThéorie des langages - 01.1 - Parcours d'arbres
Théorie des langages - 01.1 - Parcours d'arbres
 
Théorie des langages - 01 - Compilation
Théorie des langages - 01 - CompilationThéorie des langages - 01 - Compilation
Théorie des langages - 01 - Compilation
 
Théorie des langages - 00 - Introduction
Théorie des langages - 00 - IntroductionThéorie des langages - 00 - Introduction
Théorie des langages - 00 - Introduction
 
Algea - 04 - conclusion
Algea - 04 - conclusionAlgea - 04 - conclusion
Algea - 04 - conclusion
 
Algea - 03 - ennemis
Algea - 03 - ennemisAlgea - 03 - ennemis
Algea - 03 - ennemis
 
Algea - 02 - gemmes
Algea - 02 - gemmesAlgea - 02 - gemmes
Algea - 02 - gemmes
 
Algea - 01 - hero
Algea - 01 - heroAlgea - 01 - hero
Algea - 01 - hero
 
ALGEA - 00 - introduction
ALGEA - 00 - introductionALGEA - 00 - introduction
ALGEA - 00 - introduction
 
Programmation Android - Tp2 Travaux pratiques - Geomatique
Programmation Android - Tp2 Travaux pratiques - GeomatiqueProgrammation Android - Tp2 Travaux pratiques - Geomatique
Programmation Android - Tp2 Travaux pratiques - Geomatique
 
Programmation Android - 10 - Spatialite
Programmation Android - 10 - SpatialiteProgrammation Android - 10 - Spatialite
Programmation Android - 10 - Spatialite
 
Programmation Android - 09 - Web services
Programmation Android - 09 - Web servicesProgrammation Android - 09 - Web services
Programmation Android - 09 - Web services
 
Programmation Android 07 - Techniques avancées
Programmation Android 07 - Techniques avancéesProgrammation Android 07 - Techniques avancées
Programmation Android 07 - Techniques avancées
 
Programmation Android - 06 - Publication
Programmation Android - 06 - PublicationProgrammation Android - 06 - Publication
Programmation Android - 06 - Publication
 
Programmation Android - 05 - Google map
Programmation Android - 05 - Google mapProgrammation Android - 05 - Google map
Programmation Android - 05 - Google map
 
Programmation Android - 04 - Databases
Programmation Android - 04 - DatabasesProgrammation Android - 04 - Databases
Programmation Android - 04 - Databases
 
Programmation Android - 03 - IHM bases
Programmation Android - 03 - IHM basesProgrammation Android - 03 - IHM bases
Programmation Android - 03 - IHM bases
 

In01 - Programmation Android - 01 - introduction

  • 1. session sept 2014 Yann Caron (c) 2014 1 IN01 Programmation Android 01 – Introduction Yann Caron Avec l'aide de Jean-Marc Farinone
  • 2. session sept 2014 Yann Caron (c) 2014 2 Présentations  Yann Caron  Skyguide (SCADA C/C++ et Java WinCC OA, SI C#.net / SqlServer)  EICnam – Algoid  CyaNn74@gmail.com  Sur Developpez – http://caron-yann.developpez.com (pas encore au niveau de JMDoudou )  Google+ (Yann Caron ou Algoid)  Et vous ?
  • 3. session sept 2014 Yann Caron (c) 2014 3 Sommaire du cours  01 – Présentation d'Android  02 – La plateforme Android  03 – IHM Bases  04 – Databases  05 – Google Map  06 – Publication  07 – Techniques avancées
  • 4. session sept 2014 Yann Caron (c) 2014 4 Sommaire - Séance 01  La plateforme  Historique et versions  Architecture, JAR vs DEX  Outils et IDE ➔ Eclipse – ADT ➔ Netbeans – NAndroid ➔ Android Virtual Device (AVD) ➔ Android Debug Bridge (ADB)
  • 5. session sept 2014 Yann Caron (c) 2014 5 IN01 – Séance 01 La plateforme
  • 6. session sept 2014 Yann Caron (c) 2014 6 La plateforme Android  Android : système embarqué open source pour smartphone, tablette, MP3  Une startup rachetée en 2005 par Google  Logo bugdroid (libre de droits CC BY 3.0) Slide original (c) JMF
  • 7. session sept 2014 Yann Caron (c) 2014 7 La plateforme Android  OHA (Open Handset Alliance) ➔ Consortium Google, opérateurs, constructeurs et éditeurs logiciels ➔ Favoriser l'innovation sur les appareils mobiles ➔ Plateforme véritablement ouverte, complète ➔ Et... gratuite Slide original (c) JMF
  • 8. session sept 2014 Yann Caron (c) 2014 8 IN01 – Séance 01 Historique et versions
  • 9. session sept 2014 Yann Caron (c) 2014 9 La plateforme Android  Noyau Linux  Open source (Open Governance Index de 23 % selon http://www.visionmobile.com)  Site de référence : http://developer.android.com  Source : http://fr.wikipedia.org/wiki/Android Slide original (c) JMF
  • 10. session sept 2014 Yann Caron (c) 2014 10 Versions  1.0 : Connue des développeurs : fin 2007  1.1 : Incluse dans le 1er téléphone, le HTC Dream  1.5 : Cupcake : avril 2009  1.6 : Donut : septembre 2009  2.0 et 2.0.1 : à cause de nombreux bogues  2.1 : Eclair : janvier 2010  2.2 : FroYo (Frozen Yogourt) : mai 2010 Slide original (c) JMF
  • 11. session sept 2014 Yann Caron (c) 2014 11 Versions  2.3 : Gingerbread (pain d'épice) : décembre 2010  3.0 : Honeycomb (rayon de miel) : janvier 2011  4.0 : Ice Cream Sandwich : version unifiée Smartphone, Tablette et GoogleTV : octobre 2011  4.1 : Jelly bean : juillet 2012  4.2.2 : API 17 : février 2013  4.3 : API 18 : juillet 2013  4.4 : KitKat : novembre 2013 Slide original (c) JMF
  • 12. session sept 2014 Yann Caron (c) 2014 12 Parts des versions – mai 2014  À étudier avant chaque projet  Source : http://developer.android.com/about/dashboards/index.html
  • 13. session sept 2014 Yann Caron (c) 2014 13 Parts des résolutions et densités
  • 14. session sept 2014 Yann Caron (c) 2014 14 Smartphone != ordinateur  Android tire parti des particularités des smartphones : ➔ interface homme-machine adaptée (tactile, widget) ➔ divers modes : vibreur, sonnerie, silencieux, alarme ➔ notifications (d'applications, d'e-mails, de SMS, d'appels en instance) de boussole, accéléromètre, GPS ➔ divers capteurs (gyroscope, gravité, accélération linéaire, baromètre) ➔ NFC, RFID (technologie de cartes à puce, HF courte portée) ➔ téléphonie (GSM) et réseau EDGE, 3G, 4G, etc. Slide original (c) JMF
  • 15. session sept 2014 Yann Caron (c) 2014 15 Smartphone != ordinateur  En plus de ce qu'on peut avoir sur un ordinateur : ➔ navigateur ➔ bibliothèques graphiques 2D, 3D (Open GL) ➔ base de données (SQLite, DB4O), applications de rendu multimédia (audio, vidéo, image) de divers formats ➔ réseau Bluetooth et Wi-Fi ➔ Webcam, APN  Et des outils et bibliothèques Java (XStream…) Slide original (c) JMF
  • 16. session sept 2014 Yann Caron (c) 2014 16 Parts des versions d'OpenGL  Projets en 3d : jeux, rendu  LibGDX, AndEngine, Unity, ShiVa, etc.
  • 17. session sept 2014 Yann Caron (c) 2014 17 Google Play  Android Market est « né » le 22 octobre 2008  Google Play viendra le remplacer le 6 mars 2012. Il fusionne les autres services Google (VOD, musique, livres, bd, etc.)  30 octobre 2013, Google Play compte 700 000 applications et égalise avec l'app store d'Apple  Les développeurs sont rémunérés 70 % contre 30 % qui rétribuent Google  Chaque nouveau développeur paie 25 $ comme frais de dossier (une seule fois) Slide original (c) JMF
  • 18. session sept 2014 Yann Caron (c) 2014 18 IN01 – Séance 01 Architecture, JAR vs DEX
  • 19. session sept 2014 Yann Caron (c) 2014 19 Vue d'ensemble
  • 20. session sept 2014 Yann Caron (c) 2014 20 Architecture  Multiplateforme mais performant ➔ « Write once, execute everywhere » la philosophie du langage Java  Partie haut niveau (en bleu) du Java  Partie bas niveau (en vert et rouge) du code c/c++ compilé  La Dalvik VM permet d'interpréter le code Java
  • 21. session sept 2014 Yann Caron (c) 2014 21 Architecture partie Java  La couche « Applications » : Android est utilisé dans un ensemble contenant déjà des applications natives comme un client de mail, des programmes pour envoyer des SMS, d'agenda, de navigateur web, de contacts personnels  La couche « Application Framework » : cette couche permet au programmeur de construire de nouvelles applications. Cette couche fournit la gestion : ➔ des Views (= IHM) ➔ des ContentProviders = l'accessibillité aux données des autres applications (ex. : les contacts) et donc les partages de données ➔ des ressources = les fichiers non code comme les images, les écrans (Resource Manager) ➔ des Notifications (affichage d'alerte dans la barre de titre) ➔ des Activitys = l'enchaînement des écrans Slide original (c) JMF
  • 22. session sept 2014 Yann Caron (c) 2014 22 Architecture partie compilée  La couche "Libraries" (bibliothèques) = couche logicielle basse pour utiliser : ➔ les formats multimédia : images, audio et vidéo ➔ les dessins 2D et 3D, bitmap et vectoriels ➔ une base de données SQL (SQLite) ➔ l'environnement d'exécution (Android Runtime). Toute application est exécutée dans son propre processus, dans sa propre Dalvik virtual machine ➔ le noyau Linux sur lequel la Dalvik virtual machine s'appuie pour gérer le multithreading, la mémoire. Le noyau Linux apporte les services de sécurité, la gestion des processus, etc. Slide original (c) JMF
  • 23. session sept 2014 Yann Caron (c) 2014 23 Dalvik Virtual Machine (DVM)  Est la machine virtuelle Java pour les applications Android  Conçue pour exécuter du code Java pour des systèmes ayant des contraintes de place mémoire et rapidité d'exécution  Exécute du code .dex (Dalvik executable) = des .class adaptées à l'environnement Android  Écrit par Dan Bornstein d'où le nom (= village islandais dont sont originaires certains de ses ancêtres)  A été choisi par Google, car une machine Android peut lancer plusieurs instances de la DVM efficacement (comme en Java)  Référence : http://en.wikipedia.org/wiki/Dalvik_virtual_machine Slide original (c) JMF
  • 24. session sept 2014 Yann Caron (c) 2014 24 Dalvik Virtual Machine (DVM)  Le code de la DVM est open source (Apache License 2.0) : http://code.google.com/p/dalvik/  Machine à registre (register based) vs Java, machine à pile (stack based)  JIT (Just in time compiler) introduit avec Android 2.2  Performances controversées (selon Oracle, 3x moins par rapport à HotSpot). Facteur 100 avec une application native  Un remplacement prévu. ART qui précompile le byte-code à l'installation. ➔ Inconvénient, des app plus volumineuses ➔ Un gain de performance non encore prouvé  Android Asset Packaging Tool (AAPT) convertit les JAR en dex (dexer)
  • 25. session sept 2014 Yann Caron (c) 2014 25 En détail
  • 26. session sept 2014 Yann Caron (c) 2014 26 Encore plus en détail
  • 27. session sept 2014 Yann Caron (c) 2014 27 IN01 – Séance 01 Outils et IDE
  • 28. session sept 2014 Yann Caron (c) 2014 28 Installation  Facilitée depuis fin 2012  Installer JDK Java6 SE  Télécharger l'ADT Bundle depuis  http://developer.android .com/sdk  Il inclut : Eclipse, le SDK Android, le plugin Eclipse Slide original (c) JMF
  • 29. session sept 2014 Yann Caron (c) 2014 29 La pile des outils Slide original (c) JMF JDK Java 6 SE SDK Android ADT Plugin Eclipse AVD ADB AAPT
  • 30. session sept 2014 Yann Caron (c) 2014 30 Le SDK Android  l'Android SDK (Software Development Kit) amène des outils : ➔ un environnement de développement ➔ une machine virtuelle Java adaptée : la Dalvik virtual machine ➔ un environnement debugueur DDMS (Dalvik Debug Monitor Service) utilisant adb (Android Debug Bridge) ➔ un environnement de construction d'applications Android AAPT (Android Asset Packaging Tool) ➔ des émulateurs de téléphones ou de tablettes AVD (Android Virtual Device) ➔ et une énorme API (voir http://developer.android.com/reference/packages.html) Slide original (c) JMF
  • 31. session sept 2014 Yann Caron (c) 2014 31 Eclipse  Développement en Java  Divers outils ➔ WYSIWYG ➔ File explorer ➔ Screen capture ➔ Threads, Heap ➔ Allocation tracker ➔ Profiler, etc.
  • 32. session sept 2014 Yann Caron (c) 2014 32 IDE Autres  Android Studio ➔ Solution de Google annoncée au Google IO 2013 ➔ Basé sur Intellij IDEA  Intellij IDEA (standalone)  AIDE – Android IDE – Java, C++ ➔ Solution tablette et smartphone ➔ Compatible avec les projets Android Studio  Netbeans et NBAndroid ➔ Pas de WYSIWYG, certains aspects mal intégrés, en partie payant.
  • 33. session sept 2014 Yann Caron (c) 2014 33 Outils indispensables  aLogCat  Un explorateur de fichiers  APK Manager, Advanced Task Killer  Un admin de bases de données SQLite  Optionnel : Google Analytics
  • 34. session sept 2014 Yann Caron (c) 2014 34 Android SDK Manager  Gestionnaire de versions de SDK centralisé  Google fournit les données au format XML
  • 35. session sept 2014 Yann Caron (c) 2014 35 Android Virtual Device (AVD)  Multiplatforme : win, Linux, macos  Multirésolution  Multi-os  Mais plus lent qu'un vrai device  Senseurs émulés
  • 36. session sept 2014 Yann Caron (c) 2014 36 AVD Manager  Un gestionnaire des émulateurs centralisé  Configurateur  Accessible depuis Eclipse
  • 37. session sept 2014 Yann Caron (c) 2014 37 Android Debug Bridge (ADB)  Outil en ligne de commande  Un client/serveur (et service) dédié au développement sur Android  Server : start-server, kill-server, devices  Shell : shell, logcat  Data : install, pull, push  Et bien d'autres : http://developer.android.com/tools/help/adb.html
  • 38. session sept 2014 Yann Caron (c) 2014 38 Logcat  Un logger sur chaque device  Accessible depuis ADT ou une app (aLogCat)
  • 39. session sept 2014 Yann Caron (c) 2014 39 Logcat  Filtre depuis Eclipse  Recommandé
  • 40. session sept 2014 Yann Caron (c) 2014 40 Fin  Merci de votre attention  Des questions ?