Open Android

Preview:

DESCRIPTION

http://marakana.com/forums/android/general/375.html

Citation preview

Marko  Gargenta  marakana.com  

Open  Android  What  it  means  to  be  open  and  why  you    

would  care  

Slides,  Video,  etc.    

http://mrkn.co/f/375

About  Marko  Gargenta  

Developer of Android Bootcamp for Marakana.

Instructor for 1,000s of developers on Android at Qualcomm, Cisco, Motorola, DoD and other great orgs.

Author of Learning Android published by O’Reilly.

Speaker at OSCON (3x), ACM, IEEE, SDC, AnDevCon.

Co-Founder of SFAndroid.org

Co-Chair of Android Open conference: AndroidOpen.com

Agenda  

•  Android  Then  &  Now  •  Android  Stack  •  The  Meaning  of  Open  

•  Open  Source  •  Open  Standards  •  Community  Leadership  

•  What  Does  This  Mean  to  You?  •  Summary  

ANDROID  THEN  &  NOW  

History  and  Possible  Future  

2005   Google  buys  Android,  Inc.  Work  on  Dalvik  starts  

2007   Open  Handset  Alliance  announced  Early  SoRware  Development  Kit  

2008-­‐2010   Android  becomes  the  dominant  mobile  plaWorm  

2011   Games,  Tablets,  TVs  

Future?   Beyond  phones  

Vision  for  Android  

Our goal is not just a single device. Our vision is a mobile platform that runs on many many different devices.

– Eric Schmidt

ANDROID  STACK  

The  Stack  

Linux Kernel

Libraries

Application Framework

Applications

Home Contacts Phone Browser Other

Activity Manager

Window Manager

ContentProviders

View System

PackageManager

TelephonyManager

Resource Manager

LocationManager

NotiicationManager

Surface Manager

OpenGL

SGL

Media Framework

FreeType

SSL

SQLite

WebKit

libc

Android Runtime

Core Libs

Dalvik VM

DisplayDriver

KeypadDriver

CameraDriver

WiFiDriver

FlashDriver

AudioDriver

BinderDriver

PowerMgmt

Linux  Kernel  

Android runs on top of Linux.

Linux provides: Hardware abstraction layer Memory management Process management Networking

Key reasons for Linux: It’s secure It’s portable It’s open source

Linux Kernel

Libraries

Application Framework

Applications

Home Contacts Phone Browser Other

Activity Manager

Window Manager

ContentProviders

View System

PackageManager

TelephonyManager

Resource Manager

LocationManager

NotiicationManager

Surface Manager

OpenGL

SGL

Media Framework

FreeType

SSL

SQLite

WebKit

libc

Android Runtime

Core Libs

Dalvik VM

DisplayDriver

KeypadDriver

CameraDriver

WiFiDriver

FlashDriver

AudioDriver

BinderDriver

PowerMgmt

Android™ Stack

NaZve  Libraries  

Pieces borrowed from other open source projects:

Bionic, a super fast and small license-friendly libc library optimized for Android

HAL in userspace

WebKit library for fast HTML rendering

Media codecs offer support for major audio/video codecs

SQLite database

Much more…

Linux Kernel

Libraries

Application Framework

Applications

Home Contacts Phone Browser Other

Activity Manager

Window Manager

ContentProviders

View System

PackageManager

TelephonyManager

Resource Manager

LocationManager

NotiicationManager

Surface Manager

OpenGL

SGL

Media Framework

FreeType

SSL

SQLite

WebKit

libc

Android Runtime

Core Libs

Dalvik VM

DisplayDriver

KeypadDriver

CameraDriver

WiFiDriver

FlashDriver

AudioDriver

BinderDriver

PowerMgmt

Dalvik  

Dalvik VM is Android implementation of Java VM

Dalvik is optimized for mobile devices: •  Battery consumption •  CPU capabilities

Key Dalvik differences: •  Register-based versus stack-based VM •  Dalvik runs .dex files •  More efficient and compact implementation •  Different set of Java libraries than JDK

ApplicaZon  Framework  

The rich set of system services wrapped in an intuitive Java API.

Location, web, telephony, WiFi, Bluetooth, notifications, media, camera, just to name a few.

Application Framework makes it easy to develop for Android.

ApplicaZons  Many apps…

… as well as markets.

Android  and  Java  

Based on Apache Harmony Java and Dalvik VM, Android’s Java is as open as it

gets. Although Oracle disagrees.

THE  MEANING  OF  OPEN  

Open  Source  IniZaZve  •  Free  redistribuZon  •  Source  code  •  Derived  works  •  Integrity  of  author’s  source  code  •  No  discriminaZon  against  person  or  groups  •  No  discriminaZon  against  field  of  endeavor  •  DistribuZon  of  license  •  License  not  specific  to  product  •  License  must  not  restrict  other  soRware  •  License  must  be  technology  neutral  

Andy  Rubin:  DefiniZon  of  Open  

Meaning  of  Open,  Jonathan  Rosenberg  

•  Open  Technology  – Open  standards  – Open  source  

•  Open  InformaZon  – Valuable  to  users  – Transparent  about  informaZon  

– Control:  user  is  in  control  •  Open  systems  win  

http://googleblog.blogspot.com/2009/12/meaning-of-open.html

Open  Android,  according  to  Marko  

Open means:!

⸰  Open Source!

⸰  Open Standards!

⸰  Community Leadership!

OPEN  SOURCE  

Open  Source  Licenses  

http://opensource.org/licenses/

Openness  of  The  Stack  

Open, Apache 2

Open, Apache 2

Open, various licenses Dalvik is open, Apache 2

Mostly proprietary or (L)GPL

What  about  Honeycomb?  

“Our approach remains unchanged: there are no lock-downs or restrictions against customizing UIs. There are not, and never have been, any efforts to standardize the platform on any single chipset architecture. … As soon as this work is completed, we’ll publish the code. This temporary delay does not represent a change in strategy. We remain firmly committed to providing Android as an open source platform across many device types.”

- Andy Rubin

No source for Honeycomb. But this seems to be an exception.

Android  and  Linux  

Android's kernel is separate fork of Linux Linux community rejected Google's changes

Linux changes still point of contention

OPEN  STANDARDS  

Android  and  Open  Standards  

•  Use  open  standards  where  possible  •  Leave  slots  where  proprietary  is  beaer  •  Create  new  standards  where  needed  

Example:  Media  Support  

Audio   AAC  LC/LTP,  HE-­‐AACv1  (AAC+),  HE-­‐AACv2,  AMR-­‐NB,  AMR-­‐WB,  MP3,  MIDI,  RTTTL/RTX,  Ogg,  PCM/WAVE  

Video   H.263,  H.264,  MPEG-­‐4,  VP8  

Image   JPEG,  GIF,  PNG,  BMP  

Missing many codecs and native support.

Expansion available via Khronos OpenMax IL

Example:  VPN  Support  

Support for VPN built-in: PPTP, L2TP, L2TP/IPSec PSK VPN, L2TP/IPsec CRT VPN

But missing key enterprise VPNs, such as Cisco and Juniper.

Solution via Raccoon “expansion slot”.

COMMUNITY  LEADERSHIP  

Open  Handset  Alliance  

From 34 to 80+ members

Includes OEMs, chip vendors, operators, software companies.

Still learning to work together.

Private  Roadmap  

Not a public roadmap. Community input is observed, but no promises are made.

This represents a problem for OEMs planning future device releases.

Bear  Hugging  

Favorite OEM for each release.

For G1/Dev1, Nexus One: HTC For Nexus S: Samsung For Xoom: Motorola

Different terms for different OEMs?

“We’re more like Apple than Microsoft” – Andy Rubin

CompaZbility  Test  Suite  

Android Compatibility Test Suite:

Defines “Android Compatible” Prevents incompatible releases Provides self testing

Good for users. Good for developers. For Google, a leverage over OEMs. But also a crystal ball into Android’s roadmap.

Google’s  MoZvaZon  Google makes money in advertising and wants a level playing field for the mobile market.

“Android money comes from mobile ads” - Google

Additional revenue (or leverage) from Market, Maps, Phone, Music, Backup, and other services.

Castles  and  Moats  

“In business, I look for economic castles protected by unbreachable ‘moats’” - Warren Buffet

WHAT  DOES  THIS  MEAN  TO  YOU?  

As  User  

I can extensively customize the device.!I can make it “all about me”.!I can even change the flavor of Android.!

As  Developer  

My app will run on any Android device, regardless of manufacturer.!I can see ins and outs of the platform source code and learn from studying the default apps.!My market is huge.!

As  Manufacturer  

I get a fully featured OS for free and can innovate at a higher level.

I may not get the latest code. Nor know what’s coming out next. I may be months behind competitors. Ugh!

As  Carrier  Users love Android!!It’s an alternative to iPhone.!Got many OEMs and devices to choose from.

Who exactly is to support it?!Can’t lock down the device – and my enterprise customers what that!

As  Enterprise  Many productivity apps.!Users have their own phones already.

How do we lock it down?!How do I create custom ROM?!Personals phones inside the company??

Overall  •  Open  Source:  ★★★

•  Most  of  code  is  open  sourced,  but  not  all  

•  OEMs  sZll  keep  drivers  and  extensions  private  

•  Open  Standards:  ★★★★ • Whenever  license  permits,  open  standards  are  used  

•  Community  Leadership:  ★★  •  Lack  of  public  roadmap  •  No  early  access  to  code  for  all  

References  &  AaribuZons  •  The  meaning  of  open  by  Jonathan  Rosenberg,  Senior  VP,  Product  Management,  Google  

hap://googleblog.blogspot.com/2009/12/meaning-­‐of-­‐open.html  

•  Android  May  Be  The  Greatest  Legal  DestrucZon  Of  Wealth  In  History  by  Bill  Gurley,  Benchmark  Capital  hap://www.cadabrapress.com/?p=3904  

•  Warren  Buffea  on  castles  and  moats  hap://37signals.com/svn/posts/333-­‐warren-­‐buffea-­‐on-­‐castles-­‐and-­‐moats  

•  The  Freight  Train  That  Is  Android  by  Bill  Gurley,  Benchmark  Capital  hap://abovethecrowd.com/2011/03/24/freight-­‐train-­‐that-­‐is-­‐android/  

•  Less  Than  Free  by  Bill  Gurley,  Benchmark  Capital  hap://bit.ly/pgyubk  

•  Is  Android  Open?  by  Scoa  Gilbertson,  Wired  hap://www.wired.com/epicenter/2010/10/is-­‐android-­‐open/  

•  The  Open  Source  DefiniZon  hap://www.opensource.org/docs/osd  

•  How  "Open"  is  Android  Really?  hap://www.tequilabomb.com/shotglass/2010/05/07/how-­‐open-­‐is-­‐android-­‐really/  

•  Open  Source  Licenses  hap://digiZzor.com/2011/05/04/free-­‐soRware-­‐licenses/  

•  Android  (operaZng  system)  at  Wikipedia  hap://en.wikipedia.org/wiki/Android_(operaZng_system)  

•  How  Google  controls  Android:  digging  deep  into  the  Skyhook  filings  hap://thisismynext.com/2011/05/12/google-­‐android-­‐skyhook-­‐lawsuit-­‐motorola-­‐samsung/  

Summary  Big parts of Android stack are open, but not everything is for a developer wanting to release new version of Android OS an an actual device.

Android is not a typical open source project due to lack of community leadership.

Marko Gargenta, Marakana.com @MarkoGargenta marko@marakana.com +1-415-647-7000

Slides/video/etc: http://mrkn.co/f/375