450 likes | 464 Views
Explore the meaning of open in the context of Android, including open source, open standards, and community leadership. Discover the history of Android, its stack, and the vision for its future. Learn about the importance of open technology and how open systems win.
E N D
Open AndroidWhat 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
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
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
Native 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…
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
Application 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.
Applications 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.
Open Source Initiative • Free redistribution • Source code • Derived works • Integrity of author’s source code • No discrimination against person or groups • No discrimination against field of endeavor • Distribution of license • License not specific to product • License must not restrict other software • License must be technology neutral
Meaning of Open, Jonathan Rosenberg • Open Technology • Open standards • Open source • Open Information • Valuable to users • Transparent about information • 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 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
Android and Open Standards • Use open standards where possible • Leave slots where proprietary is better • Create new standards where needed
Example: Media Support 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”.
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
Compatibility 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 Motivation 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
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 latest code. Nor know what’s coming out next. I may be months behind competitors. Ugh! I get a fully featured OS for free and can innovate at a higher level.
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 still 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 & Attributions • The meaning of open by Jonathan Rosenberg, Senior VP, Product Management, Googlehttp://googleblog.blogspot.com/2009/12/meaning-of-open.html • Android May Be The Greatest Legal Destruction Of Wealth In History by Bill Gurley, Benchmark Capitalhttp://www.cadabrapress.com/?p=3904 • Warren Buffett on castles and moatshttp://37signals.com/svn/posts/333-warren-buffett-on-castles-and-moats • The Freight Train That Is Android by Bill Gurley, Benchmark Capitalhttp://abovethecrowd.com/2011/03/24/freight-train-that-is-android/ • Less Than Free by Bill Gurley, Benchmark Capitalhttp://bit.ly/pgyubk • Is Android Open? by Scott Gilbertson, Wiredhttp://www.wired.com/epicenter/2010/10/is-android-open/ • The Open Source Definitionhttp://www.opensource.org/docs/osd • How "Open" is Android Really?http://www.tequilabomb.com/shotglass/2010/05/07/how-open-is-android-really/ • Open Source Licenseshttp://digitizor.com/2011/05/04/free-software-licenses/ • Android (operating system) at Wikipediahttp://en.wikipedia.org/wiki/Android_(operating_system) • How Google controls Android: digging deep into the Skyhook filingshttp://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:http://mrkn.co/f/375 Marko Gargenta, Marakana.com @MarkoGargenta marko@marakana.com +1-415-647-7000