1
Enea is a global software and services company focused on solutions for communication-driven products. With 40 years of experience Enea is a world leader in the development
of software platforms with extreme demands on high-availability and performance. Enea’s expertise in real-time operating systems and high availability middleware shortens
development cycles, brings down product costs and increases system reliability. Enea’s vertical solutions cover telecom handsets and infrastructure, medtech, automotive and
mil/aero. Enea is listed on Nasdaq OMX Nordic Exchange Stockholm AB. For more information please visit enea.com or contact us at info@enea.com. www.enea.com
white paper
the emergence of android paves the way for new opportunities for the world’s
mobile phone manufacturers to take advantage of the trend created by apple
with its iphone, moving the user back to the center. the only problem is that
android is a work in progress.
ANdrOid:
Opportunities and Challenges
The Emergence of Android
What is Android? Android is a Linux-based
platform for mobile and small form
factor devices. There are two things that
distinguish Android from other Linux
distributions – it is a single-user system
and it is adapted for use on mobile
platforms. The Open Handset Alliance
organization and its members are behind
the concept, and its main sponsor,
which has also adopted a significant
role, is Google.
Perhaps Android’s most important
characteristic is openness. Not only is
most of the platform code open source;
but also, all applications are of equal
value. if, for example, users don’t like
the browser supplied, they’re free to
replace it with another browser of their
choice. There are already thousands
of applications which add or replace
inbuilt functionality.
despite the new opportunities for
mobile phone manufacturers, a tricky
balancing act is ensuing. Manufacturers
are on one hand trying to rush Android
devices to market as quickly as possible,
while at the same time managing their
legacy phone platform investments.
Android-based mobile phones
belong to the “smart-phones” segment.
While traditional “feature phones” will
often be based on a real-time operating
system with all of the functionality
provided by the manufacturer, smart-
phones are based on an application
operating system such as Linux, Symbian
or Windows CE and only base applications
written by the manufacturer. Other
applications can be purchased and
downloaded by users as they need
the functionality. in this regard, smart-
phones are more like ordinary PCs.
But Android is significantly different
from other smart-phones. All interfaces
are open to anyone who wants to
write applications. The manufacturer is
unable to maintain their own proprietary
interfaces to specific functionality with -
out countering the entire Android
concept. Quite the opposite, in fact; all
functionality is accessible to all and
manufacturers are encouraged to
publish any extensions.
Inside Android
All Android applications are written in
the Java programming language. They
are then compiled in two stages, first
using an ordinary Java compiler and
then using a dex compiler. dex stands
for dalvik executable format. The finished
code is then executed in a virtual
machine known as dalvik.
dalvik is often referred to as a Java
machine. However, this is not quite
correct since dalvik doesn’t run Java
bytecode at all; it runs its own variant,
known as dex code. The internal layout
also differs in a number of respects.
dalvik is a register-based machine
– i.e. like most modern CPUs – while
Java machines are stack-based. More-
over, every application is run in its own
instance of the virtual machine, while
Java machines traditionally run in
separate threads in the same instance,
at least for mobile platforms. The main
instance of dalvik is known as Zygote
and is started on system launch. As
soon as an application is to start, a copy
of the Zygote process is created by means
of a fork() call and the application then
runs in the new instance.
This particular layout, which involves
every application having its own instance
– or its own process in the operating
system – paves the way for a very specific
solution in order to achieve a robust
system. By combining this with the fact
that Android is a single-user system,
separate user and group identities are
used for every application. Furthermore,
2
white paper
very restrictive rights are set and appli-
cations are unable to access anything
automatically other than their own
resources.
However, it is possible to share
resources. This is controlled by asking
the user when installing the application
whether – for example – their own
phonebook should be accessible, or
whether the application should be
permitted to access anything via the
network.
inter Process Communication (iPC)
is another area where Android differs
from other Linux-based systems. While
the classic iPC functions are accessible,
the preferred iPC is a technology called
Binder. in many respects, Binder is an
object-oriented communication channel
like COM or COrBA. However, in Android’s
version Binder is a lot less generic, and
instead is specially adapted for precisely
this platform.
One subsystem in Android that
has received a lot of publicity is the C
library, which is used for all native code.
To avoid the typical license problems
which normally affects companies
when they develop products based
on Linux, the Android team developed
their own version of the standard C
library. This library is called the Bionic C
library and is protected by a BSd
licence instead of the GPL licence
which protects many of the other C
libraries used in Linux. This means that
mobile phone manufacturers can add
functionality to the C library without
having to publish their source code.
A lot of other code that is included
in the Android concept is protected by
the Apache licence, but there are also
parts protected by GPL or LGPL and
other common open source licenses.
The wide range of licences used in the
platform poses a risk for manufacturers.
The Bionic C library is by no means
revolutionary, but it has some inte-
resting properties besides the license
stated above. While the library can be
linked statically or dynamically to the
C application, each process will get its
own copy of the entire library, placed in
the process’ address space. This means
that the code has to be really compact.
To meet this requirement, a number of
special cases have been removed and
only necessary functionality has been
implemented. For instance, C++ support
is very limited. Quite simply, native
services and system functionality have
to be written in C.
The Android team does not view
this as a big problem since they do
not really recommend anyone to write
native code. Telephone manufacturers
and application developers will be
sticking to Java. The Android team has
however recently released an NdK, or
native development toolkit, so their
view on native code may have changed
somewhat.
Another of the classical problems
for developers of more advanced
embedded systems is file systems
performance. The best file systems for
Linux require the block device to be of
hard disk type. But this is not the case
in smart-phones and other small form
factor devices. instead, a file system
customised for a block device of flash
memory type is required. The most
common flash file systems for Linux at
the moment have problems with either
performance or stability. The recom-
mended file system for Android is called
Yaffs2, and with this some success has
been achieved in resolving many
problems, but others have been added.
For instance, it will not be possible to use
Yaffs2 on modern flash memory types
without some major development
work. in the long run, mobile manu-
facturers may have look for other file
systems even though there are no clear
open source alternatives at present.
Another challenge faced by smart-
phone manufacturers involves the
actual system layout. These are often
based on a System-On-Chip (SoC),
where several CPUs – which are often
running several different operating systems
– have to be able to communicate
efficiently. Android does not include
any clear directives for the hardware,
other than minimum requirements for
the memory and CPU speed. A typical
smart-phone layout includes a power-
ful application processor running – for
example – Linux and a radio processor
running a robust, real-time operating
system such as Enea OSE. This combi-
nation often includes one or more dSPs
that offloads the radio cpu by executing
the more complex algorithms. The dSP
often runs another operating system
such as Enea OSEck. To achieve a reliable
telephone, communication paths
between the various processors have
to be robust and effective. Enea’s LiNX
product can be used to resolve these
problems. LiNX simply links together
the application operating system with
other operating systems. LiNX for Linux
has been released with open source
code. There are also other solutions
available.
Opportunities,
but Many Challenges
The biggest problem with Android
is that it is not a complete platform,
despite the fact that Android phones
are already on the market. For instance,
there is still not full support for blue-
tooth, functionality which a lot of users
think should obviously be included
these days. Nor is it entirely clear how
manufacturers are supposed to extend
the platform for their own requirements
without breaching the public interfaces.
Enea®, Enea OSE®, Netbricks®, Polyhedra® and Zealcore® are registered trademarks of Enea AB and its subsidiaries. Enea OSE®ck, Enea OSE® Epsilon, Enea® Element, Enea® Optima,
Enea® Optima Log Analyzer, Enea® Black Box recorder, Enea® LiNX, Enea® Accelerator, Polyhedra® Flashlite, Enea® dSPEEd Platform, Enea® System Manager, Accelerating Network
Convergence™, device Software Optimized™ and Embedded for Leaders™ are unregistered trademarks of Enea AB or its subsidiaries. Any other company, product or service
names mentioned above are the registered or unregistered trademarks of their respective owner. WP52 082009. © Enea AB 2009.
3
white paper
At present, it is not possible to add
refinements such as a more advanced
camera APi without first acquiring
approval from the Android alliance.
The fact that the platform is not
complete yet is quite obvious from the
limited documentation available. The
application layer, with all its Java inter-
faces, is very well documented; but for
anyone who is interested in the rest of
the platform, there is only document-
ation in the form of source code, as
well as forums and blogs. Of course,
it is great to have a large community
with a great deal of commitment, but
everyone who looks more in depth at
Android has to form their own opinions
of whether the information they find is
reliable.
The hardware requirements are also
too modest. According to the specifi-
cation, you need at least 128 MB rAM,
256 MB flash and a CPU operating at a
minimum of 200 MHz.
However, Android is intended
primarily as a platform for the high end
segment, which will surely mean that
most manufacturers will feel obliged to
exceed the minimum requirements by
a good margin.
Another problem area is how the
income for the third party applications
will be handled. Android has its own
software store, known as Android Market,
which is fully controlled by Google. it is
not known whether the income from
Android market is distributed between
members of the Open Handset Alliance,
but this is highly likely to be a matter for
dispute.
And finally, there is the question
of security. As mobile phones become
more open and resemble PCs more,
the risks of viruses and other malware
increase. When installing applications,
users have to approve the rights given
to each application, but then it is up to
the developer of that application not
to abuse these rights.
Conclusions
despite its problems, Android is
the hottest thing to have happened in
the mobile industry in a long time, and
most mobile manufacturers have major
projects in the pipeline. it also creates
some exciting new challenges and
opportunities for service companies
and operators.
For more information:
www.enea.com/android
The Android logo is reproduced from
work created and shared by Google and
used according to terms described in the
Creative Commons 3.0 Attribution License.
本文档为【android_introduce】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。