• Aucun résultat trouvé

[PDF] Support de formation Android : Architecture, compilation et Debug - Free PDF Download

N/A
N/A
Protected

Academic year: 2021

Partager "[PDF] Support de formation Android : Architecture, compilation et Debug - Free PDF Download"

Copied!
31
0
0

Texte intégral

(1)

Android : Architecture - Compilation - Debug 1 / 31

Android :

Architecture - Compilation - Debug

Sylvain Jubertie - Universit´e d’Orl´eans

(2)

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

(3)

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

(4)

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

Installation du SDK et du NDK

1 T´el´echarger les archives suivantes :

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

`

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

2 d´ecompresser les archives

3 mettre `a jour la variable d’environnement PATH :

PATH=$PATH:path_to_android-sdk/tools: \ path_to_android-sdk/platform-tools: \ path_to_android-ndk

Attention

(5)

Android : Architecture - Compilation - Debug 5 / 31 Installation des outils

Installation des plateformes

Chaque d´eveloppement pour une version d’Android n´ecessite l’installation de la plateforme correspondante :

1 lancer la commande android

2 dans la rubrique Available packages choisir les plateformes

(6)

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

Emulateur

Le SDK fournit un ´emulateur de p´eriph´erique Android configurable :

version d’Android dimension de l’´ecran taille m´emoire

support de p´eriph´eriques . . .

Une configuration pour cet ´emulateur est se nomme un AVD : Android Virtual Device.

(7)

Android : Architecture - Compilation - Debug 7 / 31 Installation des outils

Cr´eation d’un AVD Android Virtual Device

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

(8)

Android : Architecture - Compilation - Debug 8 / 31 Installation des outils

(9)

Android : Architecture - Compilation - Debug 9 / 31 Installation des outils

Inconv´enient

L’´emulateur est extrˆemement lent !

(10)

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

(11)

Android : Architecture - Compilation - Debug 11 / 31 Creation d’un projet

Choix de la plateforme cible

Choix de la plateforme cible

Un projet est cr´e´e pour une cible parmi les cibles install´ees. 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

(12)

Android : Architecture - Compilation - Debug 12 / 31 Creation d’un projet

Application

Cr´eation 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>

(13)

Android : Architecture - Compilation - Debug 13 / 31 Creation d’un projet

Application

Arborescence d’un projet

Dossiers cr´e´es automatiquement lors de la cr´eation d’un projet : bin : binaires g´en´er´es

libs : biblioth`eques

res : fichiers de ressources (icones, layout, . . . ) src : fichiers sources (code Java)

(14)

Android : Architecture - Compilation - Debug 14 / 31 Creation d’un projet

Application

Fichiers g´en´er´es

Les fichiers suivants sont cr´e´es automatiquement lors de la cr´eation d’un projet : AndroidManifest.xml build.properties build.xml default.properties local.properties proguard.cfg

(15)

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 :

a n d r o i d u p d a t e 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 > \

(16)

Android : Architecture - Compilation - Debug 16 / 31 Creation d’un projet

Biblioth`eque

Cr´eation d’une biblioth`eque

De mani`ere similaire `a un projet standard :

android create lib-project --name <your_project_name> \ --target <target_ID> \

--path path/to/your/project \

(17)

Android : Architecture - Compilation - Debug 17 / 31 Creation d’un projet

Int´egration de code natif

Int´egration de code natif

repose sur JNI Java Native Interface

supporte les jeux d’instructions : ARMv5TE, ARMv7-A,x86 r´eutilisation de biblioth`eques C/C++

am´elioration de performance sur des codes de calculs OpenGL

NEON

(18)

Android : Architecture - Compilation - Debug 18 / 31 Creation d’un projet

Int´egration de code natif

Principe de l’int´egration de code natif

1 Ecrire un code natif C/C++ + wrapper JNI

2 Le code natif C/C++ est compil´e sous forme de biblioth`eque

dynamique .so

3 Une biblioth`eque est g´en´er´ee par architecture d´esir´ee 4 Le ou les biblioth`eques .so sont int´egr´ees `a l’application

Android

5 La biblioth`eque correspondant au mat´eriel et `a la

configuration du syst`eme Android hˆote est automatiquement appel´ee lors de l’appel `a la m´ethode native

Implications

Augmentation de la taille de l’application

Si une biblioth`eque est g´en´er´ee pour le jeu ARMv7-A, l’application ne fonctionnera pas sur les processeur plus anciens ne supportant que le jeu ARMv5TE. . .

Il est possible de g´en´erer et distribuer plusieurs applications adapt´ees chacune `a un jeu d’instructions pour optimiser la taille de chaque application

(19)

Android : Architecture - Compilation - Debug 19 / 31 Creation d’un projet

Int´egration de code natif

Int´egration dans un projet Android

1 Cr´eer un dossier jni `a la racine du projet, puis dans ce

dossier,

2 placer les fichiers C/C++

3 cr´eer un fichier Android.mk (fichier Makefile) qui permettra

de g´en´erer la biblioth`eque

4 Dans le code Java de l’application, cr´eer un wrapper vers les

(20)

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

(21)

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

(22)

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

Etapes et commandes pour la compilation

1 Si du code natif est pr´esent, g´en´erer la ou les biblioth`eques :

ndk-build

Les biblioth`eques sont plac´ees dans un sous-dossier du dossier lib

2 Compiler le code Java et g´en´erer un package .apk :

ant {debug | release}

(23)

Android : Architecture - Compilation - Debug 23 / 31 Compilation d’un projet

Modes de compilation

debug : l’application est automatiquement sign´ee avec une cl´e de debug connue

release : l’application n’est pas sign´ee

Le mode debug permet de d´eployer rapidement une application lors de la phase de debug.

Le mode release indique que l’on souhaite diffuser l’application g´en´er´ee qui doit alors ˆetre sign´ee avec une cl´e priv´ee (cf section Distribution).

(24)

Android : Architecture - Compilation - Debug 24 / 31 Compilation d’un projet

Explications sur l’alignement

Pour am´eliorer les performances des applications il convient d’aligner correctement les donn´ees en m´emoire pour diminuer le nombre de lecture.

Cette contrainte est li´ee au bus m´emoire qui acc`ede aux donn´ees par blocs contig¨us de 32 bits (en g´en´eral) soit 4 octets.

Alignement de l’application

Pour aligner sur 4 octets, utiliser la commande : zipalign -v 4 unsigned.apk signed.apk

(25)

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

(26)

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

Installation

Une application est install´ee sur un AVD ou sur un mat´eriel `a l’aide de la commande :

adb install <package>.apk

Si plusieurs AVD ou mat´eriels

Il est possible d’utiliser les options -s et -d pour sp´ecifier

(27)

Android : Architecture - Compilation - Debug 27 / 31 Installation d’une application

Liste des p´eriph´eriques

(28)

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

(29)

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.

(30)

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

(31)

Android : Architecture - Compilation - Debug 31 / 31 Distribution

G´en´eration d’une cl´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

Références

Documents relatifs

Dans le cas d’une relation d’´equivalence, ´ pr´eciser les classes ; dans le cas d’une relation d’ordre, pr´eciser si elle est totale, si l’ensemble admet un plus petit ou

There was also an effect relationship at the significant level (0.05) Between HR strategy and ADA Change is not statistically significant due to personal variables (gender,

L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des

développement de communications routières à l’intérieur de la plaine du Téraï bien sûr, qui a permis, à partir de 1950, à des groupes autrefois isolés d’entrer en contact

Récits himalayens, Brigitte Steinmann Nanterre, Société d’Ethnologie, coll... 4

L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des

Officiellement consacrée aux accords climatiques, la visite, en février 2015, du président Hollande accompagné d’un représentant de Sanofi aux Philippines, puis un retour de

26 Bien que le CNGE ait été mis en place pour répondre aux épidémies dans le pays comme le fixe l’arrêté qui le constitue, les décisions concernant la préparation de