Académique Documents
Professionnel Documents
Culture Documents
At the bottom of the layers is Linux - Linux 2.6 with approximately 115 patches. This
provides basic system functionality like process management, memory
management, device management like camera, keypad, display etc. Also, the kernel
handles all the things that Linux is really good at such as networking and a vast
array of device drivers, which take the pain out of interfacing to peripheral
hardware.
Libraries
On top of Linux kernel there is a set of libraries including open-source Web browser
engine WebKit, well known library libc, SQLite database which is a useful repository
for storage and sharing of application data, libraries to play and record audio and
video, SSL libraries responsible for Internet security etc.
Android Runtime
This is the third section of the architecture and available on the second layer from
the bottom. This section provides a key component called Dalvik Virtual Machine
which is a kind of Java Virtual Machine specially designed and optimized for Android.
The Dalvik VM makes use of Linux core features like memory management and
multi-threading, which is intrinsic in the Java language. The Dalvik VM enables every
Android application to run in its own process, with its own instance of the Dalvik
virtual machine.
The Android runtime also provides a set of core libraries which enable Android
application developers to write Android applications using standard Java
programming language.
Application Framework
The Application Framework layer provides many higher-level services to applications
in the form of Java classes. Application developers are allowed to make use of these
services in their applications.
Applications
You will find all the Android application at the top layer. You will write your
application to be installed on this layer only. Examples of such applications are
Contacts Books, Browser, Games etc.
1. Linux Kernel
The basic layer is the Linux Kernel. The whole Android OS is built on
top of the Linux Kernel with some further architectural changes.
Please dont get confused by the terms Linux and Linux Kernel. The
term Kernel means the core of any Operating System. By saying
Android is based upon Linux Kernel, it doesnt mean that it is
another Linux distribution. It is not like that. It simply means,
Android at its core is Linux. But you cant run any linux packages on
Android. It is a totally different OS. It is this Linux kernel that
interacts with the hardware and it contains all the essential
hardware drivers. Drivers are programs that control and
communicate with the hardware. For example, consider the
Bluetooth function. All devices has a Bluetooth hardware in it.
Therefore the kernel must include a Bluetooth driver to
communicate with the Bluetooth hardware. The Linux kernel also
acts as an abstraction layer between the hardware and other
software layers. As the Android is built on a most popular and
proven foundation, the porting of Android to variety of hardware
became a relatively painless task.
2. Libraries
The next layer is the Androids native libraries. It is this layer that
enables the device to handle different types of data. These libraries
are written in c or c++ language and are specific for a particular
hardware.
storage purposes
WebKit: It is the browser engine used to display HTML content
OpenGL: Used to render 2D or 3D graphics content to the screen
3. Android Runtime
Android Runtime consists of Dalvik Virtual machine and Core Java
libraries.
ART
4. Application Framework
These are the blocks that our applications directly interacts with.
These programs manage the basic functions of phone like resource
management, voice call management etc. As a developer, you just
consider these are some basic tools with which we are building our
applications.
Important blocks of Application framework are:
Activity Manager: Manages the activity life cycle of applications
Content Providers: Manage the data sharing between applications
Telephony Manager: Manages all voice calls. We use telephony
our Application
5. Applications
Applications are the top layer in the Android architecture and this is
where our applications are gonna fit into. Several standard
applications comes pre-installed with every device, such as:
Dialer
Web browser
Contact manager
As a developer we are able to write an app which replace any
existing system app. That is, you are not limited in accessing any
particular feature. You are practically limitless and can whatever you
want to do with the android (as long as the users of your app
permits it). Thus Android is opening endless opportunities to the
developer.
Positioned at the bottom of the Android software stack, the Linux Kernel provides a
level of abstraction between the device hardware and the upper layers of the
Android software stack. Based on Linux version 2.6, the kernel provides preemptive
multitasking, low-level core system services such as memory, process and power
management in addition to providing a network stack and device drivers for
hardware such as the device display, Wi-Fi and audio.
The original Linux kernel was developed in 1991 by Linus Torvalds and was
combined with a set of tools, utilities and compilers developed by Richard Stallman
The Android Core Libraries (also referred to as the Dalvik Libraries) fall into three
main categories, each of which merits an individual description:
Dalvik VM Specific Libraries
This is a set of libraries used predominantly for interacting directly with an instance
of the Dalvik VM and is unlikely to be used by most Android application developers.
eBookFrenzy.com
Purchase the full edition of this Android 4.4 App Development Essentials publication
in eBook ($9.99) or Print ($28.99) format
Android 4.4 App Development Essentials Print and eBook (ePub/PDF/Kindle) editions
contain 52 chapters.
Buy eBook
Buy Print
Application Framework
Located at the top of the Android software stack are the applications. These
comprise both the native applications provided with the particular Android
implementation (for example web browser and email applications) and the third
party applications installed by the user after purchasing the device.