SlideShare a Scribd company logo
1 of 16
Download to read offline
Android Open Source Project
         SEMINAIRE
    Ice Cream Sandwich
   Châteaux de la Volonière
      Présentation GENYMOBILE




                                19 Janvier 2012
FORMATION
                           Agenda

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
AOSP - Historique
              FORMATION




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
ICS – FORMATION natif de terminaux
           Support
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
Android - Architecture générale
   FORMATION
AOSP – Intérêt de disposer du code
       FORMATION



 « 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
AOSP – Compilation
                 FORMATION


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
AOSP – Compilation
                      FORMATION


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)



 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.




                                          http://source.android.com/source/downloading.html
                                          http://source.android.com/source/building.html
AOSP – Code source
               FORMATION


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
AOSP – CTS/CDD
             FORMATION


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
AOSP – CTS/CDD
             FORMATION


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é.




                        http://source.android.com/compatibility/cts-intro.html
Portage d’AOSP sur VirtualBox
         FORMATION


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
Portage d’AOSP sur VirtualBox
         FORMATION


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
Pour aller plus loin…
              FORMATION


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/
SEMINAIRE
Questions/Réponses
Châteaux de la Volonière
  Présentation GENYMOBILE
SEMINAIRE
       MERCI !
Châteaux de la Volonière
  Présentation GENYMOBILE



                      Daniel Fages
                      dan@buildroid.org
                      dfages@genymobile.com

More Related Content

What's hot

Titanium, write in java script, run native everywhere
Titanium, write in java script, run native everywhereTitanium, write in java script, run native everywhere
Titanium, write in java script, run native everywhereAyoub Zamouchi
 
Conférence Titanium + Alloy au JUG Montpellier
Conférence Titanium + Alloy au JUG MontpellierConférence Titanium + Alloy au JUG Montpellier
Conférence Titanium + Alloy au JUG MontpellierDamien Laureaux
 
L’environnement du développement mobile iOS & Android
L’environnement du développement mobile iOS & AndroidL’environnement du développement mobile iOS & Android
L’environnement du développement mobile iOS & AndroidChris Saez
 
Présentation et Initiative pour le développement Android
Présentation et Initiative pour le développement AndroidPrésentation et Initiative pour le développement Android
Présentation et Initiative pour le développement Androidyounes ben tlili
 
Android Studio, premier contact
Android Studio, premier contactAndroid Studio, premier contact
Android Studio, premier contactJasmine Conseil
 
Tuto Phonegap
Tuto PhonegapTuto Phonegap
Tuto PhonegapSUN
 
RedFabriQ - meetup Xamarin Paris - Session d'ouverture
RedFabriQ - meetup Xamarin Paris - Session d'ouvertureRedFabriQ - meetup Xamarin Paris - Session d'ouverture
RedFabriQ - meetup Xamarin Paris - Session d'ouverturezaak
 
Kinect pour les développeurs Web
Kinect pour les développeurs WebKinect pour les développeurs Web
Kinect pour les développeurs Webekino
 
Débuter avec phonegap (APACHE CORDOVA) dans eclipse pour android
Débuter avec phonegap (APACHE CORDOVA) dans eclipse pour androidDébuter avec phonegap (APACHE CORDOVA) dans eclipse pour android
Débuter avec phonegap (APACHE CORDOVA) dans eclipse pour androidBosco Basabana
 
jQuery mobile / PhoneGap : contenus dynamiques client-side
jQuery mobile / PhoneGap : contenus dynamiques client-sidejQuery mobile / PhoneGap : contenus dynamiques client-side
jQuery mobile / PhoneGap : contenus dynamiques client-sidemaru.maru
 
CocoaHeads Toulouse - Présentation Windows Phone 7 - ClevLab
CocoaHeads Toulouse - Présentation Windows Phone 7 - ClevLabCocoaHeads Toulouse - Présentation Windows Phone 7 - ClevLab
CocoaHeads Toulouse - Présentation Windows Phone 7 - ClevLabCocoaHeads France
 
Phonegap
PhonegapPhonegap
PhonegapVISEO
 
Booster votre application Windows Phone 8
Booster votre application Windows Phone 8Booster votre application Windows Phone 8
Booster votre application Windows Phone 8Microsoft
 

What's hot (19)

Apache Cordova 3.3 de zéro
Apache Cordova 3.3 de zéroApache Cordova 3.3 de zéro
Apache Cordova 3.3 de zéro
 
Titanium, write in java script, run native everywhere
Titanium, write in java script, run native everywhereTitanium, write in java script, run native everywhere
Titanium, write in java script, run native everywhere
 
Conférence Titanium + Alloy au JUG Montpellier
Conférence Titanium + Alloy au JUG MontpellierConférence Titanium + Alloy au JUG Montpellier
Conférence Titanium + Alloy au JUG Montpellier
 
L’environnement du développement mobile iOS & Android
L’environnement du développement mobile iOS & AndroidL’environnement du développement mobile iOS & Android
L’environnement du développement mobile iOS & Android
 
Présentation et Initiative pour le développement Android
Présentation et Initiative pour le développement AndroidPrésentation et Initiative pour le développement Android
Présentation et Initiative pour le développement Android
 
Java Fx
Java FxJava Fx
Java Fx
 
Android Studio, premier contact
Android Studio, premier contactAndroid Studio, premier contact
Android Studio, premier contact
 
Fxos
FxosFxos
Fxos
 
Tuto Phonegap
Tuto PhonegapTuto Phonegap
Tuto Phonegap
 
RedFabriQ - meetup Xamarin Paris - Session d'ouverture
RedFabriQ - meetup Xamarin Paris - Session d'ouvertureRedFabriQ - meetup Xamarin Paris - Session d'ouverture
RedFabriQ - meetup Xamarin Paris - Session d'ouverture
 
Kinect pour les développeurs Web
Kinect pour les développeurs WebKinect pour les développeurs Web
Kinect pour les développeurs Web
 
Débuter avec phonegap (APACHE CORDOVA) dans eclipse pour android
Débuter avec phonegap (APACHE CORDOVA) dans eclipse pour androidDébuter avec phonegap (APACHE CORDOVA) dans eclipse pour android
Débuter avec phonegap (APACHE CORDOVA) dans eclipse pour android
 
jQuery mobile / PhoneGap : contenus dynamiques client-side
jQuery mobile / PhoneGap : contenus dynamiques client-sidejQuery mobile / PhoneGap : contenus dynamiques client-side
jQuery mobile / PhoneGap : contenus dynamiques client-side
 
CocoaHeads Toulouse - Présentation Windows Phone 7 - ClevLab
CocoaHeads Toulouse - Présentation Windows Phone 7 - ClevLabCocoaHeads Toulouse - Présentation Windows Phone 7 - ClevLab
CocoaHeads Toulouse - Présentation Windows Phone 7 - ClevLab
 
Phonegap
PhonegapPhonegap
Phonegap
 
Native script
Native scriptNative script
Native script
 
Java Fx Rapport
Java Fx RapportJava Fx Rapport
Java Fx Rapport
 
ROM Android Customs
ROM Android Customs ROM Android Customs
ROM Android Customs
 
Booster votre application Windows Phone 8
Booster votre application Windows Phone 8Booster votre application Windows Phone 8
Booster votre application Windows Phone 8
 

Viewers also liked

Donner le pouvoir de build à votre PO - DroidCon Paris 18 june 2013
Donner le pouvoir de build à votre PO -  DroidCon Paris 18 june 2013Donner le pouvoir de build à votre PO -  DroidCon Paris 18 june 2013
Donner le pouvoir de build à votre PO - DroidCon Paris 18 june 2013Paris Android User Group
 
Lancer et monétiser son application Android
Lancer et monétiser son application AndroidLancer et monétiser son application Android
Lancer et monétiser son application AndroidParis Android User Group
 
Sécurité android par Philippe Prados 25/07/2012
Sécurité android par Philippe Prados 25/07/2012Sécurité android par Philippe Prados 25/07/2012
Sécurité android par Philippe Prados 25/07/2012Paris Android User Group
 
Projet aad v2 gefco - DroidCon Paris 18 june 2013
Projet aad v2   gefco  - DroidCon Paris 18 june 2013Projet aad v2   gefco  - DroidCon Paris 18 june 2013
Projet aad v2 gefco - DroidCon Paris 18 june 2013Paris Android User Group
 
Introduction NFC - Charles Henry Morin - PAUG
Introduction NFC - Charles Henry Morin - PAUGIntroduction NFC - Charles Henry Morin - PAUG
Introduction NFC - Charles Henry Morin - PAUGParis Android User Group
 

Viewers also liked (7)

Donner le pouvoir de build à votre PO - DroidCon Paris 18 june 2013
Donner le pouvoir de build à votre PO -  DroidCon Paris 18 june 2013Donner le pouvoir de build à votre PO -  DroidCon Paris 18 june 2013
Donner le pouvoir de build à votre PO - DroidCon Paris 18 june 2013
 
2011 paug-presentation-de-titanium-mobile
2011 paug-presentation-de-titanium-mobile2011 paug-presentation-de-titanium-mobile
2011 paug-presentation-de-titanium-mobile
 
Lancer et monétiser son application Android
Lancer et monétiser son application AndroidLancer et monétiser son application Android
Lancer et monétiser son application Android
 
Sécurité android par Philippe Prados 25/07/2012
Sécurité android par Philippe Prados 25/07/2012Sécurité android par Philippe Prados 25/07/2012
Sécurité android par Philippe Prados 25/07/2012
 
Paug renderscript-mars-2013
Paug renderscript-mars-2013Paug renderscript-mars-2013
Paug renderscript-mars-2013
 
Projet aad v2 gefco - DroidCon Paris 18 june 2013
Projet aad v2   gefco  - DroidCon Paris 18 june 2013Projet aad v2   gefco  - DroidCon Paris 18 june 2013
Projet aad v2 gefco - DroidCon Paris 18 june 2013
 
Introduction NFC - Charles Henry Morin - PAUG
Introduction NFC - Charles Henry Morin - PAUGIntroduction NFC - Charles Henry Morin - PAUG
Introduction NFC - Charles Henry Morin - PAUG
 

Similar to Paug aosp ice-creamsandwich_20120119

Introduction à web assembly
Introduction à web assemblyIntroduction à web assembly
Introduction à web assemblyJérémy Buget
 
Android Studio, premier contact
Android Studio, premier contactAndroid Studio, premier contact
Android Studio, premier contactJasmine Conseil
 
Php sous Windows - webcamps Paris
Php sous Windows - webcamps ParisPhp sous Windows - webcamps Paris
Php sous Windows - webcamps ParisLeTesteur
 
Hackathon Android Abidjan
Hackathon Android  AbidjanHackathon Android  Abidjan
Hackathon Android AbidjanBacely YoroBi
 
AsteroidOS: plateforme ouverte pour smartwatches
AsteroidOS: plateforme ouverte pour smartwatchesAsteroidOS: plateforme ouverte pour smartwatches
AsteroidOS: plateforme ouverte pour smartwatchesFlorent Revest
 
In01 - Programmation Android - 01 - introduction
In01 - Programmation Android - 01 - introductionIn01 - Programmation Android - 01 - introduction
In01 - Programmation Android - 01 - introductionYann Caron
 
Soirée du Test Logiciel - Mise en place d’une plateforme de test automatisé a...
Soirée du Test Logiciel - Mise en place d’une plateforme de test automatisé a...Soirée du Test Logiciel - Mise en place d’une plateforme de test automatisé a...
Soirée du Test Logiciel - Mise en place d’une plateforme de test automatisé a...TelecomValley
 
Programmation Android - 01 - Introduction
Programmation Android - 01 - IntroductionProgrammation Android - 01 - Introduction
Programmation Android - 01 - IntroductionYann Caron
 
Composants d-une application Android.ppt
Composants d-une application Android.pptComposants d-une application Android.ppt
Composants d-une application Android.pptmahamaalej3
 
Bornes, écrans, automates: ce qui se cache derrière les systèmes embarqués qu...
Bornes, écrans, automates: ce qui se cache derrière les systèmes embarqués qu...Bornes, écrans, automates: ce qui se cache derrière les systèmes embarqués qu...
Bornes, écrans, automates: ce qui se cache derrière les systèmes embarqués qu...Microsoft
 
Gab17 lyon-Docker pour quoi faire - Cédric Leblond et Derue
Gab17 lyon-Docker pour quoi faire - Cédric Leblond et DerueGab17 lyon-Docker pour quoi faire - Cédric Leblond et Derue
Gab17 lyon-Docker pour quoi faire - Cédric Leblond et DerueAZUG FR
 
Apache flink - prise en main rapide
Apache flink - prise en main rapideApache flink - prise en main rapide
Apache flink - prise en main rapideBilal Baltagi
 
Windows Azure Media Services : des API pour encoder, multiplexer et difuser v...
Windows Azure Media Services : des API pour encoder, multiplexer et difuser v...Windows Azure Media Services : des API pour encoder, multiplexer et difuser v...
Windows Azure Media Services : des API pour encoder, multiplexer et difuser v...Microsoft Technet France
 

Similar to Paug aosp ice-creamsandwich_20120119 (20)

1-android.pdf
1-android.pdf1-android.pdf
1-android.pdf
 
Introduction à web assembly
Introduction à web assemblyIntroduction à web assembly
Introduction à web assembly
 
Android Studio, premier contact
Android Studio, premier contactAndroid Studio, premier contact
Android Studio, premier contact
 
Architecture android
Architecture androidArchitecture android
Architecture android
 
Java vs .Net
Java vs .NetJava vs .Net
Java vs .Net
 
Java vs .Net
Java vs .NetJava vs .Net
Java vs .Net
 
Php sous Windows - webcamps Paris
Php sous Windows - webcamps ParisPhp sous Windows - webcamps Paris
Php sous Windows - webcamps Paris
 
Android pour l'industrie
Android pour l'industrieAndroid pour l'industrie
Android pour l'industrie
 
Hackathon Android Abidjan
Hackathon Android  AbidjanHackathon Android  Abidjan
Hackathon Android Abidjan
 
1 tours horizon
1 tours horizon1 tours horizon
1 tours horizon
 
Développement web mobile avec IONIC 2
Développement web mobile avec IONIC 2Développement web mobile avec IONIC 2
Développement web mobile avec IONIC 2
 
AsteroidOS: plateforme ouverte pour smartwatches
AsteroidOS: plateforme ouverte pour smartwatchesAsteroidOS: plateforme ouverte pour smartwatches
AsteroidOS: plateforme ouverte pour smartwatches
 
In01 - Programmation Android - 01 - introduction
In01 - Programmation Android - 01 - introductionIn01 - Programmation Android - 01 - introduction
In01 - Programmation Android - 01 - introduction
 
Soirée du Test Logiciel - Mise en place d’une plateforme de test automatisé a...
Soirée du Test Logiciel - Mise en place d’une plateforme de test automatisé a...Soirée du Test Logiciel - Mise en place d’une plateforme de test automatisé a...
Soirée du Test Logiciel - Mise en place d’une plateforme de test automatisé a...
 
Programmation Android - 01 - Introduction
Programmation Android - 01 - IntroductionProgrammation Android - 01 - Introduction
Programmation Android - 01 - Introduction
 
Composants d-une application Android.ppt
Composants d-une application Android.pptComposants d-une application Android.ppt
Composants d-une application Android.ppt
 
Bornes, écrans, automates: ce qui se cache derrière les systèmes embarqués qu...
Bornes, écrans, automates: ce qui se cache derrière les systèmes embarqués qu...Bornes, écrans, automates: ce qui se cache derrière les systèmes embarqués qu...
Bornes, écrans, automates: ce qui se cache derrière les systèmes embarqués qu...
 
Gab17 lyon-Docker pour quoi faire - Cédric Leblond et Derue
Gab17 lyon-Docker pour quoi faire - Cédric Leblond et DerueGab17 lyon-Docker pour quoi faire - Cédric Leblond et Derue
Gab17 lyon-Docker pour quoi faire - Cédric Leblond et Derue
 
Apache flink - prise en main rapide
Apache flink - prise en main rapideApache flink - prise en main rapide
Apache flink - prise en main rapide
 
Windows Azure Media Services : des API pour encoder, multiplexer et difuser v...
Windows Azure Media Services : des API pour encoder, multiplexer et difuser v...Windows Azure Media Services : des API pour encoder, multiplexer et difuser v...
Windows Azure Media Services : des API pour encoder, multiplexer et difuser v...
 

More from Paris Android User Group

Workshop: building your mobile backend with Parse - Droidcon Paris2014
Workshop: building your mobile backend with Parse - Droidcon Paris2014Workshop: building your mobile backend with Parse - Droidcon Paris2014
Workshop: building your mobile backend with Parse - Droidcon Paris2014Paris Android User Group
 
Workshop: Amazon developer ecosystem - DroidCon Paris2014
Workshop: Amazon developer ecosystem - DroidCon Paris2014Workshop: Amazon developer ecosystem - DroidCon Paris2014
Workshop: Amazon developer ecosystem - DroidCon Paris2014Paris Android User Group
 
Extending your apps to wearables - DroidCon Paris 2014
Extending your apps to wearables -  DroidCon Paris 2014Extending your apps to wearables -  DroidCon Paris 2014
Extending your apps to wearables - DroidCon Paris 2014Paris Android User Group
 
Scaling android development - DroidCon Paris 2014
Scaling android development - DroidCon Paris 2014Scaling android development - DroidCon Paris 2014
Scaling android development - DroidCon Paris 2014Paris Android User Group
 
Ingredient of awesome app - DroidCon Paris 2014
Ingredient of awesome app - DroidCon Paris 2014Ingredient of awesome app - DroidCon Paris 2014
Ingredient of awesome app - DroidCon Paris 2014Paris Android User Group
 
Deep dive into android restoration - DroidCon Paris 2014
Deep dive into android restoration - DroidCon Paris 2014Deep dive into android restoration - DroidCon Paris 2014
Deep dive into android restoration - DroidCon Paris 2014Paris Android User Group
 
Archos Android based connected home solution - DroidCon Paris 2014
Archos Android based connected home solution - DroidCon Paris 2014Archos Android based connected home solution - DroidCon Paris 2014
Archos Android based connected home solution - DroidCon Paris 2014Paris Android User Group
 
Porting VLC on Android - DroidCon Paris 2014
Porting VLC on Android - DroidCon Paris 2014Porting VLC on Android - DroidCon Paris 2014
Porting VLC on Android - DroidCon Paris 2014Paris Android User Group
 
Robotium vs Espresso: Get ready to rumble ! - DroidCon Paris 2014
Robotium vs Espresso: Get ready to rumble ! - DroidCon Paris 2014Robotium vs Espresso: Get ready to rumble ! - DroidCon Paris 2014
Robotium vs Espresso: Get ready to rumble ! - DroidCon Paris 2014Paris Android User Group
 
maximize app engagement and monetization - DroidCon Paris 2014
maximize app engagement and monetization - DroidCon Paris 2014maximize app engagement and monetization - DroidCon Paris 2014
maximize app engagement and monetization - DroidCon Paris 2014Paris Android User Group
 
Using the android ndk - DroidCon Paris 2014
Using the android ndk - DroidCon Paris 2014Using the android ndk - DroidCon Paris 2014
Using the android ndk - DroidCon Paris 2014Paris Android User Group
 
Google glass droidcon - DroidCon Paris 2014
Google glass droidcon - DroidCon Paris 2014Google glass droidcon - DroidCon Paris 2014
Google glass droidcon - DroidCon Paris 2014Paris Android User Group
 
Embedded webserver implementation and usage - DroidCon Paris 2014
Embedded webserver implementation and usage - DroidCon Paris 2014Embedded webserver implementation and usage - DroidCon Paris 2014
Embedded webserver implementation and usage - DroidCon Paris 2014Paris Android User Group
 
Petit design Grande humanité par Geoffrey Dorne - DroidCon Paris 2014
Petit design Grande humanité par Geoffrey Dorne - DroidCon Paris 2014Petit design Grande humanité par Geoffrey Dorne - DroidCon Paris 2014
Petit design Grande humanité par Geoffrey Dorne - DroidCon Paris 2014Paris Android User Group
 
What's new in android 4.4 - Romain Guy & Chet Haase
What's new in android 4.4 - Romain Guy & Chet HaaseWhat's new in android 4.4 - Romain Guy & Chet Haase
What's new in android 4.4 - Romain Guy & Chet HaaseParis Android User Group
 
Efficient Image Processing - Nicolas Roard
Efficient Image Processing - Nicolas RoardEfficient Image Processing - Nicolas Roard
Efficient Image Processing - Nicolas RoardParis Android User Group
 

More from Paris Android User Group (20)

Workshop: building your mobile backend with Parse - Droidcon Paris2014
Workshop: building your mobile backend with Parse - Droidcon Paris2014Workshop: building your mobile backend with Parse - Droidcon Paris2014
Workshop: building your mobile backend with Parse - Droidcon Paris2014
 
Workshop: Amazon developer ecosystem - DroidCon Paris2014
Workshop: Amazon developer ecosystem - DroidCon Paris2014Workshop: Amazon developer ecosystem - DroidCon Paris2014
Workshop: Amazon developer ecosystem - DroidCon Paris2014
 
Extending your apps to wearables - DroidCon Paris 2014
Extending your apps to wearables -  DroidCon Paris 2014Extending your apps to wearables -  DroidCon Paris 2014
Extending your apps to wearables - DroidCon Paris 2014
 
Scaling android development - DroidCon Paris 2014
Scaling android development - DroidCon Paris 2014Scaling android development - DroidCon Paris 2014
Scaling android development - DroidCon Paris 2014
 
Ingredient of awesome app - DroidCon Paris 2014
Ingredient of awesome app - DroidCon Paris 2014Ingredient of awesome app - DroidCon Paris 2014
Ingredient of awesome app - DroidCon Paris 2014
 
Framing the canvas - DroidCon Paris 2014
Framing the canvas - DroidCon Paris 2014Framing the canvas - DroidCon Paris 2014
Framing the canvas - DroidCon Paris 2014
 
Deep dive into android restoration - DroidCon Paris 2014
Deep dive into android restoration - DroidCon Paris 2014Deep dive into android restoration - DroidCon Paris 2014
Deep dive into android restoration - DroidCon Paris 2014
 
Archos Android based connected home solution - DroidCon Paris 2014
Archos Android based connected home solution - DroidCon Paris 2014Archos Android based connected home solution - DroidCon Paris 2014
Archos Android based connected home solution - DroidCon Paris 2014
 
Porting VLC on Android - DroidCon Paris 2014
Porting VLC on Android - DroidCon Paris 2014Porting VLC on Android - DroidCon Paris 2014
Porting VLC on Android - DroidCon Paris 2014
 
Robotium vs Espresso: Get ready to rumble ! - DroidCon Paris 2014
Robotium vs Espresso: Get ready to rumble ! - DroidCon Paris 2014Robotium vs Espresso: Get ready to rumble ! - DroidCon Paris 2014
Robotium vs Espresso: Get ready to rumble ! - DroidCon Paris 2014
 
Buildsystem.mk - DroidCon Paris 2014
Buildsystem.mk - DroidCon Paris 2014Buildsystem.mk - DroidCon Paris 2014
Buildsystem.mk - DroidCon Paris 2014
 
maximize app engagement and monetization - DroidCon Paris 2014
maximize app engagement and monetization - DroidCon Paris 2014maximize app engagement and monetization - DroidCon Paris 2014
maximize app engagement and monetization - DroidCon Paris 2014
 
Using the android ndk - DroidCon Paris 2014
Using the android ndk - DroidCon Paris 2014Using the android ndk - DroidCon Paris 2014
Using the android ndk - DroidCon Paris 2014
 
Death to passwords - DroidCon Paris 2014
Death to passwords - DroidCon Paris 2014Death to passwords - DroidCon Paris 2014
Death to passwords - DroidCon Paris 2014
 
Google glass droidcon - DroidCon Paris 2014
Google glass droidcon - DroidCon Paris 2014Google glass droidcon - DroidCon Paris 2014
Google glass droidcon - DroidCon Paris 2014
 
Embedded webserver implementation and usage - DroidCon Paris 2014
Embedded webserver implementation and usage - DroidCon Paris 2014Embedded webserver implementation and usage - DroidCon Paris 2014
Embedded webserver implementation and usage - DroidCon Paris 2014
 
Petit design Grande humanité par Geoffrey Dorne - DroidCon Paris 2014
Petit design Grande humanité par Geoffrey Dorne - DroidCon Paris 2014Petit design Grande humanité par Geoffrey Dorne - DroidCon Paris 2014
Petit design Grande humanité par Geoffrey Dorne - DroidCon Paris 2014
 
What's new in android 4.4 - Romain Guy & Chet Haase
What's new in android 4.4 - Romain Guy & Chet HaaseWhat's new in android 4.4 - Romain Guy & Chet Haase
What's new in android 4.4 - Romain Guy & Chet Haase
 
Efficient Image Processing - Nicolas Roard
Efficient Image Processing - Nicolas RoardEfficient Image Processing - Nicolas Roard
Efficient Image Processing - Nicolas Roard
 
Build a user experience by Eyal Lezmy
Build a user experience by Eyal LezmyBuild a user experience by Eyal Lezmy
Build a user experience by Eyal Lezmy
 

Paug aosp ice-creamsandwich_20120119

  • 1. Android Open Source Project SEMINAIRE Ice Cream Sandwich Châteaux de la Volonière Présentation GENYMOBILE 19 Janvier 2012
  • 2. FORMATION Agenda 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
  • 3. AOSP - Historique FORMATION 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
  • 4. ICS – FORMATION natif de terminaux Support 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
  • 5. Android - Architecture générale FORMATION
  • 6. AOSP – Intérêt de disposer du code FORMATION  « 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
  • 7. AOSP – Compilation FORMATION 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
  • 8. AOSP – Compilation FORMATION 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)  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. http://source.android.com/source/downloading.html http://source.android.com/source/building.html
  • 9. AOSP – Code source FORMATION 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
  • 10. AOSP – CTS/CDD FORMATION 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
  • 11. AOSP – CTS/CDD FORMATION 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é. http://source.android.com/compatibility/cts-intro.html
  • 12. Portage d’AOSP sur VirtualBox FORMATION 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
  • 13. Portage d’AOSP sur VirtualBox FORMATION 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
  • 14. Pour aller plus loin… FORMATION 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/
  • 15. SEMINAIRE Questions/Réponses Châteaux de la Volonière Présentation GENYMOBILE
  • 16. SEMINAIRE MERCI ! Châteaux de la Volonière Présentation GENYMOBILE Daniel Fages dan@buildroid.org dfages@genymobile.com