45
Marko Gargenta marakana.com Open Android What it means to be open and why you would care

Open Android

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: Open Android

Marko  Gargenta  marakana.com  

Open  Android  What  it  means  to  be  open  and  why  you    

would  care  

Page 2: Open Android

Slides,  Video,  etc.    

http://mrkn.co/f/375

Page 3: Open Android

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

Page 4: Open Android

Agenda  

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

•  Open  Source  •  Open  Standards  •  Community  Leadership  

•  What  Does  This  Mean  to  You?  •  Summary  

Page 5: Open Android

ANDROID  THEN  &  NOW  

Page 6: Open Android

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  

Page 7: Open Android

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

Page 8: Open Android

ANDROID  STACK  

Page 9: Open Android

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

Page 10: Open Android

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

Page 11: Open Android

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

Page 12: Open Android

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

Page 13: Open Android

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.

Page 14: Open Android

ApplicaZons  Many apps…

… as well as markets.

Page 15: Open Android

Android  and  Java  

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

gets. Although Oracle disagrees.

Page 16: Open Android

THE  MEANING  OF  OPEN  

Page 17: Open Android

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  

Page 18: Open Android

Andy  Rubin:  DefiniZon  of  Open  

Page 19: Open Android

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

Page 20: Open Android

Open  Android,  according  to  Marko  

Open means:!

⸰  Open Source!

⸰  Open Standards!

⸰  Community Leadership!

Page 21: Open Android

OPEN  SOURCE  

Page 22: Open Android

Open  Source  Licenses  

http://opensource.org/licenses/

Page 23: Open Android

Openness  of  The  Stack  

Open, Apache 2

Open, Apache 2

Open, various licenses Dalvik is open, Apache 2

Mostly proprietary or (L)GPL

Page 24: Open Android

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.

Page 25: Open Android

Android  and  Linux  

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

Linux changes still point of contention

Page 26: Open Android

OPEN  STANDARDS  

Page 27: Open Android

Android  and  Open  Standards  

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

Page 28: Open Android

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

Page 29: Open Android

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

Page 30: Open Android

COMMUNITY  LEADERSHIP  

Page 31: Open Android

Open  Handset  Alliance  

From 34 to 80+ members

Includes OEMs, chip vendors, operators, software companies.

Still learning to work together.

Page 32: Open Android

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.

Page 33: Open Android

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

Page 34: Open Android

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.

Page 35: Open Android

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.

Page 36: Open Android

Castles  and  Moats  

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

Page 37: Open Android

WHAT  DOES  THIS  MEAN  TO  YOU?  

Page 38: Open Android

As  User  

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

Page 39: Open 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.!

Page 40: Open Android

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!

Page 41: Open Android

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!

Page 42: Open Android

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??

Page 43: Open Android

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  

Page 44: Open Android

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/  

Page 45: Open Android

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 [email protected] +1-415-647-7000

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