16
Présentation GENYMOBILE SEMINAIRE Châteaux de la Volonière Android Open Source Project Ice Cream Sandwich 19 Janvier 2012

Paug aosp ice-creamsandwich_20120119

Embed Size (px)

DESCRIPTION

http://www.paug.fr

Citation preview

Page 1: Paug aosp ice-creamsandwich_20120119

Présentation GENYMOBILE

SEMINAIRE Châteaux de la Volonière

Android Open Source Project Ice Cream Sandwich

19 Janvier 2012

Page 2: Paug aosp ice-creamsandwich_20120119

AOSP : Historique Architecture générale du code source Processus de compilation Outils de tests et validation (CTS/CDD) Exemple : portage d’ICS pour VirtualBox

FORMATION Agenda

Page 3: Paug aosp ice-creamsandwich_20120119

FORMATION AOSP - Historique

Initiative de l’Open Handset Alliance, dirigée par Google, pour créer une plateforme ouverture à destination des opérateurs, OEMs et développeurs. Projet « Open Source » : majoritairement sous licence ASL 2.0 (GPL pour le noyau Linux et quelques composants), mais forte dépendance vis-à-vis de Google (traumatisme Honeycomb…) Neuf versions ‘majeures’ (1.0, 1.1, CupCake, Donut, Eclair, Froyo, Gingerbread, Honeycomb, ICS) depuis Septembre 2008 Qqs chiffres : plus de 200M de terminaux et >550k activations par jour

Page 4: Paug aosp ice-creamsandwich_20120119

FORMATION ICS – Support natif de terminaux

Jamais une release d’AOSP n’a intégré nativement le support d’autant de terminaux : Nexus S (GSM, CDMA/WiMAX) Galaxy Nexus (GSM/HSDPA+, CDMA/LTE) Motorola Xoom (WiFi only, CDMA/LTE) PandaBoard (carte de développement) 11 cibles de compilation intégrées à ICS (8 terminaux issus de 4 familles, 3 systèmes virtuels/émulateurs)

http://source.android.com/source/building-devices.html https://plus.google.com/112218872649456413744/posts/75aLL1dWY2u

Page 5: Paug aosp ice-creamsandwich_20120119

FORMATION Android - Architecture générale

Page 6: Paug aosp ice-creamsandwich_20120119

FORMATION AOSP – Intérêt de disposer du code

« ROM Cooking » sur smartphones et tablettes (ex, projet CyanogenMod – plus de 1M de déploiement)

Utilisation sur de nouvelles plateformes, au-delà des smartphones et tablettes

Debugging et optimisation des applications

Analyse de sécurité du code source

Page 7: Paug aosp ice-creamsandwich_20120119

FORMATION AOSP – Compilation

Une source d’information : http://source.android.com Pré-requis OS : http://source.android.com/source/initializing.html Un conseil : utiliser une plateforme Ubuntu 10.04 en 64-bit (plateforme de référence) Code source : >6GB Machine de compilation : 8GB RAM mini (16GB conseillé), 25GB disque libre mini pour compilation

Préparation / Récupération outil repo : $ mkdir ~/bin

$ PATH=~/bin:$PATH

$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo

$ chmod a+x ~/bin/repo

http://source.android.com/source/initializing.html http://source.android.com/source/downloading.html

Page 8: Paug aosp ice-creamsandwich_20120119

FORMATION AOSP – Compilation

Une compilation complète prend entre 20 minutes et 8 heures selon la configuration de la machine de compilation… Puis installation de la ROM sur le terminal, ou exécution de l’émulateur ou de la machine virtuelle.

Téléchargement code source : $ mkdir android-4.0.3_r1

$ repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r3

$ repo sync

Sélection de la cible et compilation : $ source build/envsetup.sh

$ lunch (puis sélection cible) $ make –jX (où X est le nombre de tâches de compilation en parallèle)

http://source.android.com/source/downloading.html http://source.android.com/source/building.html

Page 9: Paug aosp ice-creamsandwich_20120119

FORMATION AOSP – Code source

bionic/ : Remplacement de la « libc » bootable/ : Bootloader de référence build/ : Scripts de compilation d’AOSP cts/ : « Compatibility Test Suite » dalvik/ : Machine virtuelle Dalvik development/ : Outils de développement device/ : Fichiers et composants spécifiques external/ : Projets externes utilisés par AOSP frameworks/ : Services système, classes android.*, … hardware/ : Librairies de support hardware libcore/ : Projet « Apache Harmony » ndk/ : Native Development Kit packages/ : Applications et services de base prebuilt/ : Binaires précompilés sdk/ : Software Development Kit system/ : Composants système

Page 10: Paug aosp ice-creamsandwich_20120119

FORMATION AOSP – CTS/CDD

CDD = Compatibility Definition Document Document de spécifications des terminaux Android (un CDD par version Android). Une condition nécessaire (mais pas suffisante…) pour accéder au Google Market est que le terminal respecte le CDD de la version concernée. Les pré-requis peuvent changer drastiquement d’une version à l’autre. Par exemple, le CDD d’ICS demande 340MB de RAM disponible à Android (sans compter la RAM utilisée par la radio, la vidéo, …) alors que le CDD de Gingerbread ne demandait que 128MB de RAM disponible...

http://source.android.com/compatibility/overview.html

Page 11: Paug aosp ice-creamsandwich_20120119

FORMATION AOSP – CTS/CDD

http://source.android.com/compatibility/cts-intro.html

CTS = Compatibility Test Suite

Ensemble d’outils de tests permettant de vérifier (en partie) la conformité d’un terminal (et de sa ROM Android) au CDD concerné.

Page 12: Paug aosp ice-creamsandwich_20120119

FORMATION Portage d’AOSP sur VirtualBox

Avec ICS, AOSP intègre la génération d’image virtuelle pour VirtualBox Mais de nombreuses fonctions sont manquantes : Pas de souris Pas de réseau Pas d’Audio Pas d’accélération matérielle OpenGL Pas de partage de fichier avec le système hôte Pas de support d’USB D’où l’idée de travailler à améliorer le support de VirtualBox dans ICS http://www.buildroid.org/blog/?page_id=38

Page 13: Paug aosp ice-creamsandwich_20120119

FORMATION Portage d’AOSP sur VirtualBox

Travaux menés : Support de la souris : recompilation noyau avec support

souris PS/2 Support Ethernet : modification scripts de démarrage Support Audio :

Recompilation noyau avec support audio ALSA Ecriture librairie module hardware audio

Partage de fichier avec le système hôte : Compilation modules noyau VirtualBox Modification scripts de démarrage

Support USB : Recompilation noyau avec drivers USB hôte et USB mass-storage Configuration composant vold pour montage automatique clé USB

Page 14: Paug aosp ice-creamsandwich_20120119

FORMATION Pour aller plus loin…

Instructions compilation AOSP : http://source.android.com Groupes de discussion Google sur Android : http://groups.google.com/group/android-building http://groups.google.com/group/android-porting http://groups.google.com/group/android-platform http://groups.google.com/group/android-kernel Forums xda-developers : http://forum.xda-developers.com/forumdisplay.php?f=564 Projet android-x86 : http://www.android-x86.org Blog buildroid (portage VirtualBox) : http://www.buildroid.org/blog/

Page 15: Paug aosp ice-creamsandwich_20120119

Présentation GENYMOBILE

SEMINAIRE Châteaux de la Volonière

Questions/Réponses

Page 16: Paug aosp ice-creamsandwich_20120119

Présentation GENYMOBILE

SEMINAIRE Châteaux de la Volonière

MERCI !

Daniel Fages [email protected] [email protected]