Upload
marko-gargenta
View
1.558
Download
4
Tags:
Embed Size (px)
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 [email protected] +1-415-647-7000
Slides/video/etc: http://mrkn.co/f/375