SlideShare a Scribd company logo
1 of 21
Download to read offline
AndroVM	
  
DROIDCON LONDON          An	
  alterna-ve	
  
25-26th October         to	
  Android	
  SDK	
  
Daniel FAGES :                emulator	
  
à	
  dan@androvm.org
Agenda


Android	
  Open	
  Source	
  Project	
  	
  
	
  	
  	
  	
  	
  Presenta-on	
  
	
  	
  	
  	
  	
  Architecture	
  
	
  	
  	
  	
  	
  Building/Tes-ng	
  
	
  	
  	
  	
  	
  Contribu-on	
  
	
  
AndroVM	
  project	
  	
  
	
  	
  	
  	
  	
  Presenta-on	
  
	
  	
  	
  	
  	
  Usage	
  
	
  	
  	
  	
  	
  Architecture	
  
	
  	
  	
  	
  	
  We	
  need	
  your	
  help	
  !	
  
Android Open Source Project


Ini-a-ve	
   from	
   the	
   Open	
   Handset	
   Alliance,	
   leaded	
   by	
  
Google,	
   to	
   create	
   an	
   open	
   mobile	
   pla6orm	
   for	
   telcos,	
   OEMs	
   and	
  
developers.	
  
	
  
Open	
  Source	
  project….but	
  strong	
  dependency	
  to	
  Google	
  
	
  
Ten	
   major	
   releases	
   (1.0,	
   1.1,	
   CupCake,	
   Donut,	
   Eclair,	
   Froyo,	
  
Gingerbread,	
  Honeycomb,	
  ICS,	
  JB)	
  since	
  September	
  2008	
  
	
  

       more	
  than	
  450M	
  devices	
  and	
  >1.3M	
  ac-va-ons	
  a	
  day	
  !	
  
                                                    	
  
Android Open Source Project
Jelly Bean – Devices support


The	
  last	
  release	
  of	
  AOSP	
  (Jelly	
  Bean/4.1)	
  supports	
  	
  :	
  
•      Nexus	
  S	
  (GSM,	
  CDMA/WiMAX)	
  
•      Galaxy	
  Nexus	
  (GSM/HSDPA+,	
  CDMA/LTE)	
  
•      Nexus	
  7	
  
•      Motorola	
  Xoom	
  (WiFi	
  only,	
  CDMA/LTE)	
  
•      PandaBoard	
  (development	
  board)	
  
	
  

But,	
  even	
  for	
  those,	
  
-­‐>	
  Some	
  components	
  are	
  only	
  available	
  in	
  binary	
  form	
  	
  
-­‐>	
  Some	
  other	
  are	
  even	
  not	
  publicly	
  available	
  
                                              	
  
AOSP – Source code interests


“ROM	
   Cooking”	
   on	
   smartphones	
   and	
   tablets	
   (ex	
   :	
  
CyanogenMod	
  project	
  –	
  more	
  than	
  1M	
  devices)	
  

Use	
   of	
   Android	
   on	
   new	
   pla[orms,	
   different	
   from	
  
smartphones	
  and	
  tablets	
  

Applica-on	
  debugging	
  and	
  op-miza-on	
  
	
  
Source	
  code	
  security	
  analysis	
  
	
  
AOSP JB - Building


Sources	
  
         •  Informaon	
  Source	
  :	
  h]p://source.android.com	
  
         •  OS	
  Pre-­‐requisite	
  :	
  h]p://source.android.com/source/inializing.html	
  
         •  Download	
  :	
  h]p://source.android.com/source/downloading.html	
  
         	
  
Building	
   system	
   :	
   4GB	
   RAM	
   minimum	
   (16GB	
   be]er),	
   25GB	
   free	
  
storage	
  minimum	
  (90GB	
  to	
  build	
  all	
  ‘targets’)	
  different	
  from	
  smartphones	
  
and	
  tablets	
  
	
  
Setup	
  /	
  repo	
  tool	
  :	
  
$      mkdir ~/bin
$      PATH=~/bin:$PATH
$      curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
$      chmod a+x ~/bin/repo
AOSP JB - Building


Source	
  code	
  download	
  :	
  
$ mkdir android-4.1.2
$ repo init -u https://android.googlesource.com/platform/manifest -b android-4.1.2
$ repo sync



Target	
  selecon	
  and	
  building:	
  
$ source build/envsetup.sh
$ lunch (select	
  target)	
  
$ make –jX (where	
  X	
  is	
  the	
  number	
  of	
  parallel	
  compilaon	
  processes)


-­‐>	
  A	
  complete	
  build	
  can	
  take	
  from	
  20	
  minutes	
  to	
  8	
  hours	
  depending	
  on	
  
the	
  building	
  system	
  configuraon…	
  (JBQ’s	
  host	
  :	
  Dual	
  Xeon	
  E5620	
  Quad-­‐
core,	
  24GB	
  RAM	
  à30	
  minutes	
  to	
  build	
  ICS	
  for	
  the	
  Galaxy	
  Nexus).	
  
	
  
Last	
  step	
  :	
  ROM	
  install	
  on	
  device,	
  or	
  execuon	
  using	
  the	
  emulator	
  or	
  a	
  
virtual	
  machine.	
  
AOSP – Sources code
                                                               Structure

bionic/	
  :	
  «	
  libc	
  »	
  replacement	
  
bootable/	
  :	
  reference	
  bootloader	
  
build/	
  :	
  AOSP	
  build	
  scripts	
  
cts/	
  :	
  «	
  Compability	
  Test	
  Suite	
  »	
  	
  
dalvik/	
  :	
  Dalvik	
  virtual	
  machine	
  
development/	
  :	
  Development	
  tools	
  
device/	
  :	
  Device	
  specific	
  files	
  
docs/	
  :	
  source.android.com	
  source	
  files	
  
external/	
  :	
  External	
  projects	
  used	
  by	
  AOSP	
  
frameworks/	
  :	
  System	
  services,	
  android.*	
  JAVA	
  classes,	
  …	
  
hardware/	
  :	
  Hardware	
  support	
  libraries	
  
libcore/	
  :	
  «	
  Apache	
  Harmony	
  »	
  project	
  
ndk/	
  :	
  Nave	
  Development	
  Kit	
  
packages/	
  :	
  Basic	
  Android	
  applicaons	
  and	
  services	
  	
  
prebuilt/	
  prebuits/:	
  Precompiled	
  binaries	
  
sdk/	
  :	
  Sorware	
  Development	
  Kit	
  
system/	
  :	
  System	
  components	
  
AOSP – CDD & CTS


CDD	
  =	
  Compa-bility	
  Defini-on	
  Document	
  
•  Android	
  devices	
  specificaons	
  (one	
  CDD	
  for	
  each	
  Android	
  version),	
  
•  A	
   required	
   condion	
   (but	
   not	
   enough…)	
   to	
   get	
   access	
   to	
   the	
   Google	
   Market/
   Play	
  is	
  that	
  the	
  device	
  respect	
  the	
  Android	
  version	
  CDD.	
  
•  Pre-­‐requisites	
  can	
  drama-cally	
  change	
  from	
  one	
  version	
  to	
  an	
  other	
  
	
  
	
  
	
                  CTS	
  =	
  Compa-bility	
  Test	
  Suite	
  
	
                  •  Tesng	
   tools	
   used	
   to	
   (partly)	
   check	
   the	
   conformity	
   of	
   a	
   device	
  
	
                     (and	
  its	
  Android	
  ROM)	
  towards	
  the	
  target	
  CDD.	
  
                         h]p://source.android.com/compability/cts-­‐intro.html	
  
AOSP – Contribution


Everybody	
  can	
  contribute	
  code	
  to	
  Android,	
  but…	
  
	
  
•  Every	
  contribuon	
  is	
  subject	
  to	
  Google’s	
  valida-on	
  	
  
     ü  Code	
  quality	
  :	
  Android	
  «	
  code	
  style	
  guidelines	
  »	
  	
  
     ü  Funconal	
  code	
  
     ü  Strategic/Polic	
  ?	
  
	
  
•  Same	
  funcon/piece	
  of	
  code	
  may	
  be	
  developed	
  at	
  same	
  me	
  by	
  
   Google…	
  
•  Tool	
  based	
  on	
  Gerrit	
  
•  Service	
  unavailable	
  during	
  >6	
  months	
  in	
  2011…	
  

       h]p://source.android.com/source/submit-­‐patches.html	
  
       h]ps://android-­‐review.googlesource.com	
  
AndroVM - Introduction



                                      Buildroid	
  



Objec-ves	
  :	
  	
  
§  Provide	
  funconal	
  and	
  robust	
  Android	
  Virtual	
  images	
  	
  
§  Environment	
  :	
  unl	
  now	
  mainly	
  focused	
  on	
  VirtualBox,	
  but	
  
    images	
  are	
  running	
  well	
  on	
  VMWare	
  (minus	
  some	
  funcons)	
  
                                                	
  
AndroVM - AOSP Porting
                                                                   to VirtualBox

?	
   Genesis	
  	
  
      Beginning	
  with	
  ICS,	
  AOSP	
  includes	
  a	
  «	
  VirtualBox	
  target	
  »	
  but	
  many	
  funcons	
  were	
  
      missing.	
  
      -­‐>	
  That’s	
  how	
  come	
  the	
  idea	
  to	
  work	
  on	
  VirtualBox	
  support	
  in	
  AOSP…	
  
      	
  
      	
  
      Func-ons	
  developed	
  
      §    Mouse	
  	
                                                       §  WiFi	
  emula-on	
  	
  
      §    Ethernet	
  	
                                                    §  OpenGL	
  ES	
  2.0	
  Hardware	
  	
  
                                                                              §  AndroVM	
  configura-on	
  tool	
  
      §    RTC	
  (Real-­‐Time	
  Clock)	
  	
  
      §    Power	
  Management	
  	
  
      §    Audio	
  	
  
      §    File	
  sharing	
  with	
  the	
  host	
  	
  
      §    USB	
  
AndroVM – ARM support



Now,	
  AndroVM	
  and	
  android-­‐x86	
  images	
  can	
  run	
  
na-ve	
  ARM	
  code	
  
	
  
à  Got	
  a	
  phone,	
  Reverse-­‐engineered	
  the	
  “houdini”	
  libraries	
  implemenng	
  “ARM	
  
     translaon”,	
  Integrated	
  them	
  in	
  AndroVM	
  and	
  it	
  worked	
  
	
  
	
  
h]p://androvm.org/blog/ex-­‐buildroid/2012/06/11/running-­‐arm-­‐apps/	
  
h]p://androvm.org/blog/ex-­‐buildroid/2012/06/18/using-­‐arm-­‐emulaon-­‐on-­‐other-­‐
android-­‐x86-­‐distribuons/	
  
AndroVM – Why ?


>	
  200	
  000	
  VM	
  downloads	
  in	
  6	
  months	
  
	
  
Useful	
  for	
  ?	
  
Developers	
  replacing	
  the	
  SDK	
  emulator	
  	
  
People	
  wanng	
  to	
  run	
  Android	
  applicaons	
  on	
  their	
  x86	
  systems	
  
People	
  wanng	
  to	
  make	
  a	
  Demo	
  
OEM/Manufacturers	
  wanng	
  to	
  provide	
  development/demo	
  pla6orm	
  
	
  
Why	
  ?	
  
       §  Performance	
  	
  
       §  OpenGL	
  issues	
  	
  
       §  User-­‐friendly	
  
DEMO
AndroVM – More to come



We’re	
  currently	
  working	
  on	
  :	
  
§  An	
  AndroVM	
  management	
  tool	
  :	
  create/modify	
  VM,	
  start/stop	
  them,	
  
     automacally	
  connect	
  adb,	
  ...	
  
§  Sensors	
  emula-on	
  :	
  either	
  manual	
  or	
  using	
  input	
  data	
  from	
  USB-­‐connected	
  
     Android	
  device	
  
	
  
What	
  could	
  be	
  next	
  :	
  
§  Mul-­‐touch	
  emulaon	
  
§  Bluetooth	
  emulaon	
  
§  NFC	
  emulaon	
  
     	
  
	
  
	
  
	
  
AndroVM – Need your Help !


                             From	
  “pure	
  technical	
  interest”	
  
 -­‐>	
  Android	
           to	
  usage…	
  
 developers,	
               §  Do	
  you	
  feel	
  the	
  need	
  of	
  an	
  alternave	
  to	
  the	
  
                                 Android	
  SDK	
  emulator	
  ?	
  
 please	
  help	
            §  Are	
  you	
  able	
  to	
  use	
  HAXM	
  and	
  Hardware	
  
                                 OpenGL	
  or	
  is	
  it	
  impossible	
  to	
  use	
  in	
  your	
  
us	
  make	
  your	
             environment	
  ?	
  
life	
  easier	
  J	
       §  What	
  funcons	
  would	
  you	
  need	
  the	
  most	
  ?	
  
                                 Bluetooth	
  ?	
  NFC	
  ?	
  WiFi-­‐Direct	
  ?...	
  
           	
                §  Are	
  you	
  able	
  to	
  test	
  your	
  apps	
  with	
  variable	
  
                                 network	
  quality/reliability	
  ?	
  Do	
  you	
  feel	
  the	
  
                                 need	
  for	
  it	
  ?	
  
                                    	
  
                                 	
  à	
  dan@androvm.org	
  
AOSP – Links


AOSP	
  building	
  instruc-ons:	
  h]p://source.android.com	
  
	
  
Android	
  Google	
  groups:	
  
           	
  h]p://groups.google.com/group/android-­‐building	
  
           	
  h]p://groups.google.com/group/android-­‐porng	
  
           	
  h]p://groups.google.com/group/android-­‐pla6orm	
  
           	
  h]p://groups.google.com/group/android-­‐kernel	
  
	
  
xda-­‐developers	
  forum	
  :	
  	
  
           	
  h]p://forum.xda-­‐developers.com/forumdisplay.php?f=564	
  
	
  
Cyanogenmod	
  forum	
  :	
  h]p://forum.cyanogenmod.com	
  
	
  
android-­‐x86	
  project	
  :	
  h]p://www.android-­‐x86.org	
  
	
  
AndroVM	
  project	
  :	
  h]p://www.androvm.org/	
  
      	
  
 


Ques-ons	
  ?	
  
	
  
	
  
	
  
 
	
  
       MERCI	
  !	
  
        	
  




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

More Related Content

What's hot

Android 10 Internals Update
Android 10 Internals UpdateAndroid 10 Internals Update
Android 10 Internals UpdateOpersys inc.
 
Droidcon 2013 France - Android Platform Anatomy
Droidcon 2013 France - Android Platform AnatomyDroidcon 2013 France - Android Platform Anatomy
Droidcon 2013 France - Android Platform AnatomyBenjamin Zores
 
Q4.11: Porting Android to new Platforms
Q4.11: Porting Android to new PlatformsQ4.11: Porting Android to new Platforms
Q4.11: Porting Android to new PlatformsLinaro
 
Introduction to OpenBricks: an Embedded Linux Framework
Introduction to OpenBricks: an Embedded Linux FrameworkIntroduction to OpenBricks: an Embedded Linux Framework
Introduction to OpenBricks: an Embedded Linux FrameworkBenjamin Zores
 
Embedded Android Workshop with Marshmallow
Embedded Android Workshop with MarshmallowEmbedded Android Workshop with Marshmallow
Embedded Android Workshop with MarshmallowOpersys inc.
 
Android Platform Debugging and Development
Android Platform Debugging and DevelopmentAndroid Platform Debugging and Development
Android Platform Debugging and DevelopmentOpersys inc.
 
Android Platform Debugging and Development
Android Platform Debugging and DevelopmentAndroid Platform Debugging and Development
Android Platform Debugging and DevelopmentOpersys inc.
 
Enhancing and modifying_the_core_android_os
Enhancing and modifying_the_core_android_osEnhancing and modifying_the_core_android_os
Enhancing and modifying_the_core_android_osArnav Gupta
 
CloudOpen 2014 - Extending Cloud Automation, When OpenStack Meets Ansible
CloudOpen 2014 - Extending Cloud Automation, When OpenStack Meets AnsibleCloudOpen 2014 - Extending Cloud Automation, When OpenStack Meets Ansible
CloudOpen 2014 - Extending Cloud Automation, When OpenStack Meets AnsibleBenjamin Zores
 
The Android graphics path, in depth
The Android graphics path, in depthThe Android graphics path, in depth
The Android graphics path, in depthChris Simmonds
 
Android Platform Debugging and Development
Android Platform Debugging and DevelopmentAndroid Platform Debugging and Development
Android Platform Debugging and DevelopmentOpersys inc.
 
Embedded Android Workshop with Nougat
Embedded Android Workshop with NougatEmbedded Android Workshop with Nougat
Embedded Android Workshop with NougatOpersys inc.
 
Embedded Android Workshop
Embedded Android WorkshopEmbedded Android Workshop
Embedded Android WorkshopOpersys inc.
 
Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...
Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...
Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...Opersys inc.
 
Android crash debugging
Android crash debuggingAndroid crash debugging
Android crash debuggingAshish Agrawal
 
Android Things Internals
Android Things InternalsAndroid Things Internals
Android Things InternalsOpersys inc.
 
Android OS Porting: Introduction
Android OS Porting: IntroductionAndroid OS Porting: Introduction
Android OS Porting: IntroductionJollen Chen
 
Inside Android's UI
Inside Android's UIInside Android's UI
Inside Android's UIOpersys inc.
 
A War Story: Porting Android 4.0 to a Custom Board (ELCE 2012)
A War Story: Porting Android 4.0 to a Custom Board (ELCE 2012)A War Story: Porting Android 4.0 to a Custom Board (ELCE 2012)
A War Story: Porting Android 4.0 to a Custom Board (ELCE 2012)Matthias Brugger
 

What's hot (20)

Android 10 Internals Update
Android 10 Internals UpdateAndroid 10 Internals Update
Android 10 Internals Update
 
Droidcon 2013 France - Android Platform Anatomy
Droidcon 2013 France - Android Platform AnatomyDroidcon 2013 France - Android Platform Anatomy
Droidcon 2013 France - Android Platform Anatomy
 
Q4.11: Porting Android to new Platforms
Q4.11: Porting Android to new PlatformsQ4.11: Porting Android to new Platforms
Q4.11: Porting Android to new Platforms
 
Introduction to OpenBricks: an Embedded Linux Framework
Introduction to OpenBricks: an Embedded Linux FrameworkIntroduction to OpenBricks: an Embedded Linux Framework
Introduction to OpenBricks: an Embedded Linux Framework
 
Embedded Android Workshop with Marshmallow
Embedded Android Workshop with MarshmallowEmbedded Android Workshop with Marshmallow
Embedded Android Workshop with Marshmallow
 
Android Internals
Android InternalsAndroid Internals
Android Internals
 
Android Platform Debugging and Development
Android Platform Debugging and DevelopmentAndroid Platform Debugging and Development
Android Platform Debugging and Development
 
Android Platform Debugging and Development
Android Platform Debugging and DevelopmentAndroid Platform Debugging and Development
Android Platform Debugging and Development
 
Enhancing and modifying_the_core_android_os
Enhancing and modifying_the_core_android_osEnhancing and modifying_the_core_android_os
Enhancing and modifying_the_core_android_os
 
CloudOpen 2014 - Extending Cloud Automation, When OpenStack Meets Ansible
CloudOpen 2014 - Extending Cloud Automation, When OpenStack Meets AnsibleCloudOpen 2014 - Extending Cloud Automation, When OpenStack Meets Ansible
CloudOpen 2014 - Extending Cloud Automation, When OpenStack Meets Ansible
 
The Android graphics path, in depth
The Android graphics path, in depthThe Android graphics path, in depth
The Android graphics path, in depth
 
Android Platform Debugging and Development
Android Platform Debugging and DevelopmentAndroid Platform Debugging and Development
Android Platform Debugging and Development
 
Embedded Android Workshop with Nougat
Embedded Android Workshop with NougatEmbedded Android Workshop with Nougat
Embedded Android Workshop with Nougat
 
Embedded Android Workshop
Embedded Android WorkshopEmbedded Android Workshop
Embedded Android Workshop
 
Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...
Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...
Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...
 
Android crash debugging
Android crash debuggingAndroid crash debugging
Android crash debugging
 
Android Things Internals
Android Things InternalsAndroid Things Internals
Android Things Internals
 
Android OS Porting: Introduction
Android OS Porting: IntroductionAndroid OS Porting: Introduction
Android OS Porting: Introduction
 
Inside Android's UI
Inside Android's UIInside Android's UI
Inside Android's UI
 
A War Story: Porting Android 4.0 to a Custom Board (ELCE 2012)
A War Story: Porting Android 4.0 to a Custom Board (ELCE 2012)A War Story: Porting Android 4.0 to a Custom Board (ELCE 2012)
A War Story: Porting Android 4.0 to a Custom Board (ELCE 2012)
 

Similar to Droidcon uk2012 androvm

An Introduction To Android
An Introduction To AndroidAn Introduction To Android
An Introduction To Androidnatdefreitas
 
Working with the AOSP - Linaro Connect Asia 2013
Working with the AOSP - Linaro Connect Asia 2013Working with the AOSP - Linaro Connect Asia 2013
Working with the AOSP - Linaro Connect Asia 2013Opersys inc.
 
[2015/2016] Apache Cordova
[2015/2016] Apache Cordova[2015/2016] Apache Cordova
[2015/2016] Apache CordovaIvano Malavolta
 
Making a Headless Android Device (Oslo Embedded Meetup 2018)
Making a Headless Android Device (Oslo Embedded Meetup 2018)Making a Headless Android Device (Oslo Embedded Meetup 2018)
Making a Headless Android Device (Oslo Embedded Meetup 2018)Patricia Aas
 
Cordova: APIs and instruments
Cordova: APIs and instrumentsCordova: APIs and instruments
Cordova: APIs and instrumentsIvano Malavolta
 
Making a Headless Android Device
Making a Headless Android DeviceMaking a Headless Android Device
Making a Headless Android DevicePatricia Aas
 
Android Application Development Using Java
Android Application Development Using JavaAndroid Application Development Using Java
Android Application Development Using Javaamaankhan
 
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)Ryan Cuprak
 
Hybrid Mobile Applications
Hybrid Mobile ApplicationsHybrid Mobile Applications
Hybrid Mobile ApplicationsRuwan Ranganath
 
lecture-2-android-dev.pdf
lecture-2-android-dev.pdflecture-2-android-dev.pdf
lecture-2-android-dev.pdfjakjak36
 
Introduction to android sessions new
Introduction to android   sessions newIntroduction to android   sessions new
Introduction to android sessions newJoe Jacob
 
Android porting for dummies @droidconin 2011
Android porting for dummies @droidconin 2011Android porting for dummies @droidconin 2011
Android porting for dummies @droidconin 2011pundiramit
 
Lecture02web 140phpapp01
Lecture02web 140phpapp01Lecture02web 140phpapp01
Lecture02web 140phpapp01letuan9999
 

Similar to Droidcon uk2012 androvm (20)

An Introduction To Android
An Introduction To AndroidAn Introduction To Android
An Introduction To Android
 
Working with the AOSP - Linaro Connect Asia 2013
Working with the AOSP - Linaro Connect Asia 2013Working with the AOSP - Linaro Connect Asia 2013
Working with the AOSP - Linaro Connect Asia 2013
 
[2015/2016] Apache Cordova
[2015/2016] Apache Cordova[2015/2016] Apache Cordova
[2015/2016] Apache Cordova
 
Introduction to android
Introduction to androidIntroduction to android
Introduction to android
 
Making a Headless Android Device (Oslo Embedded Meetup 2018)
Making a Headless Android Device (Oslo Embedded Meetup 2018)Making a Headless Android Device (Oslo Embedded Meetup 2018)
Making a Headless Android Device (Oslo Embedded Meetup 2018)
 
Cordova: APIs and instruments
Cordova: APIs and instrumentsCordova: APIs and instruments
Cordova: APIs and instruments
 
Making a Headless Android Device
Making a Headless Android DeviceMaking a Headless Android Device
Making a Headless Android Device
 
Android Programming
Android ProgrammingAndroid Programming
Android Programming
 
Android Application Development Using Java
Android Application Development Using JavaAndroid Application Development Using Java
Android Application Development Using Java
 
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
 
Hybrid Mobile Applications
Hybrid Mobile ApplicationsHybrid Mobile Applications
Hybrid Mobile Applications
 
Android Lollipop
Android LollipopAndroid Lollipop
Android Lollipop
 
lecture-2-android-dev.pdf
lecture-2-android-dev.pdflecture-2-android-dev.pdf
lecture-2-android-dev.pdf
 
Apache Cordova
Apache CordovaApache Cordova
Apache Cordova
 
Introduction to android sessions new
Introduction to android   sessions newIntroduction to android   sessions new
Introduction to android sessions new
 
Apache cordova
Apache cordovaApache cordova
Apache cordova
 
Android Platform Architecture
Android Platform ArchitectureAndroid Platform Architecture
Android Platform Architecture
 
Android porting for dummies @droidconin 2011
Android porting for dummies @droidconin 2011Android porting for dummies @droidconin 2011
Android porting for dummies @droidconin 2011
 
Android zensar
Android zensarAndroid zensar
Android zensar
 
Lecture02web 140phpapp01
Lecture02web 140phpapp01Lecture02web 140phpapp01
Lecture02web 140phpapp01
 

Recently uploaded

A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Scott Andery
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 

Recently uploaded (20)

A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 

Droidcon uk2012 androvm

  • 1. AndroVM   DROIDCON LONDON An  alterna-ve   25-26th October to  Android  SDK   Daniel FAGES : emulator   à  dan@androvm.org
  • 2. Agenda Android  Open  Source  Project              Presenta-on            Architecture            Building/Tes-ng            Contribu-on     AndroVM  project              Presenta-on            Usage            Architecture            We  need  your  help  !  
  • 3. Android Open Source Project Ini-a-ve   from   the   Open   Handset   Alliance,   leaded   by   Google,   to   create   an   open   mobile   pla6orm   for   telcos,   OEMs   and   developers.     Open  Source  project….but  strong  dependency  to  Google     Ten   major   releases   (1.0,   1.1,   CupCake,   Donut,   Eclair,   Froyo,   Gingerbread,  Honeycomb,  ICS,  JB)  since  September  2008     more  than  450M  devices  and  >1.3M  ac-va-ons  a  day  !    
  • 5. Jelly Bean – Devices support The  last  release  of  AOSP  (Jelly  Bean/4.1)  supports    :   •  Nexus  S  (GSM,  CDMA/WiMAX)   •  Galaxy  Nexus  (GSM/HSDPA+,  CDMA/LTE)   •  Nexus  7   •  Motorola  Xoom  (WiFi  only,  CDMA/LTE)   •  PandaBoard  (development  board)     But,  even  for  those,   -­‐>  Some  components  are  only  available  in  binary  form     -­‐>  Some  other  are  even  not  publicly  available    
  • 6. AOSP – Source code interests “ROM   Cooking”   on   smartphones   and   tablets   (ex   :   CyanogenMod  project  –  more  than  1M  devices)   Use   of   Android   on   new   pla[orms,   different   from   smartphones  and  tablets   Applica-on  debugging  and  op-miza-on     Source  code  security  analysis    
  • 7. AOSP JB - Building Sources   •  Informaon  Source  :  h]p://source.android.com   •  OS  Pre-­‐requisite  :  h]p://source.android.com/source/inializing.html   •  Download  :  h]p://source.android.com/source/downloading.html     Building   system   :   4GB   RAM   minimum   (16GB   be]er),   25GB   free   storage  minimum  (90GB  to  build  all  ‘targets’)  different  from  smartphones   and  tablets     Setup  /  repo  tool  :   $ mkdir ~/bin $ PATH=~/bin:$PATH $ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo $ chmod a+x ~/bin/repo
  • 8. AOSP JB - Building Source  code  download  :   $ mkdir android-4.1.2 $ repo init -u https://android.googlesource.com/platform/manifest -b android-4.1.2 $ repo sync Target  selecon  and  building:   $ source build/envsetup.sh $ lunch (select  target)   $ make –jX (where  X  is  the  number  of  parallel  compilaon  processes) -­‐>  A  complete  build  can  take  from  20  minutes  to  8  hours  depending  on   the  building  system  configuraon…  (JBQ’s  host  :  Dual  Xeon  E5620  Quad-­‐ core,  24GB  RAM  à30  minutes  to  build  ICS  for  the  Galaxy  Nexus).     Last  step  :  ROM  install  on  device,  or  execuon  using  the  emulator  or  a   virtual  machine.  
  • 9. AOSP – Sources code Structure bionic/  :  «  libc  »  replacement   bootable/  :  reference  bootloader   build/  :  AOSP  build  scripts   cts/  :  «  Compability  Test  Suite  »     dalvik/  :  Dalvik  virtual  machine   development/  :  Development  tools   device/  :  Device  specific  files   docs/  :  source.android.com  source  files   external/  :  External  projects  used  by  AOSP   frameworks/  :  System  services,  android.*  JAVA  classes,  …   hardware/  :  Hardware  support  libraries   libcore/  :  «  Apache  Harmony  »  project   ndk/  :  Nave  Development  Kit   packages/  :  Basic  Android  applicaons  and  services     prebuilt/  prebuits/:  Precompiled  binaries   sdk/  :  Sorware  Development  Kit   system/  :  System  components  
  • 10. AOSP – CDD & CTS CDD  =  Compa-bility  Defini-on  Document   •  Android  devices  specificaons  (one  CDD  for  each  Android  version),   •  A   required   condion   (but   not   enough…)   to   get   access   to   the   Google   Market/ Play  is  that  the  device  respect  the  Android  version  CDD.   •  Pre-­‐requisites  can  drama-cally  change  from  one  version  to  an  other         CTS  =  Compa-bility  Test  Suite     •  Tesng   tools   used   to   (partly)   check   the   conformity   of   a   device     (and  its  Android  ROM)  towards  the  target  CDD.   h]p://source.android.com/compability/cts-­‐intro.html  
  • 11. AOSP – Contribution Everybody  can  contribute  code  to  Android,  but…     •  Every  contribuon  is  subject  to  Google’s  valida-on     ü  Code  quality  :  Android  «  code  style  guidelines  »     ü  Funconal  code   ü  Strategic/Polic  ?     •  Same  funcon/piece  of  code  may  be  developed  at  same  me  by   Google…   •  Tool  based  on  Gerrit   •  Service  unavailable  during  >6  months  in  2011…   h]p://source.android.com/source/submit-­‐patches.html   h]ps://android-­‐review.googlesource.com  
  • 12. AndroVM - Introduction Buildroid   Objec-ves  :     §  Provide  funconal  and  robust  Android  Virtual  images     §  Environment  :  unl  now  mainly  focused  on  VirtualBox,  but   images  are  running  well  on  VMWare  (minus  some  funcons)    
  • 13. AndroVM - AOSP Porting to VirtualBox ?   Genesis     Beginning  with  ICS,  AOSP  includes  a  «  VirtualBox  target  »  but  many  funcons  were   missing.   -­‐>  That’s  how  come  the  idea  to  work  on  VirtualBox  support  in  AOSP…       Func-ons  developed   §  Mouse     §  WiFi  emula-on     §  Ethernet     §  OpenGL  ES  2.0  Hardware     §  AndroVM  configura-on  tool   §  RTC  (Real-­‐Time  Clock)     §  Power  Management     §  Audio     §  File  sharing  with  the  host     §  USB  
  • 14. AndroVM – ARM support Now,  AndroVM  and  android-­‐x86  images  can  run   na-ve  ARM  code     à  Got  a  phone,  Reverse-­‐engineered  the  “houdini”  libraries  implemenng  “ARM   translaon”,  Integrated  them  in  AndroVM  and  it  worked       h]p://androvm.org/blog/ex-­‐buildroid/2012/06/11/running-­‐arm-­‐apps/   h]p://androvm.org/blog/ex-­‐buildroid/2012/06/18/using-­‐arm-­‐emulaon-­‐on-­‐other-­‐ android-­‐x86-­‐distribuons/  
  • 15. AndroVM – Why ? >  200  000  VM  downloads  in  6  months     Useful  for  ?   Developers  replacing  the  SDK  emulator     People  wanng  to  run  Android  applicaons  on  their  x86  systems   People  wanng  to  make  a  Demo   OEM/Manufacturers  wanng  to  provide  development/demo  pla6orm     Why  ?   §  Performance     §  OpenGL  issues     §  User-­‐friendly  
  • 16. DEMO
  • 17. AndroVM – More to come We’re  currently  working  on  :   §  An  AndroVM  management  tool  :  create/modify  VM,  start/stop  them,   automacally  connect  adb,  ...   §  Sensors  emula-on  :  either  manual  or  using  input  data  from  USB-­‐connected   Android  device     What  could  be  next  :   §  Mul-­‐touch  emulaon   §  Bluetooth  emulaon   §  NFC  emulaon          
  • 18. AndroVM – Need your Help ! From  “pure  technical  interest”   -­‐>  Android   to  usage…   developers,   §  Do  you  feel  the  need  of  an  alternave  to  the   Android  SDK  emulator  ?   please  help   §  Are  you  able  to  use  HAXM  and  Hardware   OpenGL  or  is  it  impossible  to  use  in  your   us  make  your   environment  ?   life  easier  J   §  What  funcons  would  you  need  the  most  ?   Bluetooth  ?  NFC  ?  WiFi-­‐Direct  ?...     §  Are  you  able  to  test  your  apps  with  variable   network  quality/reliability  ?  Do  you  feel  the   need  for  it  ?      à  dan@androvm.org  
  • 19. AOSP – Links AOSP  building  instruc-ons:  h]p://source.android.com     Android  Google  groups:    h]p://groups.google.com/group/android-­‐building    h]p://groups.google.com/group/android-­‐porng    h]p://groups.google.com/group/android-­‐pla6orm    h]p://groups.google.com/group/android-­‐kernel     xda-­‐developers  forum  :      h]p://forum.xda-­‐developers.com/forumdisplay.php?f=564     Cyanogenmod  forum  :  h]p://forum.cyanogenmod.com     android-­‐x86  project  :  h]p://www.android-­‐x86.org     AndroVM  project  :  h]p://www.androvm.org/    
  • 20.   Ques-ons  ?        
  • 21.     MERCI  !       Daniel  Fages   dan@androvm.org   dfages@genymobile.com