androidcours

Shared by: YoussefBenMed
Categories
Tags
-
Stats
views:
4
posted:
7/9/2012
language:
pages:
118
Document Sample
scope of work template
							        Organisation du module
                     Generalite
                           e
                    Le Syst`me
Fonctionnement des Applications




                   Cours Android
                e
               D´veloppement et API


                   Romain Raveaux1
         1 Laboratoire L3I – IUT de La Rochelle
               romain.raveaux01 at univ-lr.fr


                 Octobre 29-01, 2011




                                                  1 / 100
                          Organisation du module
                                       Generalite
                                             e
                                      Le Syst`me
                  Fonctionnement des Applications


Sommaire



 1   Organisation du module



 2   Generalite


 3          e
     Le Syst`me



 4   Fonctionnement des Applications




                                                    2 / 100
                    Organisation du module
                                 Generalite
                                       e
                                Le Syst`me
            Fonctionnement des Applications


Romain Raveaux


     Doctorat en informatique
                 e          ee
     2 Masters: R´seaux et T´l´communications et Maths
            e
     appliqu´es
     Recherche (Laboratoire L3i)
          e     e
         S´curit´ documentaire
                               e
         Analyse de graphes (R´seaux informatiques ou sociaux)
                             o
     Enseignements (Master Icˆne+IUT info)
               e
         Web S´mantique
          e
         R´seau




                                                                 3 / 100
                    Organisation du module
                                 Generalite
                                       e
                                Le Syst`me
            Fonctionnement des Applications


Romain Raveaux


     Doctorat en informatique
                 e          ee
     2 Masters: R´seaux et T´l´communications et Maths
            e
     appliqu´es
     Recherche (Laboratoire L3i)
          e     e
         S´curit´ documentaire
                               e
         Analyse de graphes (R´seaux informatiques ou sociaux)
                             o
     Enseignements (Master Icˆne+IUT info)
               e
         Web S´mantique
          e
         R´seau




                                                                 3 / 100
                    Organisation du module
                                 Generalite
                                       e
                                Le Syst`me
            Fonctionnement des Applications


Romain Raveaux


     Doctorat en informatique
                 e          ee
     2 Masters: R´seaux et T´l´communications et Maths
            e
     appliqu´es
     Recherche (Laboratoire L3i)
          e     e
         S´curit´ documentaire
                               e
         Analyse de graphes (R´seaux informatiques ou sociaux)
                             o
     Enseignements (Master Icˆne+IUT info)
               e
         Web S´mantique
          e
         R´seau




                                                                 3 / 100
                    Organisation du module
                                 Generalite
                                       e
                                Le Syst`me
            Fonctionnement des Applications


Romain Raveaux


     Doctorat en informatique
                 e          ee
     2 Masters: R´seaux et T´l´communications et Maths
            e
     appliqu´es
     Recherche (Laboratoire L3i)
          e     e
         S´curit´ documentaire
                               e
         Analyse de graphes (R´seaux informatiques ou sociaux)
                             o
     Enseignements (Master Icˆne+IUT info)
               e
         Web S´mantique
          e
         R´seau




                                                                 3 / 100
                    Organisation du module
                                 Generalite
                                       e
                                Le Syst`me
            Fonctionnement des Applications


Romain Raveaux


     Doctorat en informatique
                 e          ee
     2 Masters: R´seaux et T´l´communications et Maths
            e
     appliqu´es
     Recherche (Laboratoire L3i)
          e     e
         S´curit´ documentaire
                               e
         Analyse de graphes (R´seaux informatiques ou sociaux)
                             o
     Enseignements (Master Icˆne+IUT info)
               e
         Web S´mantique
          e
         R´seau




                                                                 3 / 100
                    Organisation du module
                                 Generalite
                                       e
                                Le Syst`me
            Fonctionnement des Applications


Romain Raveaux


     Doctorat en informatique
                 e          ee
     2 Masters: R´seaux et T´l´communications et Maths
            e
     appliqu´es
     Recherche (Laboratoire L3i)
          e     e
         S´curit´ documentaire
                               e
         Analyse de graphes (R´seaux informatiques ou sociaux)
                             o
     Enseignements (Master Icˆne+IUT info)
               e
         Web S´mantique
          e
         R´seau




                                                                 3 / 100
                    Organisation du module
                                 Generalite
                                       e
                                Le Syst`me
            Fonctionnement des Applications


Romain Raveaux


     Doctorat en informatique
                 e          ee
     2 Masters: R´seaux et T´l´communications et Maths
            e
     appliqu´es
     Recherche (Laboratoire L3i)
          e     e
         S´curit´ documentaire
                               e
         Analyse de graphes (R´seaux informatiques ou sociaux)
                             o
     Enseignements (Master Icˆne+IUT info)
               e
         Web S´mantique
          e
         R´seau




                                                                 3 / 100
                    Organisation du module
                                 Generalite
                                       e
                                Le Syst`me
            Fonctionnement des Applications


Romain Raveaux


     Doctorat en informatique
                 e          ee
     2 Masters: R´seaux et T´l´communications et Maths
            e
     appliqu´es
     Recherche (Laboratoire L3i)
          e     e
         S´curit´ documentaire
                               e
         Analyse de graphes (R´seaux informatiques ou sociaux)
                             o
     Enseignements (Master Icˆne+IUT info)
               e
         Web S´mantique
          e
         R´seau




                                                                 3 / 100
                     Organisation du module
                                  Generalite
                                        e
                                 Le Syst`me
             Fonctionnement des Applications


Module Android



  Module PM4 : 2 semaines
       e e     e
      G´n´ralit´ Android
                          e
      Organisation du syst`me
      Android SDK
      Application




                                               4 / 100
                     Organisation du module
                                  Generalite
                                        e
                                 Le Syst`me
             Fonctionnement des Applications


Module Android



  Module PM4 : 2 semaines
       e e     e
      G´n´ralit´ Android
                          e
      Organisation du syst`me
      Android SDK
      Application




                                               4 / 100
                     Organisation du module
                                  Generalite
                                        e
                                 Le Syst`me
             Fonctionnement des Applications


Module Android



  Module PM4 : 2 semaines
       e e     e
      G´n´ralit´ Android
                          e
      Organisation du syst`me
      Android SDK
      Application




                                               4 / 100
                     Organisation du module
                                  Generalite
                                        e
                                 Le Syst`me
             Fonctionnement des Applications


Module Android



  Module PM4 : 2 semaines
       e e     e
      G´n´ralit´ Android
                          e
      Organisation du syst`me
      Android SDK
      Application




                                               4 / 100
                    Organisation du module
                                 Generalite
                                       e
                                Le Syst`me
            Fonctionnement des Applications


Plan des TPs




                       e
     Getting started (D´bugger, helloworld)
                e                            e
     Projets : G´olocalisation des Stations Y´lo




                                                   5 / 100
                    Organisation du module
                                 Generalite
                                       e
                                Le Syst`me
            Fonctionnement des Applications


Plan des TPs




                       e
     Getting started (D´bugger, helloworld)
                e                            e
     Projets : G´olocalisation des Stations Y´lo




                                                   5 / 100
                       Organisation du module
                                    Generalite
                                          e
                                   Le Syst`me
               Fonctionnement des Applications


     e
Les r`gles




      Ne pas perturber le cours:
             Silence
                                             a
             Rendre les comptes rendus de TP ` temps.




                                                        6 / 100
                       Organisation du module
                                    Generalite
                                          e
                                   Le Syst`me
               Fonctionnement des Applications


     e
Les r`gles




      Ne pas perturber le cours:
             Silence
                                             a
             Rendre les comptes rendus de TP ` temps.




                                                        6 / 100
                     Organisation du module
                                  Generalite
                                        e
                                 Le Syst`me
             Fonctionnement des Applications


Bibliographie


      http://developer.android.com/index.html
      http://www.tutomobile.fr/category/tutorial-android/
      http://android.developpez.com/cours/
      http://www.tutomobile.fr/geolocalisation-grace-au-gps-ou-au-
      reseau-mobile-tutoriel-android-n%C2%B015/13/08/2010/
      http://www.androidcompetencycenter.com/2009/06/start-
      service-at-boot/
      Linux Mag




                                                                     7 / 100
                     Organisation du module
                                  Generalite
                                        e
                                 Le Syst`me
             Fonctionnement des Applications


Bibliographie


      http://developer.android.com/index.html
      http://www.tutomobile.fr/category/tutorial-android/
      http://android.developpez.com/cours/
      http://www.tutomobile.fr/geolocalisation-grace-au-gps-ou-au-
      reseau-mobile-tutoriel-android-n%C2%B015/13/08/2010/
      http://www.androidcompetencycenter.com/2009/06/start-
      service-at-boot/
      Linux Mag




                                                                     7 / 100
                     Organisation du module
                                  Generalite
                                        e
                                 Le Syst`me
             Fonctionnement des Applications


Bibliographie


      http://developer.android.com/index.html
      http://www.tutomobile.fr/category/tutorial-android/
      http://android.developpez.com/cours/
      http://www.tutomobile.fr/geolocalisation-grace-au-gps-ou-au-
      reseau-mobile-tutoriel-android-n%C2%B015/13/08/2010/
      http://www.androidcompetencycenter.com/2009/06/start-
      service-at-boot/
      Linux Mag




                                                                     7 / 100
                     Organisation du module
                                  Generalite
                                        e
                                 Le Syst`me
             Fonctionnement des Applications


Bibliographie


      http://developer.android.com/index.html
      http://www.tutomobile.fr/category/tutorial-android/
      http://android.developpez.com/cours/
      http://www.tutomobile.fr/geolocalisation-grace-au-gps-ou-au-
      reseau-mobile-tutoriel-android-n%C2%B015/13/08/2010/
      http://www.androidcompetencycenter.com/2009/06/start-
      service-at-boot/
      Linux Mag




                                                                     7 / 100
                     Organisation du module
                                  Generalite
                                        e
                                 Le Syst`me
             Fonctionnement des Applications


Bibliographie


      http://developer.android.com/index.html
      http://www.tutomobile.fr/category/tutorial-android/
      http://android.developpez.com/cours/
      http://www.tutomobile.fr/geolocalisation-grace-au-gps-ou-au-
      reseau-mobile-tutoriel-android-n%C2%B015/13/08/2010/
      http://www.androidcompetencycenter.com/2009/06/start-
      service-at-boot/
      Linux Mag




                                                                     7 / 100
                     Organisation du module
                                  Generalite
                                        e
                                 Le Syst`me
             Fonctionnement des Applications


Bibliographie


      http://developer.android.com/index.html
      http://www.tutomobile.fr/category/tutorial-android/
      http://android.developpez.com/cours/
      http://www.tutomobile.fr/geolocalisation-grace-au-gps-ou-au-
      reseau-mobile-tutoriel-android-n%C2%B015/13/08/2010/
      http://www.androidcompetencycenter.com/2009/06/start-
      service-at-boot/
      Linux Mag




                                                                     7 / 100
                     Organisation du module
                                  Generalite
                                        e
                                 Le Syst`me
             Fonctionnement des Applications


Bibliographie




                            e
      Ce cours/TP utilise tr`s largement l’article de Yann
                       e
      D’ISANTO publi´ sur Developpez.com ainsi que de la
        e
      pr´sentation de Lenn Angel.




                                                             8 / 100
                   Organisation du module
                                Generalite
                                      e
                               Le Syst`me
           Fonctionnement des Applications


  e           e e
Pr´sentation G´n´rale




                                             9 / 100
                     Organisation du module
                                  Generalite
                                        e
                                 Le Syst`me
             Fonctionnement des Applications


Qu’est-ce que c’est ?




                e    e                              a
      Souvent pr´sent´ comme l’aternative de Google ` l’iPhone
          e
      Syst`me d’exploitation pour terminaux mobiles
         e
      Bas´ sur Linux
      Open Source (licence Apache)




                                                                 10 / 100
                     Organisation du module
                                  Generalite
                                        e
                                 Le Syst`me
             Fonctionnement des Applications


             e
Fonctionnalit´s 1/2


                                 e
      Framework applicatif avec r´utilisation et remplacement
      possible des composants
                                                             e
      DVM : Dalvik Virtual Machine (machine virtuelle optimis´e
                e    e
      pour les p´riph´riques mobiles)
                    e e     e
      Navigateur int´gr´ bas´ sur le moteur WebKit (OpenSource)
                    e e
      Librairie 2D d´di´e
                          e                e
      Gestion de la 3D bas´e sur une impl´mentation d’OpenGL ES
                                  e          e
      1.0 (avec support de l’accel´ration mat´rielle)
                  e
      Base de donn´es SQLite
                  e
      Gestion des ´crans tactiles et du Multitouch


                                                                  11 / 100
                       Organisation du module
                                    Generalite
                                          e
                                   Le Syst`me
               Fonctionnement des Applications


             e
Fonctionnalit´s 2/2


            e
      Multim´dia : support de la plupart des formats classiques
      d’images, de videos et audios (MPEG4, H.264, MP3, AAC,
      AMR, JPG, PNG, GIF)
       ee
      T´l´phonie GSM (selon hardware)
      Bluetooth, EDGE, 3G et WiFi (selon hardware)
          e                       e    e
      Cam´ra, GPS, compas et accel´rom`tre (selon hardware)
                        e
      Environnement de d´veloppement riche incluant :
        -   Un emulateur (avec une interface de controle)
        -   Des outils de deboggage
        -   Outils de profiling memoire et performance
        -   Un plugin pour l’IDE Eclipse


                                                                  12 / 100
                     Organisation du module
                                  Generalite
                                        e
                                 Le Syst`me
             Fonctionnement des Applications


Historique



       e      e
      D´velopp´ par la startup Android Inc.
      Juillet 2005 : Rachat par Google
      Novembre 2007 : Open Handset Alliance
        - Texas Instruments, Broadcom Corporation, Google, HTC,
          Intel, LG, Marvell Technology Group, Motorola, Nvidia,
          Qualcomm, Samsung Electronics, Sprint Nextel, T-Mobile
            e
        - D´cembre 2008 : ARM Holdings, Atheros Communications,
          Asustek Computer Inc, Garmin Ltd, Softbank, Sony Ericsson,
          Toshiba Corp, Vodafone




                                                                       13 / 100
                    Organisation du module
                                 Generalite
                                       e
                                Le Syst`me
            Fonctionnement des Applications


             e
Terminaux Vis´s




      ee
     T´l´phones portables (HTC, Samsung, Motorola...)
     Netbook/Smartbook (HP Airlife 100, Acer Aspire D250...)
     Tablette Multimedia (Archos, Samsung Galaxy Tab, ...)
     Automobile (Continental AutoLinq : Tesla, Ford...)
                        e                     a
     Mais aussi : GPS, R´frigerateur, Machine ` laver...




                                                               14 / 100
                    Organisation du module
                                 Generalite
                                       e
                                Le Syst`me
            Fonctionnement des Applications


                a
Et ca ressemble ` quoi ?




                                              15 / 100
                    Organisation du module
                                 Generalite
                                       e
                                Le Syst`me
            Fonctionnement des Applications


Mobiles Disponibles
  En 2008 : HTC Dream / G1




                                              16 / 100
                     Organisation du module
                                  Generalite
                                        e
                                 Le Syst`me
             Fonctionnement des Applications


Mobiles Disponibles

  En 2009 : Une quizaine (HTC, LG, Samsung, Motorola...)




                                                           17 / 100
                     Organisation du module
                                  Generalite
                                        e
                                 Le Syst`me
             Fonctionnement des Applications


Mobiles Disponibles


                 e
  En 2010 : De tr`s nombreux mobiles




                                               18 / 100
                      Organisation du module
                                   Generalite
                                         e
                                  Le Syst`me
              Fonctionnement des Applications


Concurrents



                                   ee             e
      Apple iPhone OS : leader en t´l´phonie, ferm´...
      Windows Mobile : vieillissant, va t’il revenir avec v7 ?
               e                                    e
      Palm : pr´curseur, en perte de vitesse, PalmPr´ ?
                           e e                      e
      Blackberry : plutot d´di´ entreprise mais se d´mocratise
      Symbian : passage en open source octobre 2009
                                                           e
  Mais la plupart de ces concurrents n’ont pas la flexibilit´ d’Android
                                ee
  qui ne se destine pas qu’aux t´l´phones mobiles !




                                                                         19 / 100
                   Organisation du module
                                Generalite
                                      e
                               Le Syst`me
           Fonctionnement des Applications


              e
Parts de March´




                                             20 / 100
                     Organisation du module
                                  Generalite
                                        e
                                 Le Syst`me
             Fonctionnement des Applications


Les versions...


      Versions d’Android :
      1.5 : Cupcake (avril 2009)
      1.6 : Donut (septembre 2009)
      2.0/2.1 : Eclair (Octobre 2009)
      2.2 : FroYo (Mai 2010)
      2.3 : Gingerbread (Novembre 2010)
                        e
      3.0 : Honeycomb (F´vrier 2011)
      Remarques :
                      e
          Evolution tr`s rapide !
               e              e
          Probl´matique de d´ploiement



                                               21 / 100
                        Organisation du module
                                     Generalite
                                           e
                                    Le Syst`me
                Fonctionnement des Applications


Cupcake 1.5

                                                  Support du Bluetooth A2DP et
                                                  AVRCP
                                                            e
                                                  Possibilit´ de se connecter
                                                                      a
                                                  automatiquement ` un kit
     30 Avril 2009                                bluetooth
     Linux Kernel 2.6.27                          Ajouts de widget
               e
     Possibilit´ d’enregistrer et de              Ajout des dossiers sur le Home
                      e
     regarder des vid´os
                                                               e          e
                                                  Transition d’´crans anim´es
                    e
     Upload de vid´os vers Youtube et
     d’images vers picasa directement
                ee
     depuis le t´l´phone
     Un nouveau clavier avec saisie
       e
     pr´dictive




                                                                                   22 / 100
                        Organisation du module
                                     Generalite
                                           e
                                    Le Syst`me
                Fonctionnement des Applications


Donut 1.6

                                                      e
                                                  Am´lioration des recherches pour
                                                     e
                                                  int´grer les bookmarks,
                                                  l’historique, les contacts et le web
                                                            e          e
                                                  depuis l’´cran de d´marrage
                                                  Support de nouveaux protocoles
     15 Septembre 2009
                                                  de communication
     Linux Kernel 2.6.29
                                                              e
                                                  Support des ´crans en WVGA
     Nouvelle version du market
                                                    e
                                                  Am´lioration des performances
     Refonte de la camera et de la
                                                  Framework ”Gesture” disponible
     galerie (suppression multiple...)
                                                  Navigation Google Gratuite
           a
     Mise ` jour de la recherche
               e
     vocale. R´ponses plus rapides et
                  e
     meilleure int´gration (appel de
     contacts..)




                                                                                     23 / 100
                        Organisation du module
                                     Generalite
                                           e
                                    Le Syst`me
                Fonctionnement des Applications


Eclair 2.1

                                                  Support de Microsoft Exchange
                                                                     e e
                                                  Support du flash int´gr´ pour
                                                  l’appareil photo
      26 Octobre 2009                             Zoom digital
      Linux Kernel 2.6.29                           e
                                                  Am´lioration du Multitouch
      Optimisation des performance                  e
                                                  Am´lioration du clavier virtuel
      Support des ecrans de taille et de          Bluetooth 2.1
       e            e
      r´solution diff´rentes
                                                  Live Wallpapers
      Interface revue
      Nouvelle interface pour le
      navigateur et support d’ HTML5
      Nouvelle liste des contacts
         e
      Int´gration de Google Maps 3.1.2




                                                                                    24 / 100
                       Organisation du module
                                    Generalite
                                          e
                                   Le Syst`me
               Fonctionnement des Applications


Froyo 2.2


                                                      a
                                                 Mise ` jour du ”Launcher”
                                                 Support du Hotspot Wi-Fi
     20 Mai 2010                                       a                       a
                                                 Mise ` jour du Market et mise `
     Linux Kernel 2.6.32                         jour automatiques
     Am´lioration g´n´rale de l’OS
         e         e e                           Passage rapide d’un clavier d’une
     (vitesse, memoire...)                              a
                                                 langue ` une autre
     Mise en place de JIT
     Integration du moteur JavaScript
     V8 de chrome dans le navigateur
     Amelioration du support de
     Microsoft Exchange




                                                                                     25 / 100
                       Organisation du module
                                    Generalite
                                          e
                                   Le Syst`me
               Fonctionnement des Applications


Gingerbread 2.3




     Novembre 2010
     Linux Kernel 2.6.xxx
     Support des technologies NFC
     (Near Field Communication)
                  e e
     Client SIP am´ior´




                                                 26 / 100
                      Organisation du module
                                   Generalite
                                         e
                                  Le Syst`me
              Fonctionnement des Applications


HoneyComb 3.0




     e
    F´vrier 2011
          e
    Orient´ Tablette
    Prise en charge du multi-coeurs




                                                27 / 100
                    Organisation du module
                                 Generalite
                                       e
                                Le Syst`me
            Fonctionnement des Applications


Evolution des Versions


      Au 1er Novembre 2010




                                              28 / 100
                    Organisation du module
                                 Generalite
                                       e
                                Le Syst`me
            Fonctionnement des Applications


 e
R´partition des Versions

      Au 1er Novembre 2010




                                              29 / 100
                    Organisation du module
                                 Generalite
                                       e
                                Le Syst`me
            Fonctionnement des Applications


              e
Evolution des ´crans

      Au 1er Novembre 2010




                                              30 / 100
                    Organisation du module
                                 Generalite
                                       e
                                Le Syst`me
            Fonctionnement des Applications


 e              e
R´partition des ´crans

      Au 1er Novembre 2010




                                              31 / 100
                     Organisation du module
                                  Generalite
                                        e
                                 Le Syst`me
             Fonctionnement des Applications


Android Market

         e                ee
     Syst`me standard de t´l´chargement d’applications
             e
     Pas de v´rifications des applications
     Navigation laborieuse :
                e
         Par cat´gorie
                              e
         Recherche par mots cl´s
         Par gratuit / payant
     Classement enfant, adolescent, adulte...
      e                          e
     N´cessite un terminal certifi´ (camera, 3G, compas...)
     Gestion des autorisations avant l’installation
               e
     Possibilit´ de rendre payant les app.
     Des centaines de milliers d’app.


                                                             32 / 100
                    Organisation du module
                                 Generalite
                                       e
                                Le Syst`me
            Fonctionnement des Applications


Android Market



     25$ pour s’inscrire en tant que developpeur
     70% du prix revient au developpeur, 30% a Google
     Revenus via Google CheckOut
     Achat & vente possible selon les pays
     57% d’applications gratuites
     App Store : 28%
     Idem Blackberry App World, Nokia Ovi Store...




                                                        33 / 100
                     Organisation du module
                                  Generalite
                                        e
                                 Le Syst`me
             Fonctionnement des Applications


Markets Alternatifs



      AppsLib (Archos) : http://appslib.com
      AndroLib : http://www.androlib.com
      Market Samsung
      ...
                         e
      Tout a fait autoris´ par Google
      Libre de fonctionnement
                                    e
      Acces aux terminaux non certifi´s




                                               34 / 100
                    Organisation du module
                                 Generalite
                                       e
                                Le Syst`me
            Fonctionnement des Applications


Sans Market




     Via les outils du SDK
     Via des applications disponibles sur le market et la carte SD




                                                                     35 / 100
                        Organisation du module
                                     Generalite
                                           e
                                    Le Syst`me
                Fonctionnement des Applications


                  e
Environnement de d´veloppement




     Outils :
          Eclipse
          SDK Android
          ADT : Android Development Tools (plugin eclipse)
          AVD : Android Virtual Device
          ADB : Android Debug Bridge




                                                             36 / 100
                   Organisation du module
                                Generalite
                                      e
                               Le Syst`me
           Fonctionnement des Applications


              e e
Architecture G´n´rale




                                             37 / 100
                  Organisation du module
                               Generalite
                                     e
                              Le Syst`me
          Fonctionnement des Applications


Noyau Linux




                                            38 / 100
                       Organisation du module
                                    Generalite
                                          e
                                   Le Syst`me
               Fonctionnement des Applications


Noyau Linux


     Android repose sur un noyau Linux version 2.6
                          e
     Gestion de la securit´
                    e
     Gestion de la m´moire
     Gestion des processus
              e
     Gestion r´seau
     Drivers
     ...
     Ce noyaux agit comme une couche d’abstraction entre le
        e
     mat´riel et le restes des couches applicatives.



                                                              39 / 100
                     Organisation du module
                                  Generalite
                                        e
                                 Le Syst`me
             Fonctionnement des Applications


            e
Compatibilit´ Linux


             e e                   ee       e
      Noyau d´riv´ de Linux mais a ´t´ modifi´ par Google :
      Pas de systeme X-Window nativement
      Ne supporte pas toutes les libraires GNU standards
             e
      Difficult´ de porter toutes les applications (ou librairies)
      compatibles linux.
                                         e
      Mais le support de X-Window reste n´anmoins possible
                                        e
      Le Code de google n’est pas revers´ dans le noyau linux car
      Android forme un nouvel arbre de developpement.
                                       e
      En Avril 2010 Google a annonc´ qu’il allaient employer une
      e
      ´quipe pour travailler sur le systeme Linux.


                                                                    40 / 100
                  Organisation du module
                               Generalite
                                     e
                              Le Syst`me
          Fonctionnement des Applications


Android Runtime




                                            41 / 100
                    Organisation du module
                                 Generalite
                                       e
                                Le Syst`me
            Fonctionnement des Applications


Android Runtime



     Code Natif :
     Codage via le Android NDK
     JNI permet le pont entre le natif et Dalvik
               e
     Peu utilis´ sauf pour les jeux (habitude de programmeurs)
                                                    e
     Permet des gains de performance parfois. Cela d´pend de
     l’application.




                                                                 42 / 100
                    Organisation du module
                                 Generalite
                                       e
                                Le Syst`me
            Fonctionnement des Applications


Android Runtime

     DVM : Dalvik Virtual Machine
       - Ecrite par Dan Bornstein
                              e
       - Dalvik : village de pˆcheurs en islande
                                    e              e         e
       - Une sorte de JVM optimis´e pour les syst`mes limit´s en
           e
         m´moire et en puissance.
            e                                    e
       - Ex´cute les applications ”.dex” compil´s depuis le code
         automatiquement par le SDK avec l’outil ”dx”
                                 e
       - Utilise du ByteCode sp´cifique et non du ByteCode Java
                  e e                e
       - Optimis´e ´galement pour ˆtre ”multi-instance” sur un seul
         terminal.
     Aout 2010 : Oracle (Java) porte plainte envers Google pour
              e                                  e
     leur impl´mentation de Dalvik qui serait bas´ sur le code
     source de java...


                                                                      43 / 100
                       Organisation du module
                                    Generalite
                                          e
                                   Le Syst`me
               Fonctionnement des Applications


Android Runtime



     Android inclus un ensemble de librairies de base proposant
                           e                  e
     ainsi la quasi totalit´ des fonctionnalit´s disponibles dans le
     language de programmation Java.
     Chaque application sous Android utilise sa propre instance
     d’une DVM.
        -                e
            Pas de probl`me d’interaction entres les applications
        -               e e
            Espace prot´g´
        -                              e e
            Pas de risque de plantage g´n´ral
        -                   e                  e
            D’ou la necessit´ d’une VM optimis´e !




                                                                       44 / 100
                     Organisation du module
                                  Generalite
                                        e
                                 Le Syst`me
             Fonctionnement des Applications


Librairies




                                               45 / 100
                      Organisation du module
                                   Generalite
                                         e
                                  Le Syst`me
              Fonctionnement des Applications


Librairies


       Android inclus un ensemble de librairies C/C++
             e
       Utilis´es par les applications Android
                       e
       Accessibles au d´veloppeur via le SDK
       Quelques unes de ces librairies
                         e                e              e e
         - Librairie Syst`me C : une impl´mentatition d´riv´ de
                  e
           l’impl´mentation BSC des librairies standard C (libc)
         - LibWebCore : Un moteur de navigateur internet moderne
                 e
           utilis´ autant pour navigateur android que pour les vues web
              e
           int´grables
                                                             e
         - SQLite : un systeme de gestion de base de donn´es relationnel
            e
           l´ger et puissant disponible pour toutes les applications.



                                                                           46 / 100
                          Organisation du module
                                       Generalite
                                             e
                                      Le Syst`me
                  Fonctionnement des Applications


Librairies


       ...
                                             e
             - Librairies MultiMedia : bas´es sur ”PacketVideo’s
                                  e
               OpenCORE”. Int´gre le support de la lecture et de
                                                                   e
               l’enregistrement de nombreux formats audio, vid´o et image
               (MPEG4, H.264, MP3, AAC, AMR, JPG, and PNG...)
                                     e         e                        e
             - Surface Manager : g`re l’acc`s et l’affichage des diff´rentes
               vues (2D ou 3D) composant les applications
             - SGL : Le moteur de rendu pour l’imagerie 2D
                                        e               e
             - Librairie 3D : Une impl´mentation bas´e sur l’API OpenGL ES
                        e      a                e         e
               1.0. Int´grant ` la fois l’accel´ration mat´rielle (si disponible)
                       e
               et l’acc´leration logicielle.
             - FreeType : Librairie de rendu de police bitmap et vectorielles.



                                                                                    47 / 100
                   Organisation du module
                                Generalite
                                      e
                               Le Syst`me
           Fonctionnement des Applications


Framework Applicatif




                                             48 / 100
                       Organisation du module
                                    Generalite
                                          e
                                   Le Syst`me
               Fonctionnement des Applications


Framework Applicatif



     Plateforme de developpement Ouverte
        -                                        e
            Permet des application riches et vari´es
        -                e
            Acces au mat´riel
        -   Acces aux informations de localisation
        -   Lancement de services de fond
        -   Mise en place d’alarmes, de notifications
        -   ...




                                                       49 / 100
                    Organisation du module
                                 Generalite
                                       e
                                Le Syst`me
            Fonctionnement des Applications


Framework Applicatif



     Plateforme de developpement Ouverte
                                            e
     Architecture concue pour simplifier la r´utilisation des
     composants
                            e
     Publication des capacit´s des applications
                                                         e
     Les autres applications peuvent utiliser ces capacit´s
          e
     Charg´ facilement les apps.




                                                               50 / 100
                      Organisation du module
                                   Generalite
                                         e
                                  Le Syst`me
              Fonctionnement des Applications


Framework Applicatif

                            e
  Une application est compos´e d’un ensemble de services et de
      e
  syst`mes incluant :
                                              e
      Un ensemble de vues ”Views” utilis´es pour construire
      l’application (listes, grilles, zone de saisies, boutons ou encore
                           e
      navigateur web int´grable)
                                                            e
      ”Content Provider” permettant aux applications d’acc´der
               e
      aux donn´es d’autres applications (Contacts...) ou de partager
                       e
      leur propres donn´es.
      ”Resource Manager” permettant d’acceder a des ressources
                                      e
      tel que des chaines de caract`res, des images ou des ”layout”
                      e                            e
      (le tout param´trable selon de multiples crit`res : taille de
        e
      l’´cran, internationalisation...)

                                                                           51 / 100
                         Organisation du module
                                      Generalite
                                            e
                                     Le Syst`me
                 Fonctionnement des Applications


Framework Applicatif



  Mais aussi :
                                            a
      ”Notification Manager” permettant ` chaque application
                                    e e               e
      d’utliser la barre de statut g´n´rale pour y int´grer ses propres
      informations.
      ”Activity Manager” : composant qui gere le cycle de vie d’une
      application et fournit les outils de navigation applicative.




                                                                          52 / 100
                       Organisation du module
                                    Generalite
                                          e
                                   Le Syst`me
               Fonctionnement des Applications


Applications




                                                 53 / 100
                      Organisation du module
                                   Generalite
                                         e
                                  Le Syst`me
              Fonctionnement des Applications


Framework Applicatif


        e
  Derni`re couche sur Android
                    e e                e
  Plusieurs sont int´gr´es dans le syst`me :
      Ecran ”Home”
      Gestion des Emails
      Gestion des SMS/MMS
                     ee
      Gestion de la t´l´phonie
      Google Maps...
                       e
      Application suppl´mentaires installables
                                   e               e
      Toutes les applications sont ´crites via le mˆme SDK !



                                                               54 / 100
                      Organisation du module
                                   Generalite
                                         e
                                  Le Syst`me
              Fonctionnement des Applications


 e e     e
G´n´ralit´s



                            e
      Les applications sont ´crites en Java
                      e
      Le code compil´ ”dex” ainsi que les ressources (images,
                             e
      layout...) sont regroup´s dans une archive au format ”apk”
      par les outils du SDK
      Cette archive ”apk” est un tout permettant la distribution et
      l’installation de l’application sur n’importe quelle plateforme
      android.




                                                                        55 / 100
                    Organisation du module
                                 Generalite
                                       e
                                Le Syst`me
            Fonctionnement des Applications


   e
Ind´pendance
                                        e            a
     Chaque application Android est isol´ des autres ` plusieurs
     niveaux :
       - Chaque application tourne sur son propre process Linux. Ce
                             e              e
         processus est lanc´ par Android d`s qu’une partie du code
           e            e e
         n´cessite une ´x´cution et inversement tue les processus dont il
                          e
         n’a plus d’utilit´.
       - De plus chaque process utilise sa propre machine virtuelle
                                                 e
         Dalvik. Ainsi chaque application poss`de son propre
         environnement.
                                        ea
       - Chaque application est associ´ ` un unique Linux User Id.
         Ainsi les fichiers d’une application ne sont pas visibles par les
         autres applications. (mais il existe des moyens de partager ces
         ressources, par exemple via les Content Provider)
                                                                     e
       - Il est possible de forcer deux application de partager le mˆme
         user ID (et donc de partager des fichiers nativement). Il est
                                                   e
         egalement possible donc d’utiliser la mˆme VM et le mˆme  e
         processus Linux.
                                                                            56 / 100
                    Organisation du module
                                 Generalite
                                       e
                                Le Syst`me
            Fonctionnement des Applications


   e
Ind´pendance

     Un des aspect les plus important d’Android est la
      e            e
     r´utilisabilit´
       - Chaque application peut utiliser des ”morceaux d’autres
         applications” (si elle le permettent)
       - Par exemple si votre application permet de retoucher des
                                e
         photos et que vous d´sirez publier cette photo vous pouvez
                                           ea e                e
         utiliser toutes les applications d´j` pr´sentes pour r´aliser cette
          a
         tˆche (facebook, picasa, mail ...). Et sans utiliser le code de
         cette application tierce juste en appeler la partie interessante.
     Ainsi le systeme doit etre capable :
                                                 e
       - De lancer n’importe quelle partie expos´e d’une application
                                  e
         sans en lancer la totalit´
                                                               e
       - Donc les application Andoid n’ont pas de point d’entr´e global
            e                                  e   ee
         (m´thode main()). Mais sont compos´s d’´l´ments
            e                          e        e
         ind´pendants ou chacun peut ˆtre lanc´ individuellement.

                                                                               57 / 100
                        Organisation du module
                                     Generalite
                                           e
                                    Le Syst`me
                Fonctionnement des Applications


Elements Fondamentaux




     Activity
     Service
     BroadcastReceiver
     ContentProvider
     Intent




                                                  58 / 100
                       Organisation du module
                                    Generalite
                                          e
                                   Le Syst`me
               Fonctionnement des Applications


Les Activity


                  e
      Une activit´ (”Activity”) = une IHM pour une action
                    e
      utilisateur pr´cise :
                  ee
        - Liste d’´l´ments parmis lesquels l’utilisateur peut choisir
        - Affichage d’une image avec un titre
        - Affichage d’un calendrier pour choisir une date
      Exemple d’une application de SMS :
                     e
        - Une activit´ pour choisir un contact
                          e
        - Une autre pour ´crire le message
                                                e
        - Une autre pour afficher un historique d’´changes.
                    e        e
      Chaque activit´ est ind´pendante des autres
                 e
      Une activit´ doit heriter de la classe : android.app.Activity



                                                                        59 / 100
                       Organisation du module
                                    Generalite
                                          e
                                   Le Syst`me
               Fonctionnement des Applications


Les Activity




                                                    e
      Une application est donc un ensemble d’activit´s
               e                        e          ea e
      On doit d´finir quelle est la premi`re activit´ ` ex´cuter lors
      du lancement de l’application
                                                     e
      Pour naviguer dans l’application chaque activit´ doit
            e                   e
      elle-mˆme lancer l’activit´ suivante.




                                                                       60 / 100
                       Organisation du module
                                    Generalite
                                          e
                                   Le Syst`me
               Fonctionnement des Applications


Les Activity




                    e           e a         e
      Chaque activit´ est assign´e ` une fenˆtre
            e
    - Plein ´cran
    - Fenetre flottante
                 e                e
      Une activit´ peux aussi poss´der des sous fenetres
    - Pop-up ...




                                                           61 / 100
                       Organisation du module
                                    Generalite
                                          e
                                   Le Syst`me
               Fonctionnement des Applications


Les Activity


                        e      e
  Le rendu d’une activit´ est d´finit par :
      Une ou un ensemble de vues
                e
      Les vues h´ritent de la classe android.view.View
                                                             e
      Chaque vue controle une zone rectangulaire de l’activit´
                           e
      L’organisation est d´finit par un arbre de ”Layout” ou chaque
      feuille est une vue.
                                                   e
      Un grand nombre de vues standards sont propos´es
      (combobox, zone de texte, bouton...)
                e     e                         e
      Possibilit´ de d´finir des vues personnalis´es



                                                                     62 / 100
                       Organisation du module
                                    Generalite
                                          e
                                   Le Syst`me
               Fonctionnement des Applications


Les Activity



      Les layouts :
        - Agents de placement
                                       e
        - Plusieurs layouts sont propos´s en standard
                e     e
      Possibilit´ de d´finir ses propres Layout
      Les layout sont utilisable via des fichier XML ou via le code
      Java




                                                                     63 / 100
                       Organisation du module
                                    Generalite
                                          e
                                   Le Syst`me
               Fonctionnement des Applications


Les Activity
             e
      Pour r´sumer :
                                e                   e
      Une fois l’arbre de vues d´fini on utilise la m´thode suivante :
    - Activity.setContentView()




                                                                        64 / 100
                         Organisation du module
                                      Generalite
                                            e
                                     Le Syst`me
                 Fonctionnement des Applications


Service



                        e
      Un service ne poss`de pas d’interface
                    e
      Tourne en arri`re plan en continue (ou presque)
      Exemple :
          -   Lecture de musique
          -                   e                             e
              Collecte de donn´es affichables dans une activit´
          -   Suivi GPS
          -     e                 a
              V´rification de mise ` jour
          -   ...




                                                                65 / 100
                         Organisation du module
                                      Generalite
                                            e
                                     Le Syst`me
                 Fonctionnement des Applications


Service




      Lancement d’une application musicale
          -     e                     e
              D´marrage de l’activit´ de ”choix de chanson”
          -   L’utilisateur lance la musique
          -   Le service diffuse cette musique
          -                                                                   e
              L’utilisateur peut quitter l’ ”application” en fermant l’activit´
          -                          ae
              La musique continue ` ˆtre diffus´e !e




                                                                                  66 / 100
                         Organisation du module
                                      Generalite
                                            e
                                     Le Syst`me
                 Fonctionnement des Applications


Service




      Pour communiquer avec un service il faut :
                                               e          e
            - S’y connecter (il se lance si il ´tait arret´)
                                         e
            - Utiliser l’interface que pr´sente ce service
          - - Exemple : Play(), Pause(), next() ...
                     e
      Un service s’ex´cute dans un Thread et donc ne bloque pas le
      reste du terminal quand il tourne en fond.




                                                                     67 / 100
                         Organisation du module
                                      Generalite
                                            e
                                     Le Syst`me
                 Fonctionnement des Applications


Broadcast Receiver



     Les broadcast receiver sont :
          -        e                                 e e
              Des ´lements inactifs qui attendent un ´v`nement
          -              e e             e
              Il y a des ´v`nements syst`me :
      -   -   Batterie faible
      -   -   Changement de langue du syst`mee
      -   -   L’utilisateur a pris une photo
      -   -   ...
                         e                 e e
     Il est possible de d´finir ses propres ´v`nements
      e
     H´ritent de la classe android.content.BroadcastReceiver




                                                                 68 / 100
                     Organisation du module
                                  Generalite
                                        e
                                 Le Syst`me
             Fonctionnement des Applications


Broadcast Receiver



     Une application peux contenir plusieur receiver : un par
     e e
     ´v`ment important
                        e
     Les receiver n’ont ´videmment pas d’interface
                                   e
     Ils peuvent lancer des activit´s en cas de besoin
                 e
     Ils peuvent ´galement utiliser le NotificationManager pour
                             a                 ee
     signaler quelque chose ` l’utilisateur (pr´f´rable)
        - Icone, vibration, alerte sonore, clignotement diode...




                                                                   69 / 100
                     Organisation du module
                                  Generalite
                                        e
                                 Le Syst`me
             Fonctionnement des Applications


Content Provider


     Les content provider permettent de partager du contenu entre
     les applications
     Une application s’en sert pour rendre public certaines de ses
         e
     donn´es
             e                   e                     e
     Le donn´es sont donc expos´es dans une classe h´ritant de
     android.content.ContentProvider
       -   Methode query()
       -   Insert()
       -   Update()
       -   delete()...




                                                                     70 / 100
                    Organisation du module
                                 Generalite
                                       e
                                Le Syst`me
            Fonctionnement des Applications


Content Provider



                                  e                     a
     Les autres applications n’acc`dent pas directement ` la classe
     de ContentProvider
     Utilisation d’un ContentResolver qui va rediriger les requetes
     vers le provider voulu
                             a                                 e
     Si l’on tente d’acceder ` une resouce d’une application n’´tant
                       e             e
     pas en cours d’ex´cution le syst`me Android se charge de la
     lancer avant.




                                                                       71 / 100
                        Organisation du module
                                     Generalite
                                           e
                                    Le Syst`me
                Fonctionnement des Applications


Intent



                                         e              e
         Les content providers sont activ´s par une requˆte d’un
         content resolver
         Mais les 3 autres systemes (Activity, Service, BroadCast
                             e                                    e
         Receiver) sont activ´s par des messages asynchrone appell´s
         ”Intent”
                    e
         Un intent d´rive de android.content.Intent
                       e
         Un intent poss`de une action et un contenu particulier




                                                                       72 / 100
                         Organisation du module
                                      Generalite
                                            e
                                     Le Syst`me
                 Fonctionnement des Applications


Intent



                         e                                     e e
         Pour les activit´s et les services il nomme l’action d´sir´e et
           e                     e
         pr´cise l’URI des donn´es sur lesquelles agir.
            - Afficher / image
            - Editer / texte
            - ...
         Pour les broadcast receivers il se contente de nommer l’action
         a
         ` annoncer
            - Batterie faible
            - ...




                                                                           73 / 100
                         Organisation du module
                                      Generalite
                                            e
                                     Le Syst`me
                 Fonctionnement des Applications


Intent


                                   e
         Les Intents et les activit´s :
                                                     e a
            - Lancement en passant un Intent en param`tre ` une des
                e
              m´thodes suivantes :
                 * Context.startActivity()
                 * Activity.startActivityForResult()
                                 e    a
            - L’activity peut acc´der ` celui ci avec :
                 * getIntent()
                        e
            - Si le syst`me doit envoyer des nouveaux intent :
                                                       e
                 * Appel de onNewIntent() sur l’activit´
            - En cas de resultat attendu
                                                            e
                 * Appel de onActivityResult() sur l’activit´ appelante




                                                                          74 / 100
                         Organisation du module
                                      Generalite
                                            e
                                     Le Syst`me
                 Fonctionnement des Applications


Intent


         Les Intents et les services :
                                                     e a        e
            - Lancement en passant un Intent en param`tre ` la m´thode
              suivante :
                * Context.startService()
                                                 e                     e
                * Le systeme applera ensuite la m´thode onStart() en pr´cisant
                                      e
                  cet Intent en param`tre
                                                     e a        e
            - Connexion en passant un Intent en param`tre ` la m´thode
              suivante :
                * Context.bindService()
                                                  e                   e
                * Le Systeme appelera ensuite la m´thod onBind() en pr´cisant
                                     e
                  cet Intent en param`tre




                                                                                 75 / 100
                        Organisation du module
                                     Generalite
                                           e
                                    Le Syst`me
                Fonctionnement des Applications


Intent



         Les Intents et les Broadcast receiver :
                                                e e
           - Une application voulant envoyer un ´v`nement va utiliser une
                  e
             des m´thodes suivantes :
                * Context.sendBroadcast()
                * Context.sendOrderedBroadcast()
                * Context.sendStickyBroadcast()
                     e                         e
           - Le syst`me va alors appeler la m´thode onReceive() sur tous
                                        ee e                       e
             les broadcast receivers int´r´ss´s en passant en param`tre
             l’Intent.




                                                                            76 / 100
                        Organisation du module
                                     Generalite
                                           e
                                    Le Syst`me
                Fonctionnement des Applications


Intent


               e
         La cat´gorie
                                   e    e
           - Une chaine de caract`re pr´cisant quel type de composant
                   e
             peut g`rer l’intent.
                           e              e      e e
           - Plusieurs cat´gories peuvent ˆtre pr´cis´es.
           - Exemples :
                                                           e
                * CATEGORY BROWSABLE : Le contenu peut ˆtre affich´    e
                  dans le navigateur
                                                 e
                * CATEGORY HOME : L’activit´ est de type Home
                                                      e
                * CATEGORY LAUNCHER : L’activit´ est lancable par le
                                          e      e
                  launcher et donc doit y ˆtre pr´sente
                                                        e
                * CATEGORY PREFERENCE : l’activit´ est un panneau de
                    ee
                  pr´f´rences




                                                                         77 / 100
                        Organisation du module
                                     Generalite
                                           e
                                    Le Syst`me
                Fonctionnement des Applications


Intent

         Quelques exemples :
           - ACTION VIEW content://contacts/people/1 – Affiche les
             information sur le contact 1
           - ACTION DIAL content://contacts/people/1 – Affiche le mode
             d’appel rempli avec les informations du contact 1
           - ACTION VIEW tel:123 – Affiche le mode d’appel rempli avec
             ”123”. (ACTION VIEW s’adapte donc au contenu)
           - ACTION DIAL tel:123 – Idem
           - ACTION EDIT content://contacts/people/1 – Permet de
             modifier les informations du contact 1
           - ACTION VIEW content://contacts/people/ – Affiche la liste
                                                         e e
             des contacts (le choix d’un de ces contact g´n´rera un Intent
             pour afficher ce contact)


                                                                             78 / 100
                     Organisation du module
                                  Generalite
                                        e
                                 Le Syst`me
             Fonctionnement des Applications


Manifest




     Fichier XML
       e
     Pr´cise l’architecture de l’application
     Chaque application doit en avoir un
                         a
     AndroidManifest.xml ` la racine du projet




                                                 79 / 100
                     Organisation du module
                                  Generalite
                                        e
                                 Le Syst`me
             Fonctionnement des Applications


Manifest


     Contenu :
              e
         - Pr´cise le nom du package java utilisant l’application. Cela
           sert d’identifiant unique !
               e
         - Il d´crit les composants de l’application
                            e
       - - Liste des activit´s, services, broadcast receivers
              e                             e
       - - Pr´cise les classes qui les impl´mentent
              e                  e a                     e
      - - Pr´cise leurs capacit´s (` quels intents ils r´agissent)
                                 e
      - - Ceci permet au syst`me de savoir comment lancer chaque
           partie de l’application afin de satisfaire au principe de
            e            e
           r´utilisabilit´.




                                                                          80 / 100
                         Organisation du module
                                      Generalite
                                            e
                                     Le Syst`me
                 Fonctionnement des Applications


Manifest


     Contenu suite :
          -      e
              D´finit les permissions de l’application
      -   -   Droit de passer des appels
      -   -                     a
              Droit d’acceder ` Internet
      -   -   Droit d’acceder au GPS
      -   -   ...
          -       e                                   e
              Pr´cise la version d’Android minimum n´cessaire
          -      e                         e
              D´clare les librairies utilis´es
          -      e
              D´clare des outils d’Instrumentation (uniquement pour le
                e
              d´veloppement)




                                                                         81 / 100
                     Organisation du module
                                  Generalite
                                        e
                                 Le Syst`me
             Fonctionnement des Applications


Manifest


     Conventions :
                      ee
        - Seuls deux ´l´ments sont obligatoire
      - - < manifest > : contient le package, la version... Englobe tout
          le fichier
                              e
      - - < application > : d´crit l’application et contiendra la liste de
          ses composants.
                    e           e
        - Les donn´es sont pass´es en tant qu’attribut et non en tant
          que contenu
        - Tous les attributs commencent par ”android:” (sauf quelques
          un dans < manifest >)




                                                                             82 / 100
                    Organisation du module
                                 Generalite
                                       e
                                Le Syst`me
            Fonctionnement des Applications


Manifest




     Les ressources
                                     e
       - Au lieu de contenir les donn´es en tant que tel le fichier
                                   a
         manifest peut faire appel ` des ressources
       - < activityandroid : icon = ”@drawable/smallPic”... >
                               e              e
       - Ces ressources sont d´finies dans le r´pertoire ”res” de
         l’application.




                                                                     83 / 100
                       Organisation du module
                                    Generalite
                                          e
                                   Le Syst`me
               Fonctionnement des Applications


Manifest


     Permissions
                                                                        e
          - Une application ne peux pas utiliser certaines fonctionnalit´s
                            e
            sauf si il le pr´cise dans le fichier Manifest
                             e                      e               a
          - Il faut donc pr´ciser les permissions n´cessaires grace ` :
            < uses − permission >
          - Il existe des permission standard :
      -   - android.permission.CALL EMERGENCY NUMBERS
      -   - android.permission.READ OWNER DATA
      -   - android.permission.SET WALLPAPER
      -   - android.permission.DEVICE POWER
                         e
     Il est possible de d´finir ses propres permissions



                                                                             84 / 100
                      Organisation du module
                                   Generalite
                                         e
                                  Le Syst`me
              Fonctionnement des Applications


Manifest


      Intent Filter
                               a
    - Ils informent le systeme ` quelle intent les composants
                e
      peuvent r´agir
    - Un composant peut avoir plusieurs filtres
    - Editeur de texte
   - - Filtre pour editer un document existant
   - - Filtre pour initier un nouveau document
                                               e     a
    - Un filtre doit posseder une ”action” qui d´finit ` quoi il
      correspond



                                                                 85 / 100
                   Organisation du module
                                Generalite
                                      e
                               Le Syst`me
           Fonctionnement des Applications


Manifest


     Exemple




                                             86 / 100
                     Organisation du module
                                  Generalite
                                        e
                                 Le Syst`me
             Fonctionnement des Applications


Activity & Task


       e   e
      R´sum´ :
    - L’application A doit afficher une carte
          e                           e
    - A pr´pare l’intent avec les donn´es necessaires
    - A appele startActivity() avec cet intent
    - Le systeme trouve l’application B qui sait gerer cet Intent
    - L’application B affiche la carte
    - L’utilisateur ferme cette carte (bouton back)
    - L’application A reprends la main




                                                                    87 / 100
                      Organisation du module
                                   Generalite
                                         e
                                  Le Syst`me
              Fonctionnement des Applications


Activity & Task



      Du point de vue de l’utilisateur :
    - 1 seule application (A et B sont confondues)
                             e
      Du point de vue du syst`me :
    - 2 applications
    - 2 DVM
    - 2 process
         a
    - 1 Tˆche = 1 Application au sens utilisateur.




                                                     88 / 100
                      Organisation du module
                                   Generalite
                                         e
                                  Le Syst`me
              Fonctionnement des Applications


Activity & Task


           a
      Une tˆche :
                            e
    - Est une pile d’activit´s
              e                   ee       e
    - La premi`re est celle qui a ´t´ initi´e par l’utilisateur
                 e                         e
    - Les activit´s peuvent provenir de diff´rentes applications
    - L’ensemble forme un tout
                               e
   - - Mis en arriere plan en mˆme temps
   - - Remise au premier plan dans son ensemble
                          e
      Comportement par d´faut modifiable via le manifest et le tag
      ”< activity >” et ses flags



                                                                    89 / 100
                     Organisation du module
                                  Generalite
                                        e
                                 Le Syst`me
             Fonctionnement des Applications


Processus & Threads


                                                   e
     Quand le premier composant d’une application n´cessite une
       e
     ex´cution Android demarre un nouveau processus Linux pour
     gerer ce composant
                                   e
     Chaque composant peut pr´ciser dans la Manifest (via
                                          e
     l’attribut ”process”) si il doit s’ex´cuter dans un nouveau
     processus ou si il doit partager un processus existant
     Deux composant de deux applications peuvent aussi partager
         e
     le mˆme processus si :
                         e
    - Elle utilisent le mˆme Linux User ID
                     e           e          e
    - Elles sont sign´es par la mˆme autorit´



                                                                   90 / 100
                      Organisation du module
                                   Generalite
                                         e
                                  Le Syst`me
              Fonctionnement des Applications


Processus & Threads



                                          e          e
      Attentions pour les composant utilis´ dans le mˆme processus
                                e
    - Ne pas faire de longues op´rations lors des appels par le
      Systeme ( View.onKeyDown() ) sinon cela bloquera tout le
      reste des composants.
             a
    - Penser ` utiliser des Threads pour les traitements longs.
    - Utiliser la classe classique Java de Threads
    - Android fournit aussi des classes utilitaires pour simplifier
      l’utilisation des Threads




                                                                     91 / 100
                      Organisation du module
                                   Generalite
                                         e
                                  Le Syst`me
              Fonctionnement des Applications


Cycle de Vie

                 e     e         e
      Une activit´ poss`de trois ´tats :
                                        e
    - Active (running) : Quand l’activit´ est au premier plan et
      recoit les actions utilisateur.
    - Paused : Quand elle est toujours visible mais n’a pas le focus
                    e                                   e
      (autre activit´ transparente par dessus ou activit´ ne prenant
                 e
      pas tout l’´cran)
   - - Toujours vivante
                       e                        e       e
  - - Mais peut etre tu´e en cas de resources tr`s limit´es
    - Stopped : Quand elle n’est plus visible
   - - Toujours vivante
                   e e                              e e
   - - Mais sera tu´e d`s que des resources seront n´c´ssaires.

                                                                       92 / 100
                     Organisation du module
                                  Generalite
                                        e
                                 Le Syst`me
             Fonctionnement des Applications


Cycle de Vie



             e                  e
      Le syst`me tue les activit´s en etat ”stopped” (ou ”paused”)
                   e
      de deux mani`res :
                      e
    - En appelant la m´thode finish()
    - En tuant le processus tout simplement
                     e                      e
      Quand l’activit´ sera a nouveau demand´e :
           e         e
    - Doit ˆtre compl´tement reconstruite
                                                 e
    - Doit Potentiellement recharger son dernier ´tat




                                                                     93 / 100
                     Organisation du module
                                  Generalite
                                        e
                                 Le Syst`me
             Fonctionnement des Applications


Cycle de Vie


                 e          e                      e
      Une activit´ est notifi´e de ses changement d’´tat par l’appel
      a      e
      ` ses m´thodes :
    - void onCreate(Bundle savedInstanceState)
    - void onStart()
    - void onRestart()
    - void onResume()
    - void onPause()
    - void onStop()
    - void onDestroy()



                                                                      94 / 100
                     Organisation du module
                                  Generalite
                                        e
                                 Le Syst`me
             Fonctionnement des Applications


Cycle de Vie

                                            e
      Afin de sauvegarder le contexte le syst`me appele
      ”onSaveInstanceState()” avant de rendre l’application
      potentiellement tuable (paused...)
                                     e
      Cet appel fournit un bundle ”cl´/valeurs” pour que le
       e                               e
      d´veloppeur puisse sauvegarder l’´tat
      Au prochain appel de ”onCreate()” ce bundle sera fournit
             e                              a
      Il est ´galement fournit via un appel `
      ”onRestoreInstanceState()”
              a
      L’appel ` la sauvegarde n’est faite qu’en cas de risque de
                              e            e
      terminaison de l’activit´ par le syst`me et non si cela vient
      d’une action utilisateur (back)


                                                                      95 / 100
                      Organisation du module
                                   Generalite
                                         e
                                  Le Syst`me
              Fonctionnement des Applications


Hello World
       e
     Cr´er un nouveau projet :




                                                96 / 100
                       Organisation du module
                                    Generalite
                                          e
                                   Le Syst`me
               Fonctionnement des Applications


Hello World


  Organisation des dossiers :
      src : sources
                  e ee
      gen : code g´n´r´
      res : ressources
      drawable : images
      layout : layout
      values : constantes
      Manifest



                                                 97 / 100
                       Organisation du module
                                    Generalite
                                          e
                                   Le Syst`me
               Fonctionnement des Applications


Hello World


  Manifest :




                                                 98 / 100
                      Organisation du module
                                   Generalite
                                         e
                                  Le Syst`me
              Fonctionnement des Applications


Hello World


  Ressources (Layout, String, Images)
              e
      On y acc`de par ”@dossier/nom” ou ”R.dossier.nom”
      Ressources alternatives : selon la langue, le sdk, l’ecran...




                                                                      99 / 100
                      Organisation du module
                                   Generalite
                                         e
                                  Le Syst`me
              Fonctionnement des Applications


Hello World




  Ativity



                                                100 / 100
                      Organisation du module
                                   Generalite
                                         e
                                  Le Syst`me
              Fonctionnement des Applications


Hello World




    e
  Ex´cution de l’application :
             e
      Sur un ´mulateur
      Sur un terminal




                                                101 / 100

						
Other docs by YoussefBenMed
appendix1
Views: 1  |  Downloads: 0
rapport projet RSM android
Views: 14  |  Downloads: 0
appendix2
Views: 0  |  Downloads: 0
tutorial_android
Views: 8  |  Downloads: 0
Professional.Android.2.Application.Development
Views: 100  |  Downloads: 3
Polycop Android
Views: 69  |  Downloads: 0
androidcours
Views: 3  |  Downloads: 0
andbook
Views: 2  |  Downloads: 0
appendix4 (PDF)
Views: 2  |  Downloads: 0