Open Android What it means to be open and why you would care

Marko Gargenta marakana.com 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 , 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 buys Android, Inc. Work on starts 2007 announced Early Soware Development Kit 2008-2010 Android becomes the dominant mobile plaorm 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

Applications

Home Contacts Phone Browser Other

Application Framework

Activity Window Content View Manager Manager Providers System

Package Telephony Resource Location Notiication Manager Manager Manager Manager Manager

Libraries Surface Media SQLite Manager Framework Core Libs OpenGL FreeType WebKit

Dalvik VM SGL SSL libc

Display Camera Kernel Flash Binder Driver Driver Driver Driver

Keypad WiFi Audio Power Driver Driver Driver Mgmt

Android™ Stack Android runs on top of Linux. Applications

Home Contacts Phone Browser Other Linux provides: Hardware abstraction layer Memory management Application Framework Process management Activity Window Content View Manager Manager Providers System Networking Package Telephony Resource Location Notiication Manager Manager Manager Manager Manager Key reasons for Linux: It’s secure Libraries Surface Media SQLite Android Runtime It’s portable Manager Framework Core Libs It’s open source OpenGL FreeType WebKit

Dalvik VM SGL SSL libc

Display Camera Linux Kernel Flash Binder Driver Driver Driver Driver

Keypad WiFi Audio Power Driver Driver Driver Mgmt Nave Libraries

Pieces borrowed from other Applications open source projects: Home Contacts Phone Browser Other

Bionic, a super fast and small Application Framework license-friendly libc optimized Activity Window Content View Manager Manager Providers System for Android Package Telephony Resource Location Notiication Manager Manager Manager Manager Manager HAL in userspace Libraries Surface Media SQLite Android Runtime Manager Framework WebKit library for fast HTML Core Libs rendering OpenGL FreeType WebKit Dalvik VM SGL SSL libc Media codecs offer support for major audio/video codecs Display Camera Linux Kernel Flash Binder Driver Driver Driver Driver

Keypad WiFi Audio Power SQLite Driver Driver Driver Mgmt

Much more… 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 Applicaon 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. Applicaons Many apps…

… as well as markets. Android and Java

Based on Java and Dalvik VM, Android’s Java is as open as it gets. Although Oracle disagrees. THE MEANING OF OPEN Open Source Iniave • Free redistribuon • Source code • Derived works • Integrity of author’s source code • No discriminaon against person or groups • No discriminaon against field of endeavor • Distribuon of license • License not specific to product • License must not restrict other soware • License must be technology neutral Andy Rubin: Definion of Open Meaning of Open, Jonathan Rosenberg

• Open Technology – Open standards – Open source • Open Informaon – Valuable to users – Transparent about informaon – 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?

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

“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 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 beer • 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, : HTC For : Samsung For Xoom: Motorola

Different terms for different OEMs?

“We’re more like Apple than ” – Andy Rubin Compability 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 Movaon

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 may not get the I get a fully featured latest code. Nor know OS for free and can what’s coming out innovate at a higher next. I may be level. months behind competitors. Ugh! As Carrier

Users love Android!! Who exactly is to It’s an alternative to support it?! iPhone.! Can’t lock down the Got many OEMs device – and my and devices to choose enterprise customers from. what that! As Enterprise

Many productivity How do we lock it apps.! down?! Users have their own How do I create custom phones already. ROM?! Personals phones inside the company?? Overall • Open Source: ★★★ • Most of code is open sourced, but not all • OEMs sll keep drivers and extensions private

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

• Community Leadership: ★★ • Lack of public roadmap • No early to code for all References & Aribuons • The meaning of open by Jonathan Rosenberg, Senior VP, Product Management, Google hp://googleblog.blogspot.com/2009/12/meaning-of-open.html • Android May Be The Greatest Legal Destrucon Of Wealth In History by Bill Gurley, Benchmark Capital hp://www.cadabrapress.com/?p=3904 • Warren Buffe on castles and moats hp://37signals.com/svn/posts/333-warren-buffe-on-castles-and-moats • The Freight Train That Is Android by Bill Gurley, Benchmark Capital hp://abovethecrowd.com/2011/03/24/freight-train-that-is-android/ • Less Than Free by Bill Gurley, Benchmark Capital hp://bit.ly/pgyubk • Is Android Open? by Sco Gilbertson, Wired hp://www.wired.com/epicenter/2010/10/is-android-open/ • The Open Source Definion hp://www.opensource.org/docs/osd • How "Open" is Android Really? hp://www.tequilabomb.com/shotglass/2010/05/07/how-open-is-android-really/ • Open Source Licenses hp://digizor.com/2011/05/04/free-soware-licenses/ • Android (operang system) at Wikipedia hp://en.wikipedia.org/wiki/Android_(operang_system) • How Google controls Android: digging deep into the Skyhook filings hp://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.

Slides/video/etc: Marko Gargenta, Marakana.com http://mrkn.co/f/375 @MarkoGargenta [email protected] +1-415-647-7000