vous présente :




Spécialiste Android Java J2EE




        Auteur du livre

disponible sur




                                   1
•Qui est Android                      •Un cas concret:
•Android et le monde de l’IT             •Projet initial
   •Invasion de la mobilité              •Le code
   •GooglePlay moteur de l’adoption      •Amélioration
   •The patents war                      •Le code
•Programmation Android                •La diversité
   •Règles                               •Multi-screens
   •Acteurs principaux du système        •Hétérogénéité
   •Structure d’un projet




                                                           2
Formateur Consultant Expert Android
                                           mathias.seguy.it@gmail.com (mail)
                                                 @android2ee (twitter)
                            Auteur d’EBooks sur la programmation Android (Android2ee.com)
                                          Conférencier et Enseignant Android
                                       Docteur en Mathématiques Fondamentales
                                Expert Technique de l'Agence Nationale de la Recherche
                                             Rédacteur sur Developpez.com
                            Blogs Android : Android2EE sur DVP et Android2ee sur BlogSpot
    Doctorat
  Mathématiques                                                                                   Naissance
  Fondamentale                              Via CapGemini                Via Sopra                Android2EE
           Siemens      Magnus       DGA         CNES       Airbus    Airbus    Airbus        STI         Android2
             VDO                                                                                            EE
     03         04          05         06          07         08          09          10        11          12
                                                                Java J2EE
                                                                                                     Android
                                     Leader      Manager   Manager               Leader      Directeur     Fondateur
                                      IHM        Leader    Leader     Manager   Technique   Technique     Android2EE
           Développeu   Développeu
                r            r                  Technique Technique

Master Informatique                                             Chez STI
 de l’ENSEEIHT

                                                                                                                       3
4
•2003 création d’Android Inc
•2005 Google acquiert Android
•2007 Création de l’Open Handset Alliance
•2007 Android Beta SDK released




  23/09/2008
  30/04/2009
  15/09/2009
  26/10/2009
  20/05/2010
  06/12/2010
  10/05/2011
  19/11/2011




                                            5
6
7
Invasion de la mobilité via les
smartphones:
Le taux de pénétration des
smartphones est exceptionnel,
tant part sa valeur actuelle que
par    la    rapidité   de    sa
progression.
• 486M de smartphones vendus
en 2011.
• 27% du parc mondial.




Android, l’OS Winner !

En quatre ans, Android est
devenu leader mondial du
système     d’exploitation des
smartphones, en terme de stock
et en terme de vente.




                                   8
GooglePlay (AndroidMarket) versus AppleStore,
                       la guerre du Market.


 •    Le nombre d’applications sur GooglePlay est en hausse
      permanente.

      •     + 17 391 % en 3 ans

      •     + 320 % en 1 an




 •    Le nombre d’applications téléchargées a pour unité le
      milliard.

      •    +500% sur 1 an

      •    10 000 000 000 de downloads !

Cette dynamique est la clef de réussite de la plateforme, le
facteur d’adoption.




                                                               9
La guerre des brevets fait rage dans les grands comptes de l’IT. Depuis
                               l’été 2011, cette guerre fait des ravages dans le monde entier. Le système
                               Android est attaqué par le trio Microsoft-Apple-Oracle et se défend:

                               Apple versus Android : La guerre froide
                               Ces deux-là se mènent une guerre non frontale: Apple attaque les
                               constructeurs et Google rachète Motorola pour 8.6B$.

                               Apple versus HTC et Samsung: La guerre des tribunaux.
                               Interdiction du GalaxyTab en Australie, plainte en Europe et aux Etats
                               Unis… (Depuis peu demande un accord « amiable » entre 5 et 15$ par
                               unité).

                               Microsoft versus Android: La guerre des gangs.
                               Microsoft a su imposer une redevance (5$) à Samsung et à HTC pour
                               chaque unité Android vendue.

                               Oracle Versus Android : l’open-guerre
                               Quand l’open source fait la guerre à
                               l’open source…
                               Plainte déposée par Oracle en 2010 (le procès
                               Est en cours… à suivre).




Vidyanand Kamat/Forbes India




                                                                                                            10
11
Respecter ses données,
    Respecter sa confidentialité.



   Respecter le CPU,
   Respecter la batterie,
   Respecter la mémoire.


Respecter la charte graphique Android,
Respecter les bonnes pratiques du système.
…

                                              12
: Ce sont les programmes vu par l’utilisateur.                      : Les services ont une durée de vie potentiellement
Ils possèdent une I.H.M.                                           infinie (contrairement aux activités et aux fournisseurs de
                                                                   données). Ce sont des processus qui tournent dans la
             : Ils offrent un niveau d’abstraction                 même Thread que l’application sans IHM.
pour l’accès à toutes les données stockées sur                         : Ce sont des messages systèmes qui servent de
le terminal. Les données sont identifiées au                       support événementiel pour permettre le dialogue entre
moyen d’URI (Unified Ressources Identifier).                       applications. On répond et on envoie des intentions qui
                                                                   lancent ou communiquent avec les activités.


                                      Listen                                               Service
                        Listen
                                    BroadCastReceiver                 Bind
                                                   Activity


                                   StartActivity                    ContentResolver.action(URI,…)


                                                                CRUD
                                                              operation
                                                               return
                                                                                            URI
                                                       ContentProvider
                                   Send
                          Intent                                          Find ContentProvider


                                                                                                                                 13
Un projet Android simple contient les dossiers:
          pour les sources Java
          pour les sources générées à partir du dossier res
         pour les dossiers de ressources:
                                 pour les images
                            pour la définition des composants graphiques
                             pour les chaînes de caractères

ainsi que le fichier                          qui est le centre névralgique de votre
      application. Il décrit les besoins de votre application, en termes de SDK, de
      compatibilité matérielle, d’API utilisées et d’utilisation de services du
      système. Il décrit ce qu’offre votre application au système (Activity,
      ContentProvider, Service…), et les éléments auxquels votre application
      réagit au moyen des IntentFilters et d’URI ainsi que les permissions
      nécessaire pour les utiliser.




                                                                                       14
15
Cette application permet d’ajouter des items à une liste d’items.
Il y a :
   •     Un titre
   •     Une zone d’édition
   •     Un bouton Ajouter
   •     Une liste contenant les éléments ajouter

Allons voir le projet:
   •    Le fichier des layouts qui définit l’IHM,
   •    La classe Java
   •    Le fichier Manifest




                                                                    16
On obtient simplement cette application, en ajoutant à l’application précédente:
  •     Une gestion des couleurs
  •     Une gestion des dimensions
  •     Une gestion de la forme des éléments graphiques
  •     Une gestion des styles

Allons voir le fichier:
  •     Des dimensions et celui des couleurs
  •     Des styles
  •     Des formes




                                                                               17
18
Le problème est simple : 4 densités d’écran différentes pour 4 tailles d’écran différentes soit 16 configurations.
Il faut alors:
•Définir les composants dans des tailles indépendantes de la densité de l’écran;
•Définir pour chaque image, 4 tailles d’image différentes (3|4|6|8);
•Définir des layouts différents en fonction des tailles des écrans.



                                                                                                      LDPI      MDPI        HDPI       XHDPI
                   LDPI               MDPI              HDPI             XHDPI                      ≈120DPI    ≈160DPI     ≈240DPI    ≈320DPI
                 ≈120DPI             ≈160DPI           ≈240DPI          ≈320DPI          Small
                                                                                                     1.7%                   2.4%
                                                                                        Screen
   Small
                QVGA (240×320)                              480x640                    Normal
                                                                                                     0.7%       18.5%       66.3%      2.5%
  Screen                                                                               Screen
                 WQVGA400                                                                Large
  Normal         (240×400)          HVGA (320×480)
                                                     WVGA800(480×800)
                                                                                        Screen
                                                                                                     0.2%       2.8%
                                                     WVGA854(480×854)    640x960
                 WQVGA432              HTC-GI
  Screen         (240×432)
                                                        600x1024
                                                                                      Extra Large
                                                                                                                4.9%
                 WVGA800**            WVGA800*                                          Screen
   Large         (480x800)            (480×800)           TV720p          TV1080p
                 WVGA854**            WVGA854*          (1280×720)      (1980×1080)                     http://developer.android.co
  Screen          (480x854)           (480×854)                                                         m/resources/dashboard/scr
                                                                                                                 eens.html
Extra Large                       WXGA (1280×800)       1536x1152       2048x1536
                  1024x600           1024x768           1920x1152       2560x1536
  Screen                            1280x768            1920x1200       2560x1600

                              http://developer.android.co
                              m/guide/practices/screens_
                                      support.html
Exemple:
480*800 HDPI GalaxySII
1280*800 Galaxy Note WXGA
1024*600 WSVGA Galaxy Tab



                                                                                                                                                19
L’hétérogénéité des versions et des appareils génère la problématique rencontrée par les développeurs pour couvrir
     l’ensemble des versions du système, des appareils du marché, avec une même application, un même code…

C’est l’enfer :
      •  De l’apprentissage des nouvelles API, des bonnes pratiques qui s’enchainent,
      •  De la mise à jour des applications existantes, des tests et des refactoring…
      •  Des bugs spécifiques à un appareil, à une version…
      •  De la complexité du code qui s’envole pour couvrir tous les cas.

Effectivement, c’est l’horreur surtout depuis la rupture HoneyComb.


D’un autre côté, c’est la conséquence directe:
  •  De l’adoption d’Android par un grands nombre de constructeurs,
  •  Du dynamisme des développeurs Google du SDK d’Android qui cherchent à atteindre la perfection.

Alors arrêtons de nous plaindre. C’est une opportunité, sachons en profiter.




                             http://developer.android.com/resourc
                             es/dashboard/platform-versions.html


                                                                                                                 20
21
Aujourd’hui Android envahit la téléphonie mobile.
Demain, Android sera partout: téléphone, tablette, télévision, montres, chaine Hifi, voiture, électroménager, domotique ….
Partout, vous dis-je.




                                                                                                                             22
Cette conférence utilise les références suivantes:
           •    Les EBooks et tutoriels d’Android2ee : http://www.android2ee.com
           •    Les sites de référence Android:
                     •  http://developer.android.com/index.html
                     •  http://android-developers.blogspot.fr/
                     •  http://www.google.com/events/io/2011/sessions.html
           •    La charte graphique Android (Android Design): http://developer.android.com/design/index.html

Sur Android2ee, vous trouverez les tutoriels libres suivants pour approfondir les notions présentées:
                    • Les capteurs
                    • Les thread de traitement (Handler et fuite mémoire)
                    • Les AppWidgets
                    • Construction dynamique d’IHM
                    • Service REST
                    • Lecteur de flux RSS
                    • Le fichier POM pour mavéniser vos projets
                    • Comment préparer ses livraisons sur GooglePlay

Sur developpez.com vous trouverez les articles suivants:
                    •Déployer son application Android et obtenir sa clef MapView.
                    •Construire dynamiquement ses IHM Android
                    •Les capteurs Android
                    •Thread, Handler, AsyncTask et fuites mémoires
                    •Investir l'écran d'accueil Android avec les AppWidgets
                    •Android, Livrer son projet sur GooglePlay




                                                                                                               23
.




                                 Merci pour votre attention.


                                     android2ee.com.           Et rendez-vous à :
                                       #android2ee             L’Eclipse Day Toulouse le
                                                               24 Mai
                                mathias.seguy.it@gmail.com     Ou à Brazzaville
MySensors, MyLight et MyTorch                                  En Septembre
  disponible sur GooglePlay

                                                                                           24

CocoaHeads An Android Overview (fr)

  • 1.
    vous présente : SpécialisteAndroid Java J2EE Auteur du livre disponible sur 1
  • 2.
    •Qui est Android •Un cas concret: •Android et le monde de l’IT •Projet initial •Invasion de la mobilité •Le code •GooglePlay moteur de l’adoption •Amélioration •The patents war •Le code •Programmation Android •La diversité •Règles •Multi-screens •Acteurs principaux du système •Hétérogénéité •Structure d’un projet 2
  • 3.
    Formateur Consultant ExpertAndroid mathias.seguy.it@gmail.com (mail) @android2ee (twitter) Auteur d’EBooks sur la programmation Android (Android2ee.com) Conférencier et Enseignant Android Docteur en Mathématiques Fondamentales Expert Technique de l'Agence Nationale de la Recherche Rédacteur sur Developpez.com Blogs Android : Android2EE sur DVP et Android2ee sur BlogSpot Doctorat Mathématiques Naissance Fondamentale Via CapGemini Via Sopra Android2EE Siemens Magnus DGA CNES Airbus Airbus Airbus STI Android2 VDO EE 03 04 05 06 07 08 09 10 11 12 Java J2EE Android Leader Manager Manager Leader Directeur Fondateur IHM Leader Leader Manager Technique Technique Android2EE Développeu Développeu r r Technique Technique Master Informatique Chez STI de l’ENSEEIHT 3
  • 4.
  • 5.
    •2003 création d’AndroidInc •2005 Google acquiert Android •2007 Création de l’Open Handset Alliance •2007 Android Beta SDK released 23/09/2008 30/04/2009 15/09/2009 26/10/2009 20/05/2010 06/12/2010 10/05/2011 19/11/2011 5
  • 6.
  • 7.
  • 8.
    Invasion de lamobilité via les smartphones: Le taux de pénétration des smartphones est exceptionnel, tant part sa valeur actuelle que par la rapidité de sa progression. • 486M de smartphones vendus en 2011. • 27% du parc mondial. Android, l’OS Winner ! En quatre ans, Android est devenu leader mondial du système d’exploitation des smartphones, en terme de stock et en terme de vente. 8
  • 9.
    GooglePlay (AndroidMarket) versusAppleStore, la guerre du Market. • Le nombre d’applications sur GooglePlay est en hausse permanente. • + 17 391 % en 3 ans • + 320 % en 1 an • Le nombre d’applications téléchargées a pour unité le milliard. • +500% sur 1 an • 10 000 000 000 de downloads ! Cette dynamique est la clef de réussite de la plateforme, le facteur d’adoption. 9
  • 10.
    La guerre desbrevets fait rage dans les grands comptes de l’IT. Depuis l’été 2011, cette guerre fait des ravages dans le monde entier. Le système Android est attaqué par le trio Microsoft-Apple-Oracle et se défend: Apple versus Android : La guerre froide Ces deux-là se mènent une guerre non frontale: Apple attaque les constructeurs et Google rachète Motorola pour 8.6B$. Apple versus HTC et Samsung: La guerre des tribunaux. Interdiction du GalaxyTab en Australie, plainte en Europe et aux Etats Unis… (Depuis peu demande un accord « amiable » entre 5 et 15$ par unité). Microsoft versus Android: La guerre des gangs. Microsoft a su imposer une redevance (5$) à Samsung et à HTC pour chaque unité Android vendue. Oracle Versus Android : l’open-guerre Quand l’open source fait la guerre à l’open source… Plainte déposée par Oracle en 2010 (le procès Est en cours… à suivre). Vidyanand Kamat/Forbes India 10
  • 11.
  • 12.
    Respecter ses données, Respecter sa confidentialité. Respecter le CPU, Respecter la batterie, Respecter la mémoire. Respecter la charte graphique Android, Respecter les bonnes pratiques du système. … 12
  • 13.
    : Ce sontles programmes vu par l’utilisateur. : Les services ont une durée de vie potentiellement Ils possèdent une I.H.M. infinie (contrairement aux activités et aux fournisseurs de données). Ce sont des processus qui tournent dans la : Ils offrent un niveau d’abstraction même Thread que l’application sans IHM. pour l’accès à toutes les données stockées sur : Ce sont des messages systèmes qui servent de le terminal. Les données sont identifiées au support événementiel pour permettre le dialogue entre moyen d’URI (Unified Ressources Identifier). applications. On répond et on envoie des intentions qui lancent ou communiquent avec les activités. Listen Service Listen BroadCastReceiver Bind Activity StartActivity ContentResolver.action(URI,…) CRUD operation return URI ContentProvider Send Intent Find ContentProvider 13
  • 14.
    Un projet Androidsimple contient les dossiers: pour les sources Java pour les sources générées à partir du dossier res pour les dossiers de ressources: pour les images pour la définition des composants graphiques pour les chaînes de caractères ainsi que le fichier qui est le centre névralgique de votre application. Il décrit les besoins de votre application, en termes de SDK, de compatibilité matérielle, d’API utilisées et d’utilisation de services du système. Il décrit ce qu’offre votre application au système (Activity, ContentProvider, Service…), et les éléments auxquels votre application réagit au moyen des IntentFilters et d’URI ainsi que les permissions nécessaire pour les utiliser. 14
  • 15.
  • 16.
    Cette application permetd’ajouter des items à une liste d’items. Il y a : • Un titre • Une zone d’édition • Un bouton Ajouter • Une liste contenant les éléments ajouter Allons voir le projet: • Le fichier des layouts qui définit l’IHM, • La classe Java • Le fichier Manifest 16
  • 17.
    On obtient simplementcette application, en ajoutant à l’application précédente: • Une gestion des couleurs • Une gestion des dimensions • Une gestion de la forme des éléments graphiques • Une gestion des styles Allons voir le fichier: • Des dimensions et celui des couleurs • Des styles • Des formes 17
  • 18.
  • 19.
    Le problème estsimple : 4 densités d’écran différentes pour 4 tailles d’écran différentes soit 16 configurations. Il faut alors: •Définir les composants dans des tailles indépendantes de la densité de l’écran; •Définir pour chaque image, 4 tailles d’image différentes (3|4|6|8); •Définir des layouts différents en fonction des tailles des écrans. LDPI MDPI HDPI XHDPI LDPI MDPI HDPI XHDPI ≈120DPI ≈160DPI ≈240DPI ≈320DPI ≈120DPI ≈160DPI ≈240DPI ≈320DPI Small 1.7% 2.4% Screen Small QVGA (240×320) 480x640 Normal 0.7% 18.5% 66.3% 2.5% Screen Screen WQVGA400 Large Normal (240×400) HVGA (320×480) WVGA800(480×800) Screen 0.2% 2.8% WVGA854(480×854) 640x960 WQVGA432 HTC-GI Screen (240×432) 600x1024 Extra Large 4.9% WVGA800** WVGA800* Screen Large (480x800) (480×800) TV720p TV1080p WVGA854** WVGA854* (1280×720) (1980×1080) http://developer.android.co Screen (480x854) (480×854) m/resources/dashboard/scr eens.html Extra Large WXGA (1280×800) 1536x1152 2048x1536 1024x600 1024x768 1920x1152 2560x1536 Screen 1280x768 1920x1200 2560x1600 http://developer.android.co m/guide/practices/screens_ support.html Exemple: 480*800 HDPI GalaxySII 1280*800 Galaxy Note WXGA 1024*600 WSVGA Galaxy Tab 19
  • 20.
    L’hétérogénéité des versionset des appareils génère la problématique rencontrée par les développeurs pour couvrir l’ensemble des versions du système, des appareils du marché, avec une même application, un même code… C’est l’enfer : • De l’apprentissage des nouvelles API, des bonnes pratiques qui s’enchainent, • De la mise à jour des applications existantes, des tests et des refactoring… • Des bugs spécifiques à un appareil, à une version… • De la complexité du code qui s’envole pour couvrir tous les cas. Effectivement, c’est l’horreur surtout depuis la rupture HoneyComb. D’un autre côté, c’est la conséquence directe: • De l’adoption d’Android par un grands nombre de constructeurs, • Du dynamisme des développeurs Google du SDK d’Android qui cherchent à atteindre la perfection. Alors arrêtons de nous plaindre. C’est une opportunité, sachons en profiter. http://developer.android.com/resourc es/dashboard/platform-versions.html 20
  • 21.
  • 22.
    Aujourd’hui Android envahitla téléphonie mobile. Demain, Android sera partout: téléphone, tablette, télévision, montres, chaine Hifi, voiture, électroménager, domotique …. Partout, vous dis-je. 22
  • 23.
    Cette conférence utiliseles références suivantes: • Les EBooks et tutoriels d’Android2ee : http://www.android2ee.com • Les sites de référence Android: • http://developer.android.com/index.html • http://android-developers.blogspot.fr/ • http://www.google.com/events/io/2011/sessions.html • La charte graphique Android (Android Design): http://developer.android.com/design/index.html Sur Android2ee, vous trouverez les tutoriels libres suivants pour approfondir les notions présentées: • Les capteurs • Les thread de traitement (Handler et fuite mémoire) • Les AppWidgets • Construction dynamique d’IHM • Service REST • Lecteur de flux RSS • Le fichier POM pour mavéniser vos projets • Comment préparer ses livraisons sur GooglePlay Sur developpez.com vous trouverez les articles suivants: •Déployer son application Android et obtenir sa clef MapView. •Construire dynamiquement ses IHM Android •Les capteurs Android •Thread, Handler, AsyncTask et fuites mémoires •Investir l'écran d'accueil Android avec les AppWidgets •Android, Livrer son projet sur GooglePlay 23
  • 24.
    . Merci pour votre attention. android2ee.com. Et rendez-vous à : #android2ee L’Eclipse Day Toulouse le 24 Mai mathias.seguy.it@gmail.com Ou à Brazzaville MySensors, MyLight et MyTorch En Septembre disponible sur GooglePlay 24