SlideShare a Scribd company logo
1 of 44
Download to read offline
1
Is Android the
new Embedded Linux?
AnDevCon V
Karim Yaghmour
karim.yaghmour@opersys.com
2
These slides are made available to you under a Creative Commons Share-
Alike 3.0 license. The full terms of this license are here:
https://creativecommons.org/licenses/by-sa/3.0/
Attribution requirements and misc., PLEASE READ:
● This slide must remain as-is in this specific location (slide #2), everything
else you are free to change; including the logo :-)
● Use of figures in other documents must feature the below “Originals at”
URL immediately under that figure and the below copyright notice where
appropriate.
● You are free to fill in the “Delivered and/or customized by” space on the
right as you see fit.
● You are FORBIDEN from using the default “About” slide as-is or any of its
contents.
●
You are FORBIDEN from using any content provided by 3rd
parties without
the EXPLICIT consent from those parties.
(C) Copyright 2013, Opersys inc.
These slides created by: Karim Yaghmour
Originals at: www.opersys.com/community/docs
Delivered and/or customized by
3
About
● Author of:
● Introduced Linux Trace Toolkit in 1999
● Originated Adeos and relayfs (kernel/relay.c)
● Training, Custom Dev, Consulting, ...
4
1. Why are we asking this question?
● Android is based on Linux
● Android is “embedded”
● Android is extremely popular
● Android enjoys good support from SoC vendors
Mostly - The trends are there
5
1.1. Why did Embedded Linux rise?
● EETimes 2005 survey ...
http://www.embedded.com/electronics-blogs/-
include/4025539/Embedded-systems-survey-Operating-
systems-up-for-grabs
● EETimes 2013 survey
http://www.slideshare.net/MTKDMI/2013-embedded-market-
study-final
http://www.eetimes.com/electronics-news/4407897/Android--
FreeRTOS-top-EE-Times--2013-embedded-survey
6
1.2. Current consumer trends
● Rise of touch-based devices
● Race with Apple on features / price
● Mobile devices outselling PCs since 2010
● Increasingly inexpensive low-end touch-based
devices
7
Source:
“From Altair to iPad: 35 years of personal computer market share”, Jeremy Reimer,
Ars Technica, August 2012
http://arstechnica.com/business/2012/08/from-altair-to-ipad-35-years-of-personal-computer-market-share/
This material is (C) 2012, Ars Technica and is NOT CC-BY-SA.
8
Source:
“From Altair to iPad: 35 years of personal computer market share”, Jeremy Reimer,
Ars Technica, August 2012
http://arstechnica.com/business/2012/08/from-altair-to-ipad-35-years-of-personal-computer-market-share/
This material is (C) 2012, Ars Technica and is NOT CC-BY-SA.
9
Source:
“From Altair to iPad: 35 years of personal computer market share”, Jeremy Reimer,
Ars Technica, August 2012
http://arstechnica.com/business/2012/08/from-altair-to-ipad-35-years-of-personal-computer-market-share/
This material is (C) 2012, Ars Technica and is NOT CC-BY-SA.
10
1.3. Current embedded trends
● Rise of cheap 32-bit CPUs
● Rise of inexpensive storage
● Rise of inexpensive eval boards
● BeagleBoards
● BeagleBone (Black)
● RaspberryPi
● For all practical purposes, this hardware is disposable
● Arduino / Maker / DIY trend
● UBM 2013 Embedded Market Study
11
2. Embedded Linux, a look back
Projects Conferences:
Linux kernel 1991... OLS 1999
1996 CELF ELC 2004
1998 ABS 2011
1999
RTAI 1999 Books
1999E. Anderson
U-Boot 1999 Karim Yaghmour
2000E. Anderson
2001
Preemption patches 2005
2009Debian
2010LF / Intel Companies:
Matchbox
RTLinux V. Yodaiken / M. Barabanov
uClinux / uCDimm J. Dionne / Motorola Dragonball
BusyBox B. Perens ('96) / Debian, then E. Anderson
P. Mantegazza
Buildroot Craig Hollabaugh
W. Denk
uClibc Chris Hallinan
I-pipe / Adeos P. Gerum (K. Yaghmour)
S.-Thorsten Dietrich / I. Molnar / T. Gleixner
eglibc
Yocto
Lineo
Attempts at Linux mobile GUIs MontaVista
Maemo / MeeGo TimeSys
Qtopia
12
3. Android, whereth comest thou?
● 2002:
● Sergey Brin and Larry Page started using Sidekick smartphone
● Sidekick one of 1st smartphones integrating web, IM, mail, etc.
● Sidekick was made by Danger inc., co-founded by Andy Rubin (CEO)
● Brin/Page met Rubin at Stanford talk he gave on Sidekick’s development
● Google was default search engine on Sidekick
● 2004:
● Despite cult following, Sidekick wasn’t making $
● Danger inc. board decided to replace Rubin
● Rubin left. Got seed $. Started Android inc. Started looking for VCs.
● Goal: Open mobile hand-set platform
● 2005 - July:
● Got bought by Google for undisclosed sum :)
● 2007 - November:
● Open Handset Alliance announced along with Android
13
4. What's Embedded Linux?
14
4. What's Embedded Linux?
●
A set of ad-hoc methods to package the Linux kernel with a
(minimal) filesystem.
● FS content “to be determined” case-by-case
● APIs are specific to each device/build
● “Core software”:
● BusyBox
● U-Boot
● GNU Toolchain
●
Your flavor of:
● glibc or uClibc or eglibc
● yocto or buildroot or eldk or ltib or ptxdist or ...
●
No serious UX framework
15
16
5. What's Android?
17
5. What's Android?
●
... apart from its increasingly well known UX ...
●
Fully-integrated Eclipse IDE
●
SDK/NDK
●
ADB
●
Fastboot
●
Published, well-known, and very rich APIs
●
A large and growing developer community
●
And still we can use the usual suspects:
● GNU toolchain, BusyBox, u- boot, glibc, ...
An actual standardized dev. env. across all product lines
18
19
6. Licensing differences
● Kernel:
● GNU General Public License (a.k.a. GPL)
● AOSP:
● Mostly Apache License 2.0 (a.k.a. ASL)
● Having GPL-free user-space was a design goal
● A few GPL and LGPL parts: mainly BlueZ and DBUS
● Some key components in BSD: Bionic and Toolbox
● “external/” directory contains a mixed bag of licenses, incl. lots of GPL
● Android Robot:
● Very much like the Linux penguin
● Android name:
● As descriptor only: “for Android”
● Use for labelling device requires talking to Google
20
7. Why did Android use Linux?
“The Linux vs BSD decision was made before Google acquired Android.
While starting with NetBSD's kernel was tempting, the Linux kernel wasn't
that much larger (one of the concerns), had quite a lot of support from
silicon vendors and OEMs, and a larger developer community (easier to
find folks with Linux kernel expertise).
The bright line between the kernel and userspace drawn by the statement
at the top of the Linux COPYING file was certainly helpful in making this
decision. Explaining that the kernel is GPLv2 and userspace is
Apache2/BSD/MIT is something easily understood by OEMs, and most
OEMs don't have a problem with the general idea that the kernel is not
where you differentiate your products.”
Brian Swetland, LWN, March 2011
21
8. Embedded Android? Why?
●
Feature set
●
User interface
●
API
●
Developer community
● App ecosystem
● Built on Linux
● Very strong SoC vendor support
● Permissive licensing
● Examples:
● Consumer electronics
● Medical
●
Defence
● Space
22
9. Android's Challenges
● Documentation / Information
● Stack Limitations
● Stack Customization
● Boot time
● Legacy Integration
● Development Hardware
● AOSP tree
● Build Times
● Headless Use
● Dependency on Google
23
9.1. Documentation / Information
● Official doc for app dev is great
● Official doc for platform dev is practically non-existent
● A few official forums:
● android-building
● android-platform
● android-porting
● Conference talks / presentations
● Scattered documentation all over the web
● My book (disclaimer applies):
24
9.2. Stack Limitations
● Key functionality not supported by default:
● Ethernet
● AM/FM radio
● Real-time
● Supported functionality doesn't expose everything:
● BlueZ
● USB
● wpa_supplicant
● Bionic isn't a full glibc replacement:
● No SystemV IPC
● No locales
● etc.
● Stack is very deep and can be difficult to modify
25
9.3. Stack Customization
● Lots of default packages
● Modularity wasn't really part of the design
● No “make menuconfig”
● Can't easily select/change:
● Which packages to include
● Which system services are running
● Packages' features
● Ex:
● Can relatively easily replace default home screen
● Modifying status bar requires digging in code
26
9.4. Boot time
● Very lengthy boot process
● Bootloader
● Kernel
● Init
● Zygote
● System services
● DEX optimization
● Key apps
● Unlikely to be able to speed this through trimming ...
● Try:
● Suspend to flash
● Checkpointing
27
9.5. Legacy Integration
● What if I ... ?:
● have been using my custom rootfs forever
● really need glibc
● have a huge stack based on “legacy Linux”
● don't want to deal with AOSP's build system
● want BusyBox
● want to unify with a std Linux desktop
● need things the AOSP doesn't provide
● have a ton of Linux drivers and want those to be used by Android
● ...
● Know this: filesystem integration is trivial:
● Change build system to copy your custom rootfs
● Change init scripts to start you own daemons
● Use sockets to communicate
● Know this too: std Linux desktop integration is NOT
28
29
30
9.6. Development Hardware
● Can I use a standard phone?
● Not really
● Even if you could – some things can only be done in the platform
● Which board is best to evaluate Android?
● BeagleBone / BeagleBoard
● PandaBoard
● OrigenBoard
● iMX
● DragonBoard
● AM335x Start Kit
● Still:
● Nothing that has a phone/tablet form-factor + is entirely open
31
9.7. AOSP tree
● Which tree?
● Google's
● Linaro's
● TI's
● Freescale's
● Qualcomm's
● etc.
● ... which kernel ... ?
32
9.8. Build Times
● Horrible
● On quad-core i7 w/ 8GB RAM:
● GB = 20min
● ICS = 55min
● JB = 75min
● Even Google's own guys are at around 30min
for JB.
● This is a big, unresolved pain
33
9.9. Headless Use
+ =
“And then GNU came back for revenge ...” -- Tarantino's sequel
34
9.9.1. Why?
● Took me a long time to wrap my head around
● “Why don't you just use embedded Linux?”
● What's “Embedded Linux” anyway?
● NEW: Nexus Q
35
9.9.2. Possibilities
● No Java:
● TinyAndroid:
$ BUILD_TINY_ANDROID=true make -j4
● AOSP w/ custom products .mk file
● The full-blown stack without:
● SurfaceFlinger
● WindowManager
● WallpaperService
● InputMethodManager
36
9.9.3. Tiny Android
● 3MB filesystem
● Minimal root fs
● init
● toolbox + shell
● adb
● bionic + utility libs
● No “system/framework/”
● No “system/app”
37
38
9.9.4. AOSP w/ custom product .mk
● Have a look at:
● build/target/product/*.mk
● Create your own device under “/device” and
have fun
● Disable zygote at startup
● Remove all apks
● ...
39
9.9.5. Full stack
● Disable:
● SurfaceFlinger
● WindowManager
● WallpaperService
● InputMethodManager
● SystemUI
● Don't let SurfaceFlinger Client try to open binder to SurfaceFlinger
● Feed bogus values back from SurfaceFlinger Client
● Disable qemud (emulator artefact)
● Tweak internals by disabling key calls:
● In ActivityStack.java:
– startHomeActivityLocked()
– setAppStartingWindow()
● wm.detectSafeMode()
● wm.systemReady()
● wm.reclaimSuraceMemoryLocked()
40
41
● Demo
● Patch walkthrough
● ro.config.headless property
42
9.10. Dependency on Google
● Google is the master of Android
● Google's business prerogatives may not be yours
● Most new features come from Google
● Upstreaming is tough/lenghthy
● What if Google stops developing Android?
● Still, and this is important: they like to see Android
used in embedded systems.
43
10. Where do we go from here?
● Trends don't seem to be slowing down
● Interesting:
● Nexus Q - headless from Google
– i.e. Google moving to “true” embedded?
● Ubuntu Tablet - SurfaceFlinger, not X nor Wayland
– i.e. Std Linux moving to use Android parts?
● We're very much in uncharted waters
44
Thank you ...
karim.yaghmour@opersys.com

More Related Content

What's hot

Embedded Android Workshop
Embedded Android WorkshopEmbedded Android Workshop
Embedded Android WorkshopOpersys inc.
 
Android Things: Android for IoT
Android Things: Android for IoTAndroid Things: Android for IoT
Android Things: Android for IoTOpersys inc.
 
Android Jumpstart ESC SV 2012 Part I
Android Jumpstart ESC SV 2012 Part IAndroid Jumpstart ESC SV 2012 Part I
Android Jumpstart ESC SV 2012 Part IOpersys inc.
 
Embedded Android Workshop with Nougat
Embedded Android Workshop with NougatEmbedded Android Workshop with Nougat
Embedded Android Workshop with NougatOpersys inc.
 
Is Android the New Embedded Linux? at AnDevCon VI
Is Android the New Embedded Linux? at AnDevCon VIIs Android the New Embedded Linux? at AnDevCon VI
Is Android the New Embedded Linux? at AnDevCon VIOpersys inc.
 
Android Platform Debugging and Development
Android Platform Debugging and DevelopmentAndroid Platform Debugging and Development
Android Platform Debugging and DevelopmentOpersys inc.
 
Extending Android's Platform Toolsuite
Extending Android's Platform ToolsuiteExtending Android's Platform Toolsuite
Extending Android's Platform ToolsuiteOpersys inc.
 
Leveraging Android's Linux Heritage at Android Open 2011
Leveraging Android's Linux Heritage at Android Open 2011Leveraging Android's Linux Heritage at Android Open 2011
Leveraging Android's Linux Heritage at Android Open 2011Opersys inc.
 
Embedded Android Workshop with Marshmallow
Embedded Android Workshop with MarshmallowEmbedded Android Workshop with Marshmallow
Embedded Android Workshop with MarshmallowOpersys inc.
 
Embedded Android Workshop at ELC Europe
Embedded Android Workshop at ELC EuropeEmbedded Android Workshop at ELC Europe
Embedded Android Workshop at ELC EuropeOpersys inc.
 
Android Things Internals
Android Things InternalsAndroid Things Internals
Android Things InternalsOpersys inc.
 
Embedded Android Workshop at Android Open 2011
Embedded Android Workshop at Android Open 2011Embedded Android Workshop at Android Open 2011
Embedded Android Workshop at Android Open 2011Opersys inc.
 
Android Treble: Blessing or Trouble?
Android Treble: Blessing or Trouble?Android Treble: Blessing or Trouble?
Android Treble: Blessing or Trouble?Opersys inc.
 
Embedded Android Workshop
Embedded Android WorkshopEmbedded Android Workshop
Embedded Android WorkshopOpersys inc.
 
Leveraging Android's Linux Heritage at AnDevCon3
Leveraging Android's Linux Heritage at AnDevCon3Leveraging Android's Linux Heritage at AnDevCon3
Leveraging Android's Linux Heritage at AnDevCon3Opersys inc.
 
Embedded Android Workshop with Oreo
Embedded Android Workshop with OreoEmbedded Android Workshop with Oreo
Embedded Android Workshop with OreoOpersys inc.
 
Android Security Internals
Android Security InternalsAndroid Security Internals
Android Security InternalsOpersys inc.
 
Android As a Server- Building Android for the Cloud (AnDevCon SF 2013)
Android As a Server- Building Android for the Cloud (AnDevCon SF 2013)Android As a Server- Building Android for the Cloud (AnDevCon SF 2013)
Android As a Server- Building Android for the Cloud (AnDevCon SF 2013)Ron Munitz
 
Android's HIDL: Treble in the HAL
Android's HIDL: Treble in the HALAndroid's HIDL: Treble in the HAL
Android's HIDL: Treble in the HALOpersys inc.
 
Headless Android at AnDevCon3
Headless Android at AnDevCon3Headless Android at AnDevCon3
Headless Android at AnDevCon3Opersys inc.
 

What's hot (20)

Embedded Android Workshop
Embedded Android WorkshopEmbedded Android Workshop
Embedded Android Workshop
 
Android Things: Android for IoT
Android Things: Android for IoTAndroid Things: Android for IoT
Android Things: Android for IoT
 
Android Jumpstart ESC SV 2012 Part I
Android Jumpstart ESC SV 2012 Part IAndroid Jumpstart ESC SV 2012 Part I
Android Jumpstart ESC SV 2012 Part I
 
Embedded Android Workshop with Nougat
Embedded Android Workshop with NougatEmbedded Android Workshop with Nougat
Embedded Android Workshop with Nougat
 
Is Android the New Embedded Linux? at AnDevCon VI
Is Android the New Embedded Linux? at AnDevCon VIIs Android the New Embedded Linux? at AnDevCon VI
Is Android the New Embedded Linux? at AnDevCon VI
 
Android Platform Debugging and Development
Android Platform Debugging and DevelopmentAndroid Platform Debugging and Development
Android Platform Debugging and Development
 
Extending Android's Platform Toolsuite
Extending Android's Platform ToolsuiteExtending Android's Platform Toolsuite
Extending Android's Platform Toolsuite
 
Leveraging Android's Linux Heritage at Android Open 2011
Leveraging Android's Linux Heritage at Android Open 2011Leveraging Android's Linux Heritage at Android Open 2011
Leveraging Android's Linux Heritage at Android Open 2011
 
Embedded Android Workshop with Marshmallow
Embedded Android Workshop with MarshmallowEmbedded Android Workshop with Marshmallow
Embedded Android Workshop with Marshmallow
 
Embedded Android Workshop at ELC Europe
Embedded Android Workshop at ELC EuropeEmbedded Android Workshop at ELC Europe
Embedded Android Workshop at ELC Europe
 
Android Things Internals
Android Things InternalsAndroid Things Internals
Android Things Internals
 
Embedded Android Workshop at Android Open 2011
Embedded Android Workshop at Android Open 2011Embedded Android Workshop at Android Open 2011
Embedded Android Workshop at Android Open 2011
 
Android Treble: Blessing or Trouble?
Android Treble: Blessing or Trouble?Android Treble: Blessing or Trouble?
Android Treble: Blessing or Trouble?
 
Embedded Android Workshop
Embedded Android WorkshopEmbedded Android Workshop
Embedded Android Workshop
 
Leveraging Android's Linux Heritage at AnDevCon3
Leveraging Android's Linux Heritage at AnDevCon3Leveraging Android's Linux Heritage at AnDevCon3
Leveraging Android's Linux Heritage at AnDevCon3
 
Embedded Android Workshop with Oreo
Embedded Android Workshop with OreoEmbedded Android Workshop with Oreo
Embedded Android Workshop with Oreo
 
Android Security Internals
Android Security InternalsAndroid Security Internals
Android Security Internals
 
Android As a Server- Building Android for the Cloud (AnDevCon SF 2013)
Android As a Server- Building Android for the Cloud (AnDevCon SF 2013)Android As a Server- Building Android for the Cloud (AnDevCon SF 2013)
Android As a Server- Building Android for the Cloud (AnDevCon SF 2013)
 
Android's HIDL: Treble in the HAL
Android's HIDL: Treble in the HALAndroid's HIDL: Treble in the HAL
Android's HIDL: Treble in the HAL
 
Headless Android at AnDevCon3
Headless Android at AnDevCon3Headless Android at AnDevCon3
Headless Android at AnDevCon3
 

Viewers also liked

Embedded Android Workshop at AnDevCon VI
Embedded Android Workshop at AnDevCon VIEmbedded Android Workshop at AnDevCon VI
Embedded Android Workshop at AnDevCon VIOpersys inc.
 
Embedded Android Workshop at AnDevCon IV
Embedded Android Workshop at AnDevCon IVEmbedded Android Workshop at AnDevCon IV
Embedded Android Workshop at AnDevCon IVOpersys inc.
 
Leveraging Android's Linux Heritage at AnDevCon IV
Leveraging Android's Linux Heritage at AnDevCon IVLeveraging Android's Linux Heritage at AnDevCon IV
Leveraging Android's Linux Heritage at AnDevCon IVOpersys inc.
 
Embedded Android Workshop ESC India 2012
Embedded Android Workshop ESC India 2012Embedded Android Workshop ESC India 2012
Embedded Android Workshop ESC India 2012Opersys inc.
 
Leveraging Android's Linux Heritage
Leveraging Android's Linux HeritageLeveraging Android's Linux Heritage
Leveraging Android's Linux HeritageOpersys inc.
 
Android Microconf at Linux Plumber 2012
Android Microconf at Linux Plumber 2012Android Microconf at Linux Plumber 2012
Android Microconf at Linux Plumber 2012Opersys inc.
 

Viewers also liked (7)

Embedded Android Workshop at AnDevCon VI
Embedded Android Workshop at AnDevCon VIEmbedded Android Workshop at AnDevCon VI
Embedded Android Workshop at AnDevCon VI
 
Embedded Android Workshop at AnDevCon IV
Embedded Android Workshop at AnDevCon IVEmbedded Android Workshop at AnDevCon IV
Embedded Android Workshop at AnDevCon IV
 
Cyborgstack
CyborgstackCyborgstack
Cyborgstack
 
Leveraging Android's Linux Heritage at AnDevCon IV
Leveraging Android's Linux Heritage at AnDevCon IVLeveraging Android's Linux Heritage at AnDevCon IV
Leveraging Android's Linux Heritage at AnDevCon IV
 
Embedded Android Workshop ESC India 2012
Embedded Android Workshop ESC India 2012Embedded Android Workshop ESC India 2012
Embedded Android Workshop ESC India 2012
 
Leveraging Android's Linux Heritage
Leveraging Android's Linux HeritageLeveraging Android's Linux Heritage
Leveraging Android's Linux Heritage
 
Android Microconf at Linux Plumber 2012
Android Microconf at Linux Plumber 2012Android Microconf at Linux Plumber 2012
Android Microconf at Linux Plumber 2012
 

Similar to Is Android the New Embedded Linux? at AnDevCon V

Is Android the New Embedded Linux? at AnDevCon IV
Is Android the New Embedded Linux? at AnDevCon IVIs Android the New Embedded Linux? at AnDevCon IV
Is Android the New Embedded Linux? at AnDevCon IVOpersys inc.
 
Android Hacks, Variants, Tricks and Resources ESC SV 2012
Android Hacks, Variants, Tricks and Resources ESC SV 2012Android Hacks, Variants, Tricks and Resources ESC SV 2012
Android Hacks, Variants, Tricks and Resources ESC SV 2012Opersys inc.
 
Is Android the New Embedded Embedded Linux? at Embedded World 2013
Is Android the New Embedded Embedded Linux? at Embedded World 2013Is Android the New Embedded Embedded Linux? at Embedded World 2013
Is Android the New Embedded Embedded Linux? at Embedded World 2013Opersys inc.
 
IoT: Contrasting Yocto/Buildroot to binary OSes
IoT: Contrasting Yocto/Buildroot to binary OSesIoT: Contrasting Yocto/Buildroot to binary OSes
IoT: Contrasting Yocto/Buildroot to binary OSesMender.io
 
Embedded Android Workshop with Lollipop
Embedded Android Workshop with LollipopEmbedded Android Workshop with Lollipop
Embedded Android Workshop with LollipopOpersys inc.
 
Embedded Android Workshop with Marshmallow
Embedded Android Workshop with MarshmallowEmbedded Android Workshop with Marshmallow
Embedded Android Workshop with MarshmallowOpersys inc.
 
Embedded Android Workshop with Marshmallow
Embedded Android Workshop with MarshmallowEmbedded Android Workshop with Marshmallow
Embedded Android Workshop with MarshmallowKarim Yaghmour
 
Embedded Android Workshop with Marshmallow
Embedded Android Workshop with MarshmallowEmbedded Android Workshop with Marshmallow
Embedded Android Workshop with MarshmallowOpersys inc.
 
Embedded Android Workshop part I ESC SV 2012
Embedded Android Workshop part I ESC SV 2012Embedded Android Workshop part I ESC SV 2012
Embedded Android Workshop part I ESC SV 2012Opersys inc.
 
GNU/Linux ou Android comme système d'exploitation embarqué ?
GNU/Linux ou Android comme système d'exploitation embarqué ?GNU/Linux ou Android comme système d'exploitation embarqué ?
GNU/Linux ou Android comme système d'exploitation embarqué ?Open Source Experience
 
Leveraging Android's Linux Heritage at AnDevCon VI
Leveraging Android's Linux Heritage at AnDevCon VILeveraging Android's Linux Heritage at AnDevCon VI
Leveraging Android's Linux Heritage at AnDevCon VIOpersys inc.
 
Embedded Android Workshop
Embedded Android WorkshopEmbedded Android Workshop
Embedded Android WorkshopOpersys inc.
 
Embedded Android Workshop
Embedded Android WorkshopEmbedded Android Workshop
Embedded Android WorkshopOpersys inc.
 
Leveraging Android's Linux Heritage at AnDevCon V
Leveraging Android's Linux Heritage at AnDevCon VLeveraging Android's Linux Heritage at AnDevCon V
Leveraging Android's Linux Heritage at AnDevCon VOpersys inc.
 
Embedded Android Workshop at ABS 2014
Embedded Android Workshop at ABS 2014Embedded Android Workshop at ABS 2014
Embedded Android Workshop at ABS 2014Opersys inc.
 
Embedded Android Workshop with Lollipop
Embedded Android Workshop with LollipopEmbedded Android Workshop with Lollipop
Embedded Android Workshop with LollipopOpersys inc.
 
Embedded Android Workshop at Embedded World 2014
Embedded Android Workshop at Embedded World 2014Embedded Android Workshop at Embedded World 2014
Embedded Android Workshop at Embedded World 2014Opersys inc.
 
Brillo / Weave Internals
Brillo / Weave InternalsBrillo / Weave Internals
Brillo / Weave InternalsOpersys inc.
 
Embedded Android Workshop / ELC 2013
Embedded Android Workshop / ELC 2013Embedded Android Workshop / ELC 2013
Embedded Android Workshop / ELC 2013Opersys inc.
 

Similar to Is Android the New Embedded Linux? at AnDevCon V (20)

Is Android the New Embedded Linux? at AnDevCon IV
Is Android the New Embedded Linux? at AnDevCon IVIs Android the New Embedded Linux? at AnDevCon IV
Is Android the New Embedded Linux? at AnDevCon IV
 
Android Hacks, Variants, Tricks and Resources ESC SV 2012
Android Hacks, Variants, Tricks and Resources ESC SV 2012Android Hacks, Variants, Tricks and Resources ESC SV 2012
Android Hacks, Variants, Tricks and Resources ESC SV 2012
 
Is Android the New Embedded Embedded Linux? at Embedded World 2013
Is Android the New Embedded Embedded Linux? at Embedded World 2013Is Android the New Embedded Embedded Linux? at Embedded World 2013
Is Android the New Embedded Embedded Linux? at Embedded World 2013
 
IoT: Contrasting Yocto/Buildroot to binary OSes
IoT: Contrasting Yocto/Buildroot to binary OSesIoT: Contrasting Yocto/Buildroot to binary OSes
IoT: Contrasting Yocto/Buildroot to binary OSes
 
Embedded Android Workshop with Lollipop
Embedded Android Workshop with LollipopEmbedded Android Workshop with Lollipop
Embedded Android Workshop with Lollipop
 
Embedded Android Workshop with Marshmallow
Embedded Android Workshop with MarshmallowEmbedded Android Workshop with Marshmallow
Embedded Android Workshop with Marshmallow
 
Embedded Android Workshop with Marshmallow
Embedded Android Workshop with MarshmallowEmbedded Android Workshop with Marshmallow
Embedded Android Workshop with Marshmallow
 
Embedded Android Workshop with Marshmallow
Embedded Android Workshop with MarshmallowEmbedded Android Workshop with Marshmallow
Embedded Android Workshop with Marshmallow
 
Embedded Android Workshop part I ESC SV 2012
Embedded Android Workshop part I ESC SV 2012Embedded Android Workshop part I ESC SV 2012
Embedded Android Workshop part I ESC SV 2012
 
GNU/Linux ou Android comme système d'exploitation embarqué ?
GNU/Linux ou Android comme système d'exploitation embarqué ?GNU/Linux ou Android comme système d'exploitation embarqué ?
GNU/Linux ou Android comme système d'exploitation embarqué ?
 
Leveraging Android's Linux Heritage at AnDevCon VI
Leveraging Android's Linux Heritage at AnDevCon VILeveraging Android's Linux Heritage at AnDevCon VI
Leveraging Android's Linux Heritage at AnDevCon VI
 
Embedded Android Workshop
Embedded Android WorkshopEmbedded Android Workshop
Embedded Android Workshop
 
Embedded Android Workshop
Embedded Android WorkshopEmbedded Android Workshop
Embedded Android Workshop
 
Leveraging Android's Linux Heritage at AnDevCon V
Leveraging Android's Linux Heritage at AnDevCon VLeveraging Android's Linux Heritage at AnDevCon V
Leveraging Android's Linux Heritage at AnDevCon V
 
Embedded Android Workshop at ABS 2014
Embedded Android Workshop at ABS 2014Embedded Android Workshop at ABS 2014
Embedded Android Workshop at ABS 2014
 
Embedded Android Workshop with Lollipop
Embedded Android Workshop with LollipopEmbedded Android Workshop with Lollipop
Embedded Android Workshop with Lollipop
 
Embedded Android Workshop at Embedded World 2014
Embedded Android Workshop at Embedded World 2014Embedded Android Workshop at Embedded World 2014
Embedded Android Workshop at Embedded World 2014
 
Brillo / Weave Internals
Brillo / Weave InternalsBrillo / Weave Internals
Brillo / Weave Internals
 
Embedded Android Workshop / ELC 2013
Embedded Android Workshop / ELC 2013Embedded Android Workshop / ELC 2013
Embedded Android Workshop / ELC 2013
 
Headless Android
Headless AndroidHeadless Android
Headless Android
 

More from Opersys inc.

Android Automotive
Android AutomotiveAndroid Automotive
Android AutomotiveOpersys inc.
 
Android 10 Internals Update
Android 10 Internals UpdateAndroid 10 Internals Update
Android 10 Internals UpdateOpersys inc.
 
Embedded Android Workshop with Pie
Embedded Android Workshop with PieEmbedded Android Workshop with Pie
Embedded Android Workshop with PieOpersys inc.
 
Scheduling in Android
Scheduling in AndroidScheduling in Android
Scheduling in AndroidOpersys inc.
 
Scheduling in Android
Scheduling in AndroidScheduling in Android
Scheduling in AndroidOpersys inc.
 
Android Platform Debugging and Development
Android Platform Debugging and DevelopmentAndroid Platform Debugging and Development
Android Platform Debugging and DevelopmentOpersys inc.
 
Memory Management in Android
Memory Management in AndroidMemory Management in Android
Memory Management in AndroidOpersys inc.
 
Android Platform Debugging and Development
Android Platform Debugging and DevelopmentAndroid Platform Debugging and Development
Android Platform Debugging and DevelopmentOpersys inc.
 
Memory Management in Android
Memory Management in AndroidMemory Management in Android
Memory Management in AndroidOpersys inc.
 
Android Platform Debugging and Development
Android Platform Debugging and DevelopmentAndroid Platform Debugging and Development
Android Platform Debugging and DevelopmentOpersys inc.
 
Memory Management in Android
Memory Management in AndroidMemory Management in Android
Memory Management in AndroidOpersys inc.
 
Android Platform Debugging and Development
Android Platform Debugging and DevelopmentAndroid Platform Debugging and Development
Android Platform Debugging and DevelopmentOpersys inc.
 

More from Opersys inc. (14)

Android Automotive
Android AutomotiveAndroid Automotive
Android Automotive
 
Android 10 Internals Update
Android 10 Internals UpdateAndroid 10 Internals Update
Android 10 Internals Update
 
Embedded Android Workshop with Pie
Embedded Android Workshop with PieEmbedded Android Workshop with Pie
Embedded Android Workshop with Pie
 
Scheduling in Android
Scheduling in AndroidScheduling in Android
Scheduling in Android
 
Scheduling in Android
Scheduling in AndroidScheduling in Android
Scheduling in Android
 
Android Platform Debugging and Development
Android Platform Debugging and DevelopmentAndroid Platform Debugging and Development
Android Platform Debugging and Development
 
Memory Management in Android
Memory Management in AndroidMemory Management in Android
Memory Management in Android
 
Project Ara
Project AraProject Ara
Project Ara
 
Android Platform Debugging and Development
Android Platform Debugging and DevelopmentAndroid Platform Debugging and Development
Android Platform Debugging and Development
 
Memory Management in Android
Memory Management in AndroidMemory Management in Android
Memory Management in Android
 
Android Platform Debugging and Development
Android Platform Debugging and DevelopmentAndroid Platform Debugging and Development
Android Platform Debugging and Development
 
Memory Management in Android
Memory Management in AndroidMemory Management in Android
Memory Management in Android
 
Android Platform Debugging and Development
Android Platform Debugging and DevelopmentAndroid Platform Debugging and Development
Android Platform Debugging and Development
 
Project Ara
Project AraProject Ara
Project Ara
 

Recently uploaded

Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentationphoebematthew05
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfngoud9212
 

Recently uploaded (20)

Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentation
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdf
 

Is Android the New Embedded Linux? at AnDevCon V

  • 1. 1 Is Android the new Embedded Linux? AnDevCon V Karim Yaghmour karim.yaghmour@opersys.com
  • 2. 2 These slides are made available to you under a Creative Commons Share- Alike 3.0 license. The full terms of this license are here: https://creativecommons.org/licenses/by-sa/3.0/ Attribution requirements and misc., PLEASE READ: ● This slide must remain as-is in this specific location (slide #2), everything else you are free to change; including the logo :-) ● Use of figures in other documents must feature the below “Originals at” URL immediately under that figure and the below copyright notice where appropriate. ● You are free to fill in the “Delivered and/or customized by” space on the right as you see fit. ● You are FORBIDEN from using the default “About” slide as-is or any of its contents. ● You are FORBIDEN from using any content provided by 3rd parties without the EXPLICIT consent from those parties. (C) Copyright 2013, Opersys inc. These slides created by: Karim Yaghmour Originals at: www.opersys.com/community/docs Delivered and/or customized by
  • 3. 3 About ● Author of: ● Introduced Linux Trace Toolkit in 1999 ● Originated Adeos and relayfs (kernel/relay.c) ● Training, Custom Dev, Consulting, ...
  • 4. 4 1. Why are we asking this question? ● Android is based on Linux ● Android is “embedded” ● Android is extremely popular ● Android enjoys good support from SoC vendors Mostly - The trends are there
  • 5. 5 1.1. Why did Embedded Linux rise? ● EETimes 2005 survey ... http://www.embedded.com/electronics-blogs/- include/4025539/Embedded-systems-survey-Operating- systems-up-for-grabs ● EETimes 2013 survey http://www.slideshare.net/MTKDMI/2013-embedded-market- study-final http://www.eetimes.com/electronics-news/4407897/Android-- FreeRTOS-top-EE-Times--2013-embedded-survey
  • 6. 6 1.2. Current consumer trends ● Rise of touch-based devices ● Race with Apple on features / price ● Mobile devices outselling PCs since 2010 ● Increasingly inexpensive low-end touch-based devices
  • 7. 7 Source: “From Altair to iPad: 35 years of personal computer market share”, Jeremy Reimer, Ars Technica, August 2012 http://arstechnica.com/business/2012/08/from-altair-to-ipad-35-years-of-personal-computer-market-share/ This material is (C) 2012, Ars Technica and is NOT CC-BY-SA.
  • 8. 8 Source: “From Altair to iPad: 35 years of personal computer market share”, Jeremy Reimer, Ars Technica, August 2012 http://arstechnica.com/business/2012/08/from-altair-to-ipad-35-years-of-personal-computer-market-share/ This material is (C) 2012, Ars Technica and is NOT CC-BY-SA.
  • 9. 9 Source: “From Altair to iPad: 35 years of personal computer market share”, Jeremy Reimer, Ars Technica, August 2012 http://arstechnica.com/business/2012/08/from-altair-to-ipad-35-years-of-personal-computer-market-share/ This material is (C) 2012, Ars Technica and is NOT CC-BY-SA.
  • 10. 10 1.3. Current embedded trends ● Rise of cheap 32-bit CPUs ● Rise of inexpensive storage ● Rise of inexpensive eval boards ● BeagleBoards ● BeagleBone (Black) ● RaspberryPi ● For all practical purposes, this hardware is disposable ● Arduino / Maker / DIY trend ● UBM 2013 Embedded Market Study
  • 11. 11 2. Embedded Linux, a look back Projects Conferences: Linux kernel 1991... OLS 1999 1996 CELF ELC 2004 1998 ABS 2011 1999 RTAI 1999 Books 1999E. Anderson U-Boot 1999 Karim Yaghmour 2000E. Anderson 2001 Preemption patches 2005 2009Debian 2010LF / Intel Companies: Matchbox RTLinux V. Yodaiken / M. Barabanov uClinux / uCDimm J. Dionne / Motorola Dragonball BusyBox B. Perens ('96) / Debian, then E. Anderson P. Mantegazza Buildroot Craig Hollabaugh W. Denk uClibc Chris Hallinan I-pipe / Adeos P. Gerum (K. Yaghmour) S.-Thorsten Dietrich / I. Molnar / T. Gleixner eglibc Yocto Lineo Attempts at Linux mobile GUIs MontaVista Maemo / MeeGo TimeSys Qtopia
  • 12. 12 3. Android, whereth comest thou? ● 2002: ● Sergey Brin and Larry Page started using Sidekick smartphone ● Sidekick one of 1st smartphones integrating web, IM, mail, etc. ● Sidekick was made by Danger inc., co-founded by Andy Rubin (CEO) ● Brin/Page met Rubin at Stanford talk he gave on Sidekick’s development ● Google was default search engine on Sidekick ● 2004: ● Despite cult following, Sidekick wasn’t making $ ● Danger inc. board decided to replace Rubin ● Rubin left. Got seed $. Started Android inc. Started looking for VCs. ● Goal: Open mobile hand-set platform ● 2005 - July: ● Got bought by Google for undisclosed sum :) ● 2007 - November: ● Open Handset Alliance announced along with Android
  • 14. 14 4. What's Embedded Linux? ● A set of ad-hoc methods to package the Linux kernel with a (minimal) filesystem. ● FS content “to be determined” case-by-case ● APIs are specific to each device/build ● “Core software”: ● BusyBox ● U-Boot ● GNU Toolchain ● Your flavor of: ● glibc or uClibc or eglibc ● yocto or buildroot or eldk or ltib or ptxdist or ... ● No serious UX framework
  • 15. 15
  • 17. 17 5. What's Android? ● ... apart from its increasingly well known UX ... ● Fully-integrated Eclipse IDE ● SDK/NDK ● ADB ● Fastboot ● Published, well-known, and very rich APIs ● A large and growing developer community ● And still we can use the usual suspects: ● GNU toolchain, BusyBox, u- boot, glibc, ... An actual standardized dev. env. across all product lines
  • 18. 18
  • 19. 19 6. Licensing differences ● Kernel: ● GNU General Public License (a.k.a. GPL) ● AOSP: ● Mostly Apache License 2.0 (a.k.a. ASL) ● Having GPL-free user-space was a design goal ● A few GPL and LGPL parts: mainly BlueZ and DBUS ● Some key components in BSD: Bionic and Toolbox ● “external/” directory contains a mixed bag of licenses, incl. lots of GPL ● Android Robot: ● Very much like the Linux penguin ● Android name: ● As descriptor only: “for Android” ● Use for labelling device requires talking to Google
  • 20. 20 7. Why did Android use Linux? “The Linux vs BSD decision was made before Google acquired Android. While starting with NetBSD's kernel was tempting, the Linux kernel wasn't that much larger (one of the concerns), had quite a lot of support from silicon vendors and OEMs, and a larger developer community (easier to find folks with Linux kernel expertise). The bright line between the kernel and userspace drawn by the statement at the top of the Linux COPYING file was certainly helpful in making this decision. Explaining that the kernel is GPLv2 and userspace is Apache2/BSD/MIT is something easily understood by OEMs, and most OEMs don't have a problem with the general idea that the kernel is not where you differentiate your products.” Brian Swetland, LWN, March 2011
  • 21. 21 8. Embedded Android? Why? ● Feature set ● User interface ● API ● Developer community ● App ecosystem ● Built on Linux ● Very strong SoC vendor support ● Permissive licensing ● Examples: ● Consumer electronics ● Medical ● Defence ● Space
  • 22. 22 9. Android's Challenges ● Documentation / Information ● Stack Limitations ● Stack Customization ● Boot time ● Legacy Integration ● Development Hardware ● AOSP tree ● Build Times ● Headless Use ● Dependency on Google
  • 23. 23 9.1. Documentation / Information ● Official doc for app dev is great ● Official doc for platform dev is practically non-existent ● A few official forums: ● android-building ● android-platform ● android-porting ● Conference talks / presentations ● Scattered documentation all over the web ● My book (disclaimer applies):
  • 24. 24 9.2. Stack Limitations ● Key functionality not supported by default: ● Ethernet ● AM/FM radio ● Real-time ● Supported functionality doesn't expose everything: ● BlueZ ● USB ● wpa_supplicant ● Bionic isn't a full glibc replacement: ● No SystemV IPC ● No locales ● etc. ● Stack is very deep and can be difficult to modify
  • 25. 25 9.3. Stack Customization ● Lots of default packages ● Modularity wasn't really part of the design ● No “make menuconfig” ● Can't easily select/change: ● Which packages to include ● Which system services are running ● Packages' features ● Ex: ● Can relatively easily replace default home screen ● Modifying status bar requires digging in code
  • 26. 26 9.4. Boot time ● Very lengthy boot process ● Bootloader ● Kernel ● Init ● Zygote ● System services ● DEX optimization ● Key apps ● Unlikely to be able to speed this through trimming ... ● Try: ● Suspend to flash ● Checkpointing
  • 27. 27 9.5. Legacy Integration ● What if I ... ?: ● have been using my custom rootfs forever ● really need glibc ● have a huge stack based on “legacy Linux” ● don't want to deal with AOSP's build system ● want BusyBox ● want to unify with a std Linux desktop ● need things the AOSP doesn't provide ● have a ton of Linux drivers and want those to be used by Android ● ... ● Know this: filesystem integration is trivial: ● Change build system to copy your custom rootfs ● Change init scripts to start you own daemons ● Use sockets to communicate ● Know this too: std Linux desktop integration is NOT
  • 28. 28
  • 29. 29
  • 30. 30 9.6. Development Hardware ● Can I use a standard phone? ● Not really ● Even if you could – some things can only be done in the platform ● Which board is best to evaluate Android? ● BeagleBone / BeagleBoard ● PandaBoard ● OrigenBoard ● iMX ● DragonBoard ● AM335x Start Kit ● Still: ● Nothing that has a phone/tablet form-factor + is entirely open
  • 31. 31 9.7. AOSP tree ● Which tree? ● Google's ● Linaro's ● TI's ● Freescale's ● Qualcomm's ● etc. ● ... which kernel ... ?
  • 32. 32 9.8. Build Times ● Horrible ● On quad-core i7 w/ 8GB RAM: ● GB = 20min ● ICS = 55min ● JB = 75min ● Even Google's own guys are at around 30min for JB. ● This is a big, unresolved pain
  • 33. 33 9.9. Headless Use + = “And then GNU came back for revenge ...” -- Tarantino's sequel
  • 34. 34 9.9.1. Why? ● Took me a long time to wrap my head around ● “Why don't you just use embedded Linux?” ● What's “Embedded Linux” anyway? ● NEW: Nexus Q
  • 35. 35 9.9.2. Possibilities ● No Java: ● TinyAndroid: $ BUILD_TINY_ANDROID=true make -j4 ● AOSP w/ custom products .mk file ● The full-blown stack without: ● SurfaceFlinger ● WindowManager ● WallpaperService ● InputMethodManager
  • 36. 36 9.9.3. Tiny Android ● 3MB filesystem ● Minimal root fs ● init ● toolbox + shell ● adb ● bionic + utility libs ● No “system/framework/” ● No “system/app”
  • 37. 37
  • 38. 38 9.9.4. AOSP w/ custom product .mk ● Have a look at: ● build/target/product/*.mk ● Create your own device under “/device” and have fun ● Disable zygote at startup ● Remove all apks ● ...
  • 39. 39 9.9.5. Full stack ● Disable: ● SurfaceFlinger ● WindowManager ● WallpaperService ● InputMethodManager ● SystemUI ● Don't let SurfaceFlinger Client try to open binder to SurfaceFlinger ● Feed bogus values back from SurfaceFlinger Client ● Disable qemud (emulator artefact) ● Tweak internals by disabling key calls: ● In ActivityStack.java: – startHomeActivityLocked() – setAppStartingWindow() ● wm.detectSafeMode() ● wm.systemReady() ● wm.reclaimSuraceMemoryLocked()
  • 40. 40
  • 41. 41 ● Demo ● Patch walkthrough ● ro.config.headless property
  • 42. 42 9.10. Dependency on Google ● Google is the master of Android ● Google's business prerogatives may not be yours ● Most new features come from Google ● Upstreaming is tough/lenghthy ● What if Google stops developing Android? ● Still, and this is important: they like to see Android used in embedded systems.
  • 43. 43 10. Where do we go from here? ● Trends don't seem to be slowing down ● Interesting: ● Nexus Q - headless from Google – i.e. Google moving to “true” embedded? ● Ubuntu Tablet - SurfaceFlinger, not X nor Wayland – i.e. Std Linux moving to use Android parts? ● We're very much in uncharted waters