Introduction à Android by Jean Collas, Ghislain Deffrasne, Reda Sebbaniis licensed under a Creative Commons Attribution 2.0 France License. Original at http://www.jean-collas.fr/android
 OuvertureJean Collas, Réda Sebbani, Ghislain Deffrasnes
ContexteContexte3Téléphonie Mobile : Smart PhoneDéveloppement logiciel pour mobilesChiffre d’affaire énormeWindows MobileRIM40 millions de smartphones / trimestre (2008)SymbianiPhone OS
Contexte Concurrentiel4Systèmes d’exploitation pour Mobiles :Marché en constante augmentationPossibilités d’évolution énormes avec un bon produit
Contexte Concurrentiel5Systèmes d’exploitation pour Smart phone :Marché en constante augmentation (+28% en 1 an, 31M -> 40M)Possibilités d’évolution énormes avec un bon produit
Internet & Google6Fondé en 98, croissance constanteMultiples domaines de l’informatique :Recherche, cartographie, vidéo, conception 3D, suite  bureautique, publicité, navigateur, …Politique de financement par la publicitéAttaque du monde mobile par la source : le système d’exploitation Android
Points forts d’AndroidPoints fort d’Android7Point de vue constructeurPoint de vue utilisateurPoint de vue développeurPoint de vue bidouilleurSystème Linux + JavaSystème fonctionnel, intuitif, évolutifApplication développées en syntaxe JavaSDK complet fourniProjet Open Source C++ / Java
HistoriqueHistorique8T-Mobile G1Novembre 2008Android 1.0 et SDK release 2Android : Open SourceOctobre 2008Android 1.0 et SDK release 1Septembre 2008AndroidMarketAoût 2008Avril 2008Développementd’AndroidDeveloperChallengeOpen Handset AllianceAnnonce d’AndroidSDK pour AndroidNovembre 2007Start-up AndroidAoût 2005
Open Handset Alliance9Consortium créé fin 2007
47 compagniesFabricants de semi-conducteursOpérateurs de téléphonie mobileEntreprises de commercialisationFabricants d'appareils mobilesFabricants de logicielsBut : développer des normes ouvertes pour les appareils de téléphonie mobileT-Mobile G1T-Mobile G1 (HTC)101ertéléphone avec Android
De 180 à 400 $
Wi-fi et Bluetooth
GPS
Accéléromètres
Caméra
Écran tactileDe nouveaux mobiles11LGL’agora par Koganhttp://www.businessmobile.fr/solutions-mobiles/guides-mobilite/0,39044672,39220692,00.htm
Matériel Recommandé12  RAM : 128 Mo (minimum requis)
  Mémoire Flash : 256 Mo (minimum requis)
  Wifi : 802.11 b/g
  USB : interface USB 2.0
  Bluetooth 2.0 EDR
  Caméra
  Périphérique de stockage externe
  Écran :
  Résolution HVGA (480 × 320 pixels)
  Couleurs 16 bitsPreuve de sa portabilité – Futur d’Android13Et si Android n’était pas seulement conçu pour les smartphone?Android sur un NetBook
Développementd’Applications14  Possibilité de créer ses propres applicationsEnvironnement de développementAndroid SDK  Plugin Eclipse  Émulateur, outils de débuggage, etc…  Langage Java?
Intégration des applications Google15  Barre de recherche « Google Search »Gmail  Google Talk (IM)  Navigateur WebGmaps  Google StreetView
Exemples d’applications : Android Market16GéolocalisationOrientationTourismeGéolocalisationTravailVoisinageGoogle MapsVoyageAchatsCovoiturage
Points d’accès d’Android17Point de vue constructeurPoint de vue utilisateurPoint de vue développeurPoint de vue bidouilleurSystème Linux + JavaSystème fonctionnel, intuitif, évolutifApplication développées en syntaxe JavaSDK complet fourniProjet Open Source C++ / Java
Architecture18APPLICATIONSHomeContactsPhoneBrowser…APPLICATION FRAMEWORKActivity ManagerWindow ManagerContent ProvidersView SystemPackage ManagerTelephony ManagerResource ManagerLocation ManagerNotification ManagerANDROID RUNTIMEJNILIBRARIESCoreLibrariesSurface ManagerMedia FrameworkSQL LiteDalvik Virtual MachineOpenGLAudio ManagerWebKitSGLSSLLibcLINUX KERNELDisplay DriverCamera DriverFlash Memory DriverBinder (IPC) DriverKeypad DriverWiFi DriverAudio DriverPower Management
Noyau d’Android19Architecture ARMBasé sur Linux 2.6.24Système de fichiers supporté : FAT32  Support de TCP/IP, UDP,…HARDWARE ABSTRACTION LAYERGraphicsAudioCameraBluetoothGPSWiFi…LINUX KERNELDisplay DriverCamera DriverFlash Memory DriverBinder (IPC) DriverKeypad DriverWiFi DriverAudio DriverPower Management
Adaptation aux besoins du mobile20Alarm : timers pour « réveiller » des périphériques
Ashmem : partage de mémoire entre processus
Binder : driver IPC pour la communication inter-processus
Power Management
Low Memory Killer
Kernel Debugger
LoggerHARDWARE ABSTRACTION LAYERGraphicsAudioCameraBluetoothGPSWiFi…LINUX KERNELDisplay DriverCamera DriverFlash Memory DriverBinder (IPC) DriverKeypad DriverWiFi DriverAudio DriverPower Management
Librairies21LIBRARIESSurface ManagerMedia FrameworkSQL LiteOpenGLAudio ManagerWebKitSGLSSLLibcLINUX KERNELDisplay DriverCamera DriverFlash Memory DriverBinder (IPC) DriverKeypad DriverWiFi DriverAudio DriverPower Management
Surface Manager22Application 1Surface FlingerApplication 2Écran(Frame Buffer)
Audio Manager23Sonnerie d’appelAudio FlingerOreilletteLecteur MP3Écouteurs
Machine Virtuelle Dalvik24ANDROID RUNTIMELIBRARIESCoreLibrariesSurface ManagerMedia FrameworkSQL LiteDalvik Virtual MachineOpenGLAudio ManagerWebKitSGLSSLLibcLINUX KERNELDisplay DriverCamera DriverFlash Memory DriverBinder (IPC) DriverKeypad DriverWiFi DriverAudio DriverPower Management
Machine Virtuelle Dalvik25Nouvelle instance pour chaque processus : Applications indépendantes  Exécute des fichiers .dex (Dalvik Executable)Dalvik core class library fournit une base de développement proche  de java SE, adapté au mobile
Framework & fondationsdes applications26APPLICATION FRAMEWORKActivity ManagerWindow ManagerContent ProvidersView SystemPackage ManagerTelephony ManagerResource ManagerLocation ManagerNotification ManagerANDROID RUNTIMEJNILIBRARIESCoreLibrariesSurface ManagerMedia FrameworkSQL LiteDalvik Virtual MachineOpenGLAudio ManagerWebKitSGLSSLLibcLINUX KERNELDisplay DriverCamera DriverFlash Memory DriverBinder (IPC) DriverKeypad DriverWiFi DriverAudio DriverPower Management
Intents27 Intent :  Requête; Description d’une action à effectuer
  Fait le lien entre différentes applications  Décrit par :  Une action(VIEW, EDIT, MAIN,…)
  La donnée à traiter (sous forme d’URI)Types d’Intent :  Explicite (référence exacte)
  Implicite (description)Intents28Intent ResolverIntent 1 App.AIntent 2 App.B..PublicationEdit ContactContactsView Contact Contacts IntentFilterVIEWEDITStartActivity(View Contact)12Echange3MessagerieContacts
29Intent FilterObjectif : Description du handlerPublication d’IntentFilters par les activitésIntentFilter décrivent les capacités de l’application.<intent-filter>   <actionandroid:value="android.intent.action.VIEW"/>   <actionandroid:value="android.intent.action.EDIT"/>   <actionandroid:value="android.intent.action.PICK"/>   <category android:value="android.intent.category.DEFAULT" />   <type     android:value="vnd.android.cursor.dir/vnd.google.contact" /></intent-filter>
Les URIs - Utilisation30Exemples d’URI:IntentEDIT_ACTIONOuvre l’application de géo-localisation à la position donnée (latitude, longitude).VIEW_ACTIONgeo:tel:125people/content:google.streetview://contacts/25,32123cbll=25,32Appelle le numéro 123CALL_ACTIONVIEW_ACTION&cbp=1,yaw,,pitch,zoomvoid startActivity(Intent intent) ;void sendBroadcast(Intent intent)boolean bindService(Intent service, int flags)ComponentName startService(Intent service)
Notification Manager31Applications peuvent s’exécuter simultanémentBarre de notificationsNotificationsd’événements du backgroundMise en place facilité par le Notification ManagerDifférentes formes de notifications :  LED
  Son

Presentation Android

  • 1.
                 Introduction à Androidby Jean Collas, Ghislain Deffrasne, Reda Sebbaniis licensed under a Creative Commons Attribution 2.0 France License. Original at http://www.jean-collas.fr/android
  • 2.
    OuvertureJean Collas,Réda Sebbani, Ghislain Deffrasnes
  • 3.
    ContexteContexte3Téléphonie Mobile :Smart PhoneDéveloppement logiciel pour mobilesChiffre d’affaire énormeWindows MobileRIM40 millions de smartphones / trimestre (2008)SymbianiPhone OS
  • 4.
    Contexte Concurrentiel4Systèmes d’exploitationpour Mobiles :Marché en constante augmentationPossibilités d’évolution énormes avec un bon produit
  • 5.
    Contexte Concurrentiel5Systèmes d’exploitationpour Smart phone :Marché en constante augmentation (+28% en 1 an, 31M -> 40M)Possibilités d’évolution énormes avec un bon produit
  • 6.
    Internet & Google6Fondéen 98, croissance constanteMultiples domaines de l’informatique :Recherche, cartographie, vidéo, conception 3D, suite bureautique, publicité, navigateur, …Politique de financement par la publicitéAttaque du monde mobile par la source : le système d’exploitation Android
  • 7.
    Points forts d’AndroidPointsfort d’Android7Point de vue constructeurPoint de vue utilisateurPoint de vue développeurPoint de vue bidouilleurSystème Linux + JavaSystème fonctionnel, intuitif, évolutifApplication développées en syntaxe JavaSDK complet fourniProjet Open Source C++ / Java
  • 8.
    HistoriqueHistorique8T-Mobile G1Novembre 2008Android1.0 et SDK release 2Android : Open SourceOctobre 2008Android 1.0 et SDK release 1Septembre 2008AndroidMarketAoût 2008Avril 2008Développementd’AndroidDeveloperChallengeOpen Handset AllianceAnnonce d’AndroidSDK pour AndroidNovembre 2007Start-up AndroidAoût 2005
  • 9.
  • 10.
    47 compagniesFabricants desemi-conducteursOpérateurs de téléphonie mobileEntreprises de commercialisationFabricants d'appareils mobilesFabricants de logicielsBut : développer des normes ouvertes pour les appareils de téléphonie mobileT-Mobile G1T-Mobile G1 (HTC)101ertéléphone avec Android
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
    Écran tactileDe nouveauxmobiles11LGL’agora par Koganhttp://www.businessmobile.fr/solutions-mobiles/guides-mobilite/0,39044672,39220692,00.htm
  • 17.
    Matériel Recommandé12 RAM : 128 Mo (minimum requis)
  • 18.
    MémoireFlash : 256 Mo (minimum requis)
  • 19.
    Wifi: 802.11 b/g
  • 20.
    USB: interface USB 2.0
  • 21.
    Bluetooth2.0 EDR
  • 22.
  • 23.
    Périphériquede stockage externe
  • 24.
  • 25.
    RésolutionHVGA (480 × 320 pixels)
  • 26.
    Couleurs16 bitsPreuve de sa portabilité – Futur d’Android13Et si Android n’était pas seulement conçu pour les smartphone?Android sur un NetBook
  • 27.
    Développementd’Applications14 Possibilitéde créer ses propres applicationsEnvironnement de développementAndroid SDK Plugin Eclipse Émulateur, outils de débuggage, etc… Langage Java?
  • 28.
    Intégration des applicationsGoogle15 Barre de recherche « Google Search »Gmail Google Talk (IM) Navigateur WebGmaps Google StreetView
  • 29.
    Exemples d’applications :Android Market16GéolocalisationOrientationTourismeGéolocalisationTravailVoisinageGoogle MapsVoyageAchatsCovoiturage
  • 30.
    Points d’accès d’Android17Pointde vue constructeurPoint de vue utilisateurPoint de vue développeurPoint de vue bidouilleurSystème Linux + JavaSystème fonctionnel, intuitif, évolutifApplication développées en syntaxe JavaSDK complet fourniProjet Open Source C++ / Java
  • 31.
    Architecture18APPLICATIONSHomeContactsPhoneBrowser…APPLICATION FRAMEWORKActivity ManagerWindowManagerContent ProvidersView SystemPackage ManagerTelephony ManagerResource ManagerLocation ManagerNotification ManagerANDROID RUNTIMEJNILIBRARIESCoreLibrariesSurface ManagerMedia FrameworkSQL LiteDalvik Virtual MachineOpenGLAudio ManagerWebKitSGLSSLLibcLINUX KERNELDisplay DriverCamera DriverFlash Memory DriverBinder (IPC) DriverKeypad DriverWiFi DriverAudio DriverPower Management
  • 32.
    Noyau d’Android19Architecture ARMBasésur Linux 2.6.24Système de fichiers supporté : FAT32 Support de TCP/IP, UDP,…HARDWARE ABSTRACTION LAYERGraphicsAudioCameraBluetoothGPSWiFi…LINUX KERNELDisplay DriverCamera DriverFlash Memory DriverBinder (IPC) DriverKeypad DriverWiFi DriverAudio DriverPower Management
  • 33.
    Adaptation aux besoinsdu mobile20Alarm : timers pour « réveiller » des périphériques
  • 34.
    Ashmem : partagede mémoire entre processus
  • 35.
    Binder : driverIPC pour la communication inter-processus
  • 36.
  • 37.
  • 38.
  • 39.
    LoggerHARDWARE ABSTRACTION LAYERGraphicsAudioCameraBluetoothGPSWiFi…LINUXKERNELDisplay DriverCamera DriverFlash Memory DriverBinder (IPC) DriverKeypad DriverWiFi DriverAudio DriverPower Management
  • 40.
    Librairies21LIBRARIESSurface ManagerMedia FrameworkSQLLiteOpenGLAudio ManagerWebKitSGLSSLLibcLINUX KERNELDisplay DriverCamera DriverFlash Memory DriverBinder (IPC) DriverKeypad DriverWiFi DriverAudio DriverPower Management
  • 41.
    Surface Manager22Application 1SurfaceFlingerApplication 2Écran(Frame Buffer)
  • 42.
    Audio Manager23Sonnerie d’appelAudioFlingerOreilletteLecteur MP3Écouteurs
  • 43.
    Machine Virtuelle Dalvik24ANDROIDRUNTIMELIBRARIESCoreLibrariesSurface ManagerMedia FrameworkSQL LiteDalvik Virtual MachineOpenGLAudio ManagerWebKitSGLSSLLibcLINUX KERNELDisplay DriverCamera DriverFlash Memory DriverBinder (IPC) DriverKeypad DriverWiFi DriverAudio DriverPower Management
  • 44.
    Machine Virtuelle Dalvik25Nouvelleinstance pour chaque processus : Applications indépendantes Exécute des fichiers .dex (Dalvik Executable)Dalvik core class library fournit une base de développement proche de java SE, adapté au mobile
  • 45.
    Framework & fondationsdesapplications26APPLICATION FRAMEWORKActivity ManagerWindow ManagerContent ProvidersView SystemPackage ManagerTelephony ManagerResource ManagerLocation ManagerNotification ManagerANDROID RUNTIMEJNILIBRARIESCoreLibrariesSurface ManagerMedia FrameworkSQL LiteDalvik Virtual MachineOpenGLAudio ManagerWebKitSGLSSLLibcLINUX KERNELDisplay DriverCamera DriverFlash Memory DriverBinder (IPC) DriverKeypad DriverWiFi DriverAudio DriverPower Management
  • 46.
    Intents27 Intent : Requête; Description d’une action à effectuer
  • 47.
    Faitle lien entre différentes applications Décrit par : Une action(VIEW, EDIT, MAIN,…)
  • 48.
    Ladonnée à traiter (sous forme d’URI)Types d’Intent : Explicite (référence exacte)
  • 49.
    Implicite(description)Intents28Intent ResolverIntent 1 App.AIntent 2 App.B..PublicationEdit ContactContactsView Contact Contacts IntentFilterVIEWEDITStartActivity(View Contact)12Echange3MessagerieContacts
  • 50.
    29Intent FilterObjectif :Description du handlerPublication d’IntentFilters par les activitésIntentFilter décrivent les capacités de l’application.<intent-filter> <actionandroid:value="android.intent.action.VIEW"/> <actionandroid:value="android.intent.action.EDIT"/> <actionandroid:value="android.intent.action.PICK"/> <category android:value="android.intent.category.DEFAULT" /> <type android:value="vnd.android.cursor.dir/vnd.google.contact" /></intent-filter>
  • 51.
    Les URIs -Utilisation30Exemples d’URI:IntentEDIT_ACTIONOuvre l’application de géo-localisation à la position donnée (latitude, longitude).VIEW_ACTIONgeo:tel:125people/content:google.streetview://contacts/25,32123cbll=25,32Appelle le numéro 123CALL_ACTIONVIEW_ACTION&cbp=1,yaw,,pitch,zoomvoid startActivity(Intent intent) ;void sendBroadcast(Intent intent)boolean bindService(Intent service, int flags)ComponentName startService(Intent service)
  • 52.
    Notification Manager31Applications peuvents’exécuter simultanémentBarre de notificationsNotificationsd’événements du backgroundMise en place facilité par le Notification ManagerDifférentes formes de notifications : LED
  • 53.