Android : Architecture - Compilation - Debug 1 / 31. Android : Architecture - Compilation - Debug. Sylvain Jubertie - Université d Orléans 2011-2012



Documents pareils
- TP Programmation Android - NFA024 Conservatoire National des Arts et Métiers

Installation et prise en main

TP au menu «UI ANDROID»

TD/TP 1 Introduction au SDK d Android

Votre premier projet Android

PPM(A) Programmation sur Plateformes Mobiles (Android) Legond-Aubry Fabrice

bbc Launch Pad Juillet 2011 Version 10.0

Android 4 Les fondamentaux du développement d'applications Java

Warren PAULUS. Android SDK et Android x86

Annexe Android Studio

Android. Présentation d Android. Florent Garin

Dossier. Développer en Java sur téléphone mobile. Benjamin Damécourt UFR SITEC Master 2 EESC 11 janvier 2012

1.3 Gestion d'une application

Programmation Mobile Android Master CCI

Le Modèle de Sécurité dans JAVA

Machine virtuelle Java pour Palm TX

Introduction ANDROID

Les fondamentaux du développement d applications Java

Point sur les solutions de développement d apps pour les périphériques mobiles

Outils, langage et approche Android Une introduction. Nicolas Stouls lyon.fr

Utilisation de GCM (Google Cloud Messaging) pour Android. Partie préliminaire éventuelle : Création d'un AVD lisant GCM

Introduction à Eclipse

Projet de développement

Eclipse atelier Java

Installation et compilation de gnurbs sous Windows

Environnements de développement (intégrés)

Accélérez votre émulateur Android

[Projet S9] Rédacteurs & Contributeurs Entité Rédacteurs Contributeurs Imededdine HOSNI Olivier MARTY. Validation du document Nom Date Visa

Annexe : La Programmation Informatique

Développement sous Android

Parrot 3200LS-Color 3400LS-GPS

BOUCHARD Nicolas. GENTILE Pierre

JOnAS Day 5.1. Outils de développements

Chapitre 1 Retour en arrière

Déployer les Fonts, Icones, et Images avec Forms Services 11G

Projet de développement. Introduction à Eclipse. Application à votre projet. Philippe Collet. Organisation. Cours 1 : principes généraux - svn

Tutoriel Création d une source Cydia et compilation des packages sous Linux

Un serveur web léger et ouvert

Reversing Android. Aïe, robot...

Projet De Stijl Plate-forme pour robots mobiles

Titre: Version: Dernière modification: Auteurs: Statut: Remplace: Licence:

Guide d installation et de configuration de vcloud Director

Le serveur web Windows Home Server 2011

Android. Programmation. De la conception au déploiement avec le SDK Google Android 2. Damien Guignard Julien Chable Emmanuel Robles

Direction des Systèmes d'information

Session 8: Android File System

Gestion des différentes tailles d écran

Vulgarisation Java EE Java EE, c est quoi?

DEPLOIEMENT MICROSOFT WINDOWS

sshgate Patrick Guiran Chef de projet support

Module d anonymisation

Remise à niveau d un programme JAVA du domaine public

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7

WPKG Gestion de paquets pour Windows

Documentation module hosting

as Architecture des Systèmes d Information

vcloud Director Guide d'installation et de mise à niveau

Déploiement de SAS Foundation

ArcGis Server 10 (sur VM CentOS bits) DOCUMENT D INSTALLATION

Java Avancé. Le langage Java. Rémi Forax

Linux embarqué: une alternative à Windows CE?

Systèmes d exploitation

Machines virtuelles Cours 1 : Introduction

HOWTO INSTALLATION DB2 et NSE (sous RedHat)

WINDOWS SHAREPOINT SERVICES 2007

Productivité Performance Mobilité

KAJOUT WASSIM INTERNET INFORMATION SERVICES (IIS) 01/03/2013. Compte-rendu sur ISS KAJOUT Wassim

Épisode 2 : Les outils de développement Alain Menu édition 2.1, septembre 2013

Formation WinDev Mobile

Tutorial pour une application simple

SYNC FRAMEWORK AVEC SQLITE POUR APPLICATIONS WINDOWS STORE (WINRT) ET WINDOWS PHONE 8

TP1 : Initiation à Java et Eclipse

Chapitre IX : Virtualisation

Installation de SQL Server Reporting Services avec l intégration dans un site Windows SharePoint Services V3

Systeme d'exploitation

Accéder à PostgreSQL par JDBC via un tunnel SSL Java

LA MOBILITE : ACTEURS, OUTILS,

DA MOTA Anthony - Comparaison de technologies : PhoneGap VS Cordova

Traitement de données

CREATION D UN WINPE 3.1

[APPLICATON REPARTIE DE VENTE AUX ENCHERES]

TUTORIEL: INSTALLATION D'UN SERVEUR LOCAL SOUS WINDOWS 7 POUR APPINVENTOR version du 06/04/2013

TP2 : Client d une BDD SqlServer

Le Client/Serveur avec Enterprise Miner version 4

PG208, Projet n 3 : Serveur HTTP évolué

La mémoire. Un ordinateur. L'octet. Le bit

Programmation des applications mobiles avec Android. 1 Inspiré du cours de Olivier Le Goaer

Guillaume GENS

Oracle Database SQL Developer Guide D'Installation Release 4.0 E

Android et le Cloud Computing

Développement d applications professionnelles avec Android 2

Oracle WebLogic Server (WLS) 11gR1 ( et ) Installation sur Oracle Linux 5 et 6 Hypothèses Installation Oracle Linux 5 (OL5)

Tutoriel d installation de Hibernate avec Eclipse

Table des matières. Partie I Concepts de base Préface... VII

SOMMAIRE. Introduction... 3 A. ANDROID... 4

Gérer ses environnements de développement avec Vagrant RMLL 2012

CIBLE DE SECURITE CSPN DE L APPLICATION TEOPAD POUR TERMINAUX MOBILES

Générer du code à partir d une description de haut niveau

Transcription:

Android : Architecture - Compilation - Debug 1 / 31 Android : Architecture - Compilation - Debug 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 Télécharger les archives suivantes : Android SDK : Software Development Kit Android NDK : Native Development Kit à partir du site http://developer.android.com 2 décompresser les archives 3 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 Ces archives ne sont pas suffisantes pour développer!

Android : Architecture - Compilation - Debug 5 / 31 Installation des outils Installation des plateformes 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 Android cibles à installer : SDK Platform, samples, doc

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

Android : Architecture - Compilation - Debug 7 / 31 Installation des outils Création d un AVD Android Virtual Device Dans la rubrique Virtual devices, choisir New... et configurer un AVD : nom, version d Android (Target),... 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 Inconvénient 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 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 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 Dossiers créés automatiquement lors de la création d un projet : bin : binaires générés 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 Fichiers générés 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 : a n d r o i d 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 > \ path path / to / your / p r o j e c t

Android : Architecture - Compilation - Debug 16 / 31 Creation d un projet Bibliothèque Création d une bibliothèque 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 Intégration de code natif Intégration de code natif repose sur JNI Java Native Interface supporte les jeux d instructions : ARMv5TE, ARMv7-A,x86 réutilisation de bibliothèques C/C++ amélioration de performance sur des codes de calculs OpenGL NEON attention à la gestion mémoire!

Android : Architecture - Compilation - Debug 18 / 31 Creation d un projet Intégration de code natif Principe de l intégration de code natif 1 Ecrire un code natif C/C++ + wrapper JNI 2 Le code natif C/C++ est compilé sous forme de bibliothèque dynamique.so 3 Une bibliothèque est générée par architecture désirée 4 Le ou les bibliothèques.so sont intégrées à l application Android 5 La bibliothèque correspondant au matériel et à la configuration du système Android hôte est automatiquement appelée lors de l appel à la méthode native Implications Augmentation de la taille de l application Si une bibliothèque est générée pour le jeu ARMv7-A,

Android : Architecture - Compilation - Debug 19 / 31 Creation d un projet Intégration de code natif Intégration dans un projet Android 1 Créer un dossier jni à la racine du projet, puis dans ce dossier, 2 placer les fichiers C/C++ 3 créer un fichier Android.mk (fichier Makefile) qui permettra de générer la bibliothèque 4 Dans le code Java de l application, créer un wrapper vers les 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 Si du code natif est présent, générer la ou les bibliothèques : ndk-build Les bibliothèques sont placées dans un sous-dossier du dossier lib 2 Compiler le code Java et générer un package.apk : ant {debug release} Choisir debug ou release suivant le mode désiré

Android : Architecture - Compilation - Debug 23 / 31 Compilation d un projet Modes de compilation debug : l application est automatiquement signée avec une clé de debug connue release : l application n est pas signé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 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 Pour améliorer les performances des applications il convient d aligner correctement les données en mémoire pour diminuer le nombre de lecture. Cette contrainte est liée au bus mémoire qui accède aux données 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 Une application est installée sur un AVD ou sur un matériel à l aide de la commande : adb install <package>.apk Si plusieurs AVD ou matériels Il est possible d utiliser les options -s et -d pour spécifier respectivement les identifiants de l AVD ou du périphérique cible.

Android : Architecture - Compilation - Debug 27 / 31 Installation d une application 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 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