Android - Opportunity, Complexity, and Abundance: Management Is The Challenge

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 10

Android - Opportunity, Complexity,

and Abundance
Management is the challenge

Black Duck Software White Paper


Executive Summary
The Android mobile operating system is an excellent example of the power of open source
software. Android’s ascent is attributable not only to demand for feature-rich mobile devices but
also to the flexibility, extensibility, and developer-friendly openness of the core Android project,
which has brought similar and rich functionality to a wide variety of mobile devices, available
from many carriers.

Android is about abundance and opportunity for carriers, developers and consumers. Yet with
opportunity and abundance comes complexity: managing development of software designed
to extend an open-source operating system with parallel development forks, governed by
multiple licenses, with rapid development cycles and frequent commits is not a simple task.
In addition, because the core Android project is licensed under the permissive Apache license,
misperceptions abound as to what it takes to comply with license requirements.

Manufacturers that integrate Android into their products in a multi-source development process
are combining open source with closed source code, and must manage that complexity at
several stages as multi-source products flow through extensive supply chains with features (and
complexity) added at every stage.

In this white paper we describe the opportunity and challenge of developing for Android,
look at its history, review licensing and IP issues and present a solution for managing its
abundance and complexity.

Introduction The real story here is not which carrier or


Blackberry and Palm paved the way for company is dominating the market for mobile
business, but the Apple iPhone revolutionized devices. The big news is the shift in trends in
smartphones to the benefit of business and mobile application development:
consumers alike. However, in July 2010, sales • Closed-source mobile devices (e.g.
of mobile devices running the open-source Blackberry, Palm) are rapidly losing share
Android operating system outstripped Apple’s
iPhone. Carriers activated more than 160,000 • Some 60 percent 2 of mobile devices run
on an open-source platform (e.g., Android,
Android handsets a day - an estimated four
Symbian, MeeGo, LiMo, Linux Mobile)
million for the month - while Apple, with its
closed-OS iPhone 4, reported activating a mere • Increasingly the platform of choice is
70,000 units a day - roughly half as many.1 Google’s Android operating system.
1
The Android success story is evidence of a shift Android is also, in the tradition of open source,
away from a model where developers’ choices a community of developers taking advantage of
were constrained by the limited number of what they see as free, open software upon which
devices and operating systems to one where to build mobile applications.
open source options have created unlimited Android Trends
potential for innovation, faster time to solution, Despite its recent successes against the iPhone,
and flexibility. This scenario favors Android, a Android holds a small - albeit growing - share
Linux-based operating system with a burgeoning of the mobile device OS market. Symbian, the
app market fed by open source software. open source mobile OS which in 2009 held 51%
Android‘s Evolution to Open Source market share, has seen erosion of its position
Android began life as Android Inc., a start-up to a 41.2% share. Similarly, RIM, which in 2009
founded in 2003 by veterans of Danger, Wildfire held 19% of the market, saw its hold chipped to
Communications, T-Mobile and WebTV. The 17.2%. In the same time period, driven by sales
privately-held company, launched to develop of smartphones, Android moved from a 1.9%
software for mobile phones, was acquired by share to 17.2%, stunning growth in a segment
Google in 2005. In 2007, the Open Handset long dominated by Symbian and RIM.3
Alliance, a consortium of companies which
Although smartphones started the ball rolling
included handset manufacturers, carriers and
- the operating system has been used in more
Google, was created to develop open standards
than 60 mobile phone models - use of Android is
for mobile devices. The consortium also
branching out to other portable and embedded
announced its first project, Android, described as
devices (tablet computers, e-readers, netbooks,
a platform for mobile devices based on the Linux
HDTVs etc.)
kernel version 2.6.

The Android operating system for mobile devices


was made available as open source software
under an Apache license in 2008. Android
contains internal components (the platform)
and external components (the Linux kernel
and WebKit, under the GPL and LGPL licenses
and various other components or projects,
copyrighted by other owners). 1 http://tech.fortune.cnn.com/2010/07/16/steve-jobs-confirms-android-outselling-
iphone/
2
2 Gartner chart, as shown in http://www.linuxfordevices.com/c/a/News/Gartner-2Q-
report-and-AndroidLinux-fork/
Android: The complexity inside the Linux kernel and WebKit - are governed by
Created using the GPLv2 licensed Linux kernel, reciprocal licenses (GPLv2, LGPL.) In addition to
Android is a Google project, and represents the two major external components an additional
a fork in the Linux kernel. Despite its roots in 30+ internal components (dbus, grub, emma,
the GPL, Android’s collection of ~185 different e2fsprogs, bluez, Bison, etc.) also use reciprocal
sub-components (see Figure 1: Android licenses (GPL, LGPL, CPL, etc.) Twenty-eight
Architecture) is written under ~19 different components use the GPL and five use the LGPL
open source licenses - most reciprocal, and not while others use non-OSI licenses such as the
all OSI-approved. While the majority of Android OpenSSL combined license and the Bzip2 license.
code contributed by Google is governed by the
The complexity involved with managing the
Apache 2.0 license, a number of components
hundreds of components and multiple licenses
mobile developers rely on are governed by other
and associated obligations presents challenges
licenses.
for mobile application developers, handset
Android’s rich variety of open source software manufacturers that use Android, and third-party
assets are grouped into external and internal companies that develop software components for
categories. Two major external components - device manufacturers.

Figure 1: The Android Architecture

3 Source: //developer.android.com/guide/basics/what-is-android.html

3 Gartner, as cited in http://www.linuxfordevices.com/c/a/News/Gartner-2Qreport-and-AndroidLinux-fork/


Rapid changes add functionality and The Android project uses git as its SCM system.
richness, but forks create complexity The project is split into over 242 git repositories,
The Android project is continually evolving (see of which over 90 also have been forked from
Figure 2: Android Code lines.) Android code upstream projects. At any time there may be
developed by Google includes changes outside multiple active branches off of a number of ‘code-
the Linux kernel, which created an initial fork. lines’ separating stable code from experimental
From 2009’s V 1.5 ‘Cupcake’ release to today’s work. A wide ecosystem of OEMs and device
V 2.2 ‘Froyo’ release, bug fixes, enhancements builders make contributions into these hundreds
and patches have been added to the main of branches, while Google maintains a private
project. Development occurs at such a rapid code-line for deep development of sensitive
pace that there is an acknowledged large future features involving confidential third party
backlog of patches from Android back upstream information.
to the Linux kernel which keeps the Linux kernel
Android OEMs and device builders must
and Android’s fork out of sync.
continuously update their local copies with
Figure 2: Android Code Lines

Source: //source.android.com/source/code-lines.html
4
the latest ongoing developments to stay in a and modify or augment the Android code base.
position to release their products immediately With this complexity come license and IP
after Android releases. Daily commits from the management challenges. For example:
community introduce new code, some of which
• With Android, the supply chain starts with
may be specific to other OEMs’ devices. These
Google. If you’re a handset manufacturer
changes need to be reviewed and tested for
that has modified Android code to take
compatibility - and assessed for compliance.
advantage of software or hardware feature
With this much development going on in designs, not knowing how the code and
parallel, it is imperative to have a strategy to various components are integrated with your
manage the complexity, and to identify and proprietary code may be an issue.
approve changes going into products.
• Any enhancements or changes a company
Multi-source development and what makes to the Android code could be
it means for the Android ecosystem considered intellectual property. Not knowing
The Android community includes Google, if your code is being re-used and/or mingled
independent application developers, third-party with another company’s Android application
companies which develop software for mobile will potentially expose a company’s IP.
and embedded devices, and manufacturers that
• If the Android application a developer
adopt Android as the OS for a given mobile or
creates contains other commercial 3rd party
embedded device. proprietary code, the developer might be in
The multi-tiered ecosystem represents multi- danger of exposing proprietary code. This
source development at its best, yet it adds may cause damage to customers (e.g., device
complexity to the Android platform. Independent vendors) and may require the developer to
developers may contribute code under a variety compensate its customers for their losses.

of licenses. Handset manufacturers may develop • If the application a software developer


software IP to run on top of the Android OS, creates for the Android platform is not a
in addition to modifying and augmenting the final product but is to be integrated as a
Android codebase to suit a particular hardware component in a customer’s final product
or software design. Commercial software (e.g., a mobile phone), the developer may be
development companies creating 3rd-party endangering its customer’s product (via viral
applications may do all of the above: add IP to effect, injunctions, etc.), if the integration
Android components, use a variety of licenses, with the Android platform was not correctly
5 managed.
Clearly, managing compliance with the For example, the Android-based Samsung
abundance of code and open source licenses Vibrant™ (SGH-t959) phone has a legal
used in the Android platform is a significant acknowledgement section for all open source
challenge. in the phone - and it is over 8,000 lines long. It
specifically acknowledges hundreds of copyright
Obligations in Android holders; for many, this acknowledgement is
The Android project contains over 19 different
specific to individual files or to a list of files.
license types in over 185 different projects
To comply with its publishing obligations,
(or components.) Assuming each license
Samsung provides a download of the files on
is broken out into its respective obligations
its Open Source Release Center website (http://
and those obligations are assigned to each
opensource.samsung.com/) where anyone
component usage, over 1,700 obligations come
can access the files. Any files that do not
into play. Of these over 1,000 are ‘legal’ type
comply with file-level obligations (such as
obligations, while around 700 are developer
type obligations. Fortunately most companies removing copyright statements, incorrectly
don’t need to confirm compliance to over 1,700 adding copyright statements, not documenting
obligations; many of the legal obligations can modifications and others), could be relatively
be reviewed once during internal license review. apparent to the copyright holders and/or others.
Legal obligations typically involve accepting For many contributors to the open source
a disclaimer of warranty, limiting liability, community, this acknowledgement is all they
protection of trademarks or other items that ask in return for the use of their software.
generally do not add work for the developer. Companies should - and can easily - put
together tools and processes to make sure this
However, even the most permissive license
acknowledgement happens.
typically has an obligation of acknowledgement
and other obligations (marking modification, In the end, best practice stipulates that
redistribution requirements, documentation a developer or development organization
requirements, etc.) that can add work to the understands which licenses, components,
software developer’s backlog of tasks. And, in copyrights and files are in their code and what
fact, developer-level obligations often need to be obligations result from that mix of third party
managed, not at the component level, but at the software. Managing this with tooling that
file level. In a highly dynamic environment like provides automated code scanning and reviews
Android development, where files are frequently can increase the efficiency of development
updated from web repositories, keeping track of
organizations and reduce risk in an otherwise
all these obligations can be daunting.
complex process. 6
Best Practices The good news - managing complexity
All companies that use open source software, including is a straightforward process
those that use Android, should follow basic best
practices for ensuring license compliance: Many companies that use Android publish or
make code available to the broader community,
Adopt and enforce an open source and
third party code policy. so any mistakes made in complying with open
Know what you are trying to do with open source, source licenses can be discovered by a review
and develop a disciplined, written OSS policy and of the published code. This step is critical - if
set of practices.
developers accidentally remove copyrights, add
Identify and track all third party code that improper proprietary copyrights or fail to comply
is used.
Check all sources for open source code. Develop with other requirements of the license(s), undesired
a best practice that describes how to manage outcomes, such as legal action, loss of good will
inbound code, an institutionalized policy for
in the open source community and unfavorable
managing third-party and OSS code, and a
documented process that the entire organization coverage in media channels may result.
can understand and support.
Conclusion
Automate validation at the point of Multi-source development with open source
acquisition and in development.
Manual processes are not fast enough to is inevitable in today’s mobile development
aid in the discovery of hidden or potentially environments which put a premium on time-
encumbered code. The more automation is
to-market, low cost, code reduction and re-use
in place, the better able a developer will be
to take advantage of OSS code. Automation and flexibility. In mobile, where new device
also minimizes the impact of OSS compliance platforms are announced monthly and pressure
policies on developers, who can stay focused on
to innovate is extreme, open source - especially
developing rather than tracking code provenance.
Android - is the fast track to opportunity.
Automate monitoring and tracking of
Android and its components. Android is a complex open source project, with
Establish a workflow that makes tracking a
simple, automated part of your development more than 185 components, 19 licenses and a
processes Don’t forget to integrate with rapidly evolving code base to which many are
other systems, especially build and change contributing. To benefit from the abundance
management tools -a build system is a natural
and convenient place to scan for third-party and and opportunity of Android, developers and
OSS code and identify conflicts early. development organizations need an automation
Control component re-use and standardization. platform and processes to manage complexity
Create an approved set of components that is accessible and provide visibility, control and compliance.
and usable by the entire development organization. Who
Black Duck Software has the leading solution for
needs 5 different parsers in one application?.
automating the management of open source use
7 in a multi-source development environment.
The Black Duck Suite allows your software enterprises. The Black Duck Suite includes a
development organization to benefit from open robust SDK which enables integration with IBM
source and manage the complexity of Android Rational, Microsoft and many other development
while also allowing other stakeholders— tools and environments.
including legal, IT, security, export and
All participants in the mobile ecosystem -
purchasing personnel—to access timely and
developers, carriers and device manufacturers
relevant information to effectively manage
- benefit from the abundance and opportunity
business risks. With the Black Duck Suite,
of open source. With those benefits comes the
it’s simple to implement best practices while
need to manage its complexity, especially the
streamlining development and making the most
responsibility for appropriate management and
efficient use of development resources.
control of Android and all open source code
The Black Duck Suite addresses complexity before it makes its way into a final product.
- including the broad set of management, Black Duck Software minimizes complexity and
compliance, and security problems that surface opens mobile development to the abundance
when open source components are used at and opportunity of open source.
significant scale in software development.
Features that address these problems include
a searchable internal catalog, a customizable
approval workflow, and the industry’s most
comprehensive KnowledgeBase (http://www.
blackducksoftware.com/knowledgebase) of
open source information. With the Black Duck
Suite, mobile developers and development
organizations can choose from an array of
features to tailor a solution to their individual
requirements.

Unlike competitive offerings that focus on


narrow aspects of licensing or security for
individual users, the Black Duck Suite scales to
provide an automation platform for open source
management and compliance across global
8
About Black Duck Software
Black Duck Software is the leading global provider
of products and services for accelerating software
development through the managed use of open source
and third-party code. Black Duck™ enables companies
to shorten time-to-market and reduce development
and maintenance costs while mitigating the risks and
challenges associated with open source reuse, including
hidden license obligations, security vulnerabilities and
version proliferation.The company is headquartered near
Boston and has offices in San Francisco, Frankfurt, Paris,
Tokyo and Hong Kong, as well as distribution partners
throughout the world. For more information, visit www.
blackducksoftware.com.

Contact
To learn more, please contact:
sales@blackducksoftware.com
or call +1 781.891.5100
®

Additional information is available


at Black Duck’s web site:
www.blackducksoftware.com
WP-ADN-0910-UL-AB

You might also like