Vous êtes sur la page 1sur 31

Android : Architecture - Compilation - Debug

1 / 31

Android :
Architecture - Compilation - Debug
Sylvain Jubertie - Universit dOrlans e e

2011-2012

Android : Architecture - Compilation - Debug

2 / 31

1 Installation des outils 2 Creation dun projet 3 Compilation dun projet 4 Installation dune application 5 Debugging 6 Distribution

Android : Architecture - Compilation - Debug Installation des outils

3 / 31

1 Installation des outils 2 Creation dun projet 3 Compilation dun projet 4 Installation dune application 5 Debugging 6 Distribution

Android : Architecture - Compilation - Debug Installation des outils

4 / 31

Installation du SDK et du NDK


1

Tlcharger les archives suivantes : ee


Android SDK : Software Development Kit Android NDK : Native Development Kit

` partir du site http://developer.android.com a


2 3

dcompresser les archives e mettre ` jour la variable denvironnement PATH : a PATH=$PATH:path_to_android-sdk/tools: \ path_to_android-sdk/platform-tools: \ path_to_android-ndk

Attention Ces archives ne sont pas susantes pour dvelopper ! e

Android : Architecture - Compilation - Debug Installation des outils

5 / 31

Installation des plateformes Chaque dveloppement pour une version dAndroid ncessite e e linstallation de la plateforme correspondante :
1 2

lancer la commande android dans la rubrique Available packages choisir les plateformes Android cibles ` installer : SDK Platform, samples, doc a

Android : Architecture - Compilation - Debug Installation des outils

6 / 31

Emulateur Le SDK fournit un mulateur de priphrique Android e e e congurable : version dAndroid dimension de lcran e taille mmoire e support de priphriques e e ... Une conguration pour cet mulateur est se nomme un AVD : e Android Virtual Device.

Android : Architecture - Compilation - Debug Installation des outils

7 / 31

Cration dun AVD Android Virtual Device e Dans la rubrique Virtual devices, choisir New... et congurer un AVD : nom, version dAndroid (Target), . . .

Une fois cr, lAVD peut tre lanc par Start... ee e e

Android : Architecture - Compilation - Debug Installation des outils

8 / 31

Android : Architecture - Compilation - Debug Installation des outils

9 / 31

Inconvnient e Lmulateur est extrmement lent ! e e Plus loin : test/debuggage directement sur le device.

Android : Architecture - Compilation - Debug Creation dun projet

10 / 31

1 Installation des outils 2 Creation dun projet 3 Compilation dun projet 4 Installation dune application 5 Debugging 6 Distribution

Android : Architecture - Compilation - Debug Creation dun projet Choix de la plateforme cible

11 / 31

Choix de la plateforme cible Un projet est cr pour une cible parmi les cibles installes. La liste ee e des cibles sobtient 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 Creation dun projet Application

12 / 31

Cration dun projet e 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 Creation dun projet Application

13 / 31

Arborescence dun projet Dossiers crs automatiquement lors de la cration dun projet : ee e bin : binaires gnrs e ee libs : biblioth`ques e res : chiers de ressources (icones, layout, . . . ) src : chiers sources (code Java)

Android : Architecture - Compilation - Debug Creation dun projet Application

14 / 31

Fichiers gnrs e ee Les chiers suivants sont crs automatiquement lors de la cration ee e dun projet : AndroidManifest.xml build.properties build.xml default.properties local.properties proguard.cfg

Android : Architecture - Compilation - Debug Creation dun projet Application

15 / 31

Modication dun projet En cas de modication du nom dun 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 Creation dun projet Biblioth`que e

16 / 31

Cration dune biblioth`que e e De mani`re similaire ` un projet standard : e a 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 Creation dun projet Intgration de code natif e

17 / 31

Intgration de code natif e repose sur JNI Java Native Interface supporte les jeux dinstructions : ARMv5TE, ARMv7-A,x86 rutilisation de biblioth`ques C/C++ e e amlioration de performance sur des codes de calculs e OpenGL NEON attention ` la gestion mmoire ! a e

Android : Architecture - Compilation - Debug Creation dun projet Intgration de code natif e

18 / 31

Principe de lintgration de code natif e


1 2

Ecrire un code natif C/C++ + wrapper JNI Le code natif C/C++ est compil sous forme de biblioth`que e e dynamique .so Une biblioth`que est gnre par architecture dsire e e ee e e Le ou les biblioth`ques .so sont intgres ` lapplication e e e a Android La biblioth`que correspondant au matriel et ` la e e a conguration du syst`me Android hte est automatiquement e o appele lors de lappel ` la mthode native e a e

3 4

Implications Augmentation de la taille de lapplication Si une biblioth`que est gnre pour le jeu ARMv7-A, e e ee

Android : Architecture - Compilation - Debug Creation dun projet Intgration de code natif e

19 / 31

Intgration dans un projet Android e


1

Crer un dossier jni ` la racine du projet, puis dans ce e a dossier, placer les chiers C/C++ crer un chier Android.mk (chier Makele) qui permettra e de gnrer la biblioth`que e e e Dans le code Java de lapplication, crer un wrapper vers les e fonctions natives (partie aborde plus tard) e

2 3

Android : Architecture - Compilation - Debug Compilation dun projet

20 / 31

1 Installation des outils 2 Creation dun projet 3 Compilation dun projet 4 Installation dune application 5 Debugging 6 Distribution

Android : Architecture - Compilation - Debug Compilation dun projet

21 / 31

Android : Architecture - Compilation - Debug Compilation dun projet

22 / 31

Etapes et commandes pour la compilation


1

Si du code natif est prsent, gnrer la ou les biblioth`ques : e e e e ndk-build Les biblioth`ques sont places dans un sous-dossier du dossier e e lib Compiler le code Java et gnrer un package .apk : e e ant {debug | release} Choisir debug ou release suivant le mode dsir e e

Android : Architecture - Compilation - Debug Compilation dun projet

23 / 31

Modes de compilation debug : lapplication est automatiquement signe avec une cl e e de debug connue release : lapplication nest pas signe e Le mode debug permet de dployer rapidement une application lors e de la phase de debug. Le mode release indique que lon souhaite diuser lapplication gnre qui doit alors tre signe avec une cl prive (cf section e ee e e e e Distribution).

Android : Architecture - Compilation - Debug Compilation dun projet

24 / 31

Explications sur lalignement Pour amliorer les performances des applications il convient e daligner correctement les donnes en mmoire pour diminuer le e e nombre de lecture. Cette contrainte est lie au bus mmoire qui acc`de aux donnes e e e e par blocs contigs de 32 bits (en gnral) soit 4 octets. u e e Alignement de lapplication Pour aligner sur 4 octets, utiliser la commande : zipalign -v 4 unsigned.apk signed.apk

Android : Architecture - Compilation - Debug Installation dune application

25 / 31

1 Installation des outils 2 Creation dun projet 3 Compilation dun projet 4 Installation dune application 5 Debugging 6 Distribution

Android : Architecture - Compilation - Debug Installation dune application

26 / 31

Installation Une application est installe sur un AVD ou sur un matriel ` laide e e a de la commande : adb install <package>.apk Si plusieurs AVD ou matriels e Il est possible dutiliser les options -s et -d pour spcier e respectivement les identiants de lAVD ou du priphrique cible. e e

Android : Architecture - Compilation - Debug Installation dune application

27 / 31

Liste des priphriques e e adb devices

Android : Architecture - Compilation - Debug Debugging

28 / 31

1 Installation des outils 2 Creation dun projet 3 Compilation dun projet 4 Installation dune application 5 Debugging 6 Distribution

Android : Architecture - Compilation - Debug Debugging

29 / 31

ADB Android Debug Bridge Loutil en ligne de commande adb permet dobtenir des informations de debuggage.

Android : Architecture - Compilation - Debug Distribution

30 / 31

1 Installation des outils 2 Creation dun projet 3 Compilation dun projet 4 Installation dune application 5 Debugging 6 Distribution

Android : Architecture - Compilation - Debug Distribution

31 / 31

Gnration dune cl e e e 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