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 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 So ware Development Kit 2008-2010 Android becomes the dominant mobile pla orm 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 Android Runtime Manager Framework Core Libs 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 Linux Kernel
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 Na ve 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 library 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 database 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 Applica on 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. Applica ons 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 Ini a ve • Free redistribu on • Source code • Derived works • Integrity of author’s source code • No discrimina on against person or groups • No discrimina on against field of endeavor • Distribu on of license • License not specific to product • License must not restrict other so ware • License must be technology neutral Andy Rubin: Defini on of Open Meaning of Open, Jonathan Rosenberg
• Open Technology – Open standards – Open source • Open Informa on – Valuable to users – Transparent about informa on – 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 be er • 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 Compa bility 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 Mo va on
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 s ll 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 & A ribu ons • The meaning of open by Jonathan Rosenberg, Senior VP, Product Management, Google h p://googleblog.blogspot.com/2009/12/meaning-of-open.html • Android May Be The Greatest Legal Destruc on Of Wealth In History by Bill Gurley, Benchmark Capital h p://www.cadabrapress.com/?p=3904 • Warren Buffe on castles and moats h p://37signals.com/svn/posts/333-warren-buffe -on-castles-and-moats • The Freight Train That Is Android by Bill Gurley, Benchmark Capital h p://abovethecrowd.com/2011/03/24/freight-train-that-is-android/ • Less Than Free by Bill Gurley, Benchmark Capital h p://bit.ly/pgyubk • Is Android Open? by Sco Gilbertson, Wired h p://www.wired.com/epicenter/2010/10/is-android-open/ • The Open Source Defini on h p://www.opensource.org/docs/osd • How "Open" is Android Really? h p://www.tequilabomb.com/shotglass/2010/05/07/how-open-is-android-really/ • Open Source Licenses h p://digi zor.com/2011/05/04/free-so ware-licenses/ • Android (opera ng system) at Wikipedia h p://en.wikipedia.org/wiki/Android_(opera ng_system) • How Google controls Android: digging deep into the Skyhook filings h p://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