07 - Android Architecture
07 - Android Architecture
Linux Kernel
• 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 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 efficiency and performance of the Linux kernel that we find this
software at the heart of the Android software stack.
Android Runtime - ART
• 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.
Android Libraries
• These are a set of Java-based libraries that are specific to Android
development.
• A summary of some key core Android libraries available to the
Android developer is as follows:
• android.content: Facilitates content access, publishing and messaging
between applications and application components.
• android.database: Used to access data published by content providers and
includes SQLite database management classes.
• android.print: Includes a set of classes that enable content to be sent to
configured printers from within Android applications.
Android Libraries
• android.graphics: A low-level 2D graphics drawing API including colors,
points, filters, rectangles and canvases.
• android.hardware: Presents an API providing access to hardware such as the
accelerometer and light sensor.
• android.os: Provides applications with access to standard operating system
services including messages, system services and inter-process
communication.
• android.media: Provides classes to enable playback of audio and video.
• android.net: A set of APIs providing access to the network stack. Includes
android.net.wifi, which provides access to the device’s wireless stack.
Android Libraries
• android.provider: A set of convenience classes that provide access to
standard Android content provider databases such as those maintained by
the calendar and contact applications.
• android.text: Used to render and manipulate text on a device display.
• android.util: A set of utility classes for performing tasks such as string and
number conversion, XML handling and date and time manipulation.
• android.view: The fundamental building blocks of application user
interfaces.
• android.widget: A rich collection of pre-built user interface components
such as buttons, labels, list views, layout managers, radio buttons etc.
• android.webkit: A set of classes intended to allow web-browsing capabilities
to be built into applications.
Application Framework
• The Application Framework is a set of services that collectively form
the environment in which Android applications run and are managed.
• The Android framework includes the following key services:
• Activity Manager: Controls all aspects of the application lifecycle and
activity stack.
• Content Providers: Allows applications to publish and share data with other
applications.
• Resource Manager: Provides access to non-code embedded resources such
as strings, color settings and user interface layouts.
• Notifications Manager: Allows applications to display alerts and
notifications to the user.
Application Framework
• View System: An extensible set of views used to create application user
interfaces.
• Package Manager: The system by which applications are able to find out
information about other applications currently installed on the device.
• Telephony Manager: Provides information to the application about the
telephony services available on the device such as status and subscriber
information.
• Location Manager: Provides access to the location services allowing an
application to receive updates about location changes.
Applications
• Located at the top of the Android software stack are the
applications.
• These comprise both the native applications provided with the
particular Android implementation and the third party applications
installed by the user after purchasing the device.