Android

Document Sample
Android Powered By Docstoc
					Android : Architecture - Compilation - Debug                            1 / 31




                                               Android :
                        Architecture - Compilation - Debug

                                                          e      e
                              Sylvain Jubertie - Universit´ d’Orl´ans


                                                2011-2012
Android : Architecture - Compilation - Debug   2 / 31




       1 Installation des outils


       2 Creation d’un projet


       3 Compilation d’un projet


       4 Installation d’une application


       5 Debugging


       6 Distribution
Android : Architecture - Compilation - Debug   3 / 31
   Installation des outils




        1 Installation des outils


        2 Creation d’un projet


        3 Compilation d’un projet


        4 Installation d’une application


        5 Debugging


        6 Distribution
Android : Architecture - Compilation - Debug                       4 / 31
   Installation des outils




       Installation du SDK et du NDK
           1     ee
                T´l´charger les archives suivantes :
                         Android SDK : Software Development Kit
                         Android NDK : Native Development Kit
                a
                ` partir du site http://developer.android.com
           2     e
                d´compresser les archives
           3           a
                mettre ` jour la variable d’environnement PATH :
                PATH=$PATH:path_to_android-sdk/tools: \
                path_to_android-sdk/platform-tools: \
                path_to_android-ndk


       Attention
                                                e
       Ces archives ne sont pas suffisantes pour d´velopper !
Android : Architecture - Compilation - Debug                                  5 / 31
   Installation des outils




       Installation des plateformes
                   e                                    e
       Chaque d´veloppement pour une version d’Android n´cessite
       l’installation de la plateforme correspondante :
           1    lancer la commande android
           2    dans la rubrique Available packages choisir les plateformes
                               a
                Android cibles ` installer : SDK Platform, samples, doc
Android : Architecture - Compilation - Debug                       6 / 31
   Installation des outils




       Emulateur
                         e             e    e
       Le SDK fournit un ´mulateur de p´riph´rique Android
       configurable :
                version d’Android
                               e
                dimension de l’´cran
                        e
                taille m´moire
                            e    e
                support de p´riph´riques
                ...
                                 e
       Une configuration pour cet ´mulateur est se nomme un AVD :
       Android Virtual Device.
Android : Architecture - Compilation - Debug                           7 / 31
   Installation des outils




         e
       Cr´ation d’un AVD Android Virtual Device
       Dans la rubrique Virtual devices, choisir New... et configurer
       un AVD : nom, version d’Android (Target), . . .




                  ee             e        e
       Une fois cr´´, l’AVD peut ˆtre lanc´ par Start...
Android : Architecture - Compilation - Debug   8 / 31
   Installation des outils
Android : Architecture - Compilation - Debug                   9 / 31
   Installation des outils




             e
       Inconv´nient
         e                 e
       L’´mulateur est extrˆmement lent !
       Plus loin : test/debuggage directement sur le device.
Android : Architecture - Compilation - Debug   10 / 31
   Creation d’un projet




       1 Installation des outils


       2 Creation d’un projet


       3 Compilation d’un projet


       4 Installation d’une application


       5 Debugging


       6 Distribution
Android : Architecture - Compilation - Debug                                     11 / 31
   Creation d’un projet
     Choix de la plateforme cible



       Choix de la plateforme cible
                        ee                                       e
       Un projet est cr´´ pour une cible parmi les cibles install´es. La liste
       des cibles s’obtient par la commande : android list targets

       Exemple

       $ android list targets
       Available Android targets:
       id: 1 or "android-13"
            Name: Android 3.2
            Type: Platform
            API level: 13
            Revision: 1
            Skins: WXGA (default)
Android : Architecture - Compilation - Debug   12 / 31
   Creation d’un projet
     Application




         e
       Cr´ation d’un projet
       Dans un nouveau dossier :

       android create project \
       --target <target_ID> \
       --name <project_name> \
       --path path/to/your/project \
       --activity <activity_name> \
       --package <package_namespace>
Android : Architecture - Compilation - Debug                              13 / 31
   Creation d’un projet
     Application




       Arborescence d’un projet
                  ee                               e
       Dossiers cr´´s automatiquement lors de la cr´ation d’un projet :
                               e ee
               bin : binaires g´n´r´s
                              e
               libs : biblioth`ques
               res : fichiers de ressources (icones, layout, . . . )
               src : fichiers sources (code Java)
Android : Architecture - Compilation - Debug                                 14 / 31
   Creation d’un projet
     Application




                 e ee
       Fichiers g´n´r´s
                                   ee                               e
       Les fichiers suivants sont cr´´s automatiquement lors de la cr´ation
       d’un projet :
               AndroidManifest.xml
               build.properties
               build.xml
               default.properties
               local.properties
               proguard.cfg
Android : Architecture - Compilation - Debug                         15 / 31
   Creation d’un projet
     Application




       Modification d’un projet
       En cas de modification du nom d’un projet, de la cible ou du
       chemin :
      android update p r o j e c t \
      −−name <y o u r p r o j e c t n a m e > \
      −−t a r g e t <t a r g e t I D > \
      −−p a t h p a t h / t o / y o u r / p r o j e c t
Android : Architecture - Compilation - Debug                16 / 31
   Creation d’un projet
             e
     Biblioth`que




         e                    e
       Cr´ation d’une biblioth`que
              e             a
       De mani`re similaire ` un projet standard :

       android create lib-project --name <your_project_name> \
       --target <target_ID> \
       --path path/to/your/project \
       --package <your_library_package_namespace>
Android : Architecture - Compilation - Debug                             17 / 31
   Creation d’un projet
        e
     Int´gration de code natif




          e
       Int´gration de code natif

               repose sur JNI Java Native Interface
               supporte les jeux d’instructions : ARMv5TE, ARMv7-A,x86
                e                       e
               r´utilisation de biblioth`ques C/C++
                 e
               am´lioration de performance sur des codes de calculs
               OpenGL
               NEON
                         a             e
               attention ` la gestion m´moire !
Android : Architecture - Compilation - Debug                                18 / 31
   Creation d’un projet
        e
     Int´gration de code natif


                        e
       Principe de l’int´gration de code natif

           1   Ecrire un code natif C/C++ + wrapper JNI
           2                                 e                       e
               Le code natif C/C++ est compil´ sous forme de biblioth`que
               dynamique .so
           3               e         e ee                     e e
               Une biblioth`que est g´n´r´e par architecture d´sir´e
           4                     e                 e e a
               Le ou les biblioth`ques .so sont int´gr´es ` l’application
               Android
           5              e                          e      a
               La biblioth`que correspondant au mat´riel et ` la
                                    e              o
               configuration du syst`me Android hˆte est automatiquement
                    e                  a     e
               appel´e lors de l’appel ` la m´thode native

       Implications

               Augmentation de la taille de l’application
                              e         e ee
               Si une biblioth`que est g´n´r´e pour le jeu ARMv7-A,
Android : Architecture - Compilation - Debug                                   19 / 31
   Creation d’un projet
        e
     Int´gration de code natif




          e
       Int´gration dans un projet Android

           1     e                  a
               Cr´er un dossier jni ` la racine du projet, puis dans ce
               dossier,
           2   placer les fichiers C/C++
           3     e
               cr´er un fichier Android.mk (fichier Makefile) qui permettra
                   e e               e
               de g´n´rer la biblioth`que
           4                                         e
               Dans le code Java de l’application, cr´er un wrapper vers les
                                              e
               fonctions natives (partie abord´e plus tard)
Android : Architecture - Compilation - Debug   20 / 31
   Compilation d’un projet




       1 Installation des outils


       2 Creation d’un projet


       3 Compilation d’un projet


       4 Installation d’une application


       5 Debugging


       6 Distribution
Android : Architecture - Compilation - Debug   21 / 31
   Compilation d’un projet
Android : Architecture - Compilation - Debug                                     22 / 31
   Compilation d’un projet




       Etapes et commandes pour la compilation

          1                           e       e e                      e
               Si du code natif est pr´sent, g´n´rer la ou les biblioth`ques :
               ndk-build
                           e              e
               Les biblioth`ques sont plac´es dans un sous-dossier du dossier
               lib
          2                               e e
               Compiler le code Java et g´n´rer un package .apk :
               ant {debug | release}
                                                         e e
               Choisir debug ou release suivant le mode d´sir´
Android : Architecture - Compilation - Debug                                   23 / 31
   Compilation d’un projet




       Modes de compilation

                                                             e             e
               debug : l’application est automatiquement sign´e avec une cl´
               de debug connue
                                                     e
               release : l’application n’est pas sign´e
                                     e
       Le mode debug permet de d´ployer rapidement une application lors
       de la phase de debug.
       Le mode release indique que l’on souhaite diffuser l’application
        e ee                  e        e             e     e
       g´n´r´e qui doit alors ˆtre sign´e avec une cl´ priv´e (cf section
       Distribution).
Android : Architecture - Compilation - Debug                             24 / 31
   Compilation d’un projet




       Explications sur l’alignement
                e
       Pour am´liorer les performances des applications il convient
                                       e       e
       d’aligner correctement les donn´es en m´moire pour diminuer le
       nombre de lecture.
                              e          e               e          e
       Cette contrainte est li´e au bus m´moire qui acc`de aux donn´es
                        u                 e e
       par blocs contig¨s de 32 bits (en g´n´ral) soit 4 octets.

       Alignement de l’application
       Pour aligner sur 4 octets, utiliser la commande :
       zipalign -v 4 unsigned.apk signed.apk
Android : Architecture - Compilation - Debug   25 / 31
   Installation d’une application




       1 Installation des outils


       2 Creation d’un projet


       3 Compilation d’un projet


       4 Installation d’une application


       5 Debugging


       6 Distribution
Android : Architecture - Compilation - Debug                                  26 / 31
   Installation d’une application




       Installation
                                  e                          e     a
       Une application est install´e sur un AVD ou sur un mat´riel ` l’aide
       de la commande :
       adb install <package>.apk

                              e
       Si plusieurs AVD ou mat´riels
                                                              e
       Il est possible d’utiliser les options -s et -d pour sp´cifier
                                                          e     e
       respectivement les identifiants de l’AVD ou du p´riph´rique cible.
Android : Architecture - Compilation - Debug   27 / 31
   Installation d’une application




                  e    e
       Liste des p´riph´riques
       adb devices
Android : Architecture - Compilation - Debug   28 / 31
   Debugging




       1 Installation des outils


       2 Creation d’un projet


       3 Compilation d’un projet


       4 Installation d’une application


       5 Debugging


       6 Distribution
Android : Architecture - Compilation - Debug                   29 / 31
   Debugging




       ADB Android Debug Bridge
       L’outil en ligne de commande adb permet d’obtenir des
       informations de debuggage.
Android : Architecture - Compilation - Debug   30 / 31
   Distribution




       1 Installation des outils


       2 Creation d’un projet


       3 Compilation d’un projet


       4 Installation d’une application


       5 Debugging


       6 Distribution
Android : Architecture - Compilation - Debug                  31 / 31
   Distribution




        e e               e
       G´n´ration d’une cl´
       keytool -genkey -v -keystore path to keystore -alias
       rkey -keyalg RSA -keysize ... -validity ...

       Signature
       jarsigner -verbose -keystore path to keystore
       -signedjar signed.apk unsigned.apk rkey

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:3
posted:1/20/2013
language:Latin
pages:31