Android OS (Overview)

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

ANDROID OPERATING SYSTEM (OVERVIEW)

Page | 1

1.0 The Android Platform


The Android Platform is a software stack designed primarily but not
exclusively to support mobile devices such as phones and tables.
The stack has several layers. The layers ranges from low level operating
system services that manages the device and its configurations up to sample
Applications like Phone Dialer, Contacts Database and Web Browser. Android
software also comes with a Software Developers Kit, SDK, used to create
Android Applications.
Android Software Stack.
The Android software stack is organized into several layers as follows:
a)
b)
c)
d)

Linux Kernel Layer;


System Libraries and Android Runtime System;
Application Framework Layer; and
Standard Applications Layer.

1. The Linux Kernel Layer


The Linux Kernel Layer is the lowest layer of software in the Android Platform.
It provides core services that Android computing devices rely on. It provides
generic operating system services.
These services include:
a. permission architecture to restrict access to data and resources to
processes that have proper authorization;
b. memory and process management to enable multiple processes run
simultaneously without interfering with each other;
c. and
d. device drivers to enable Android communicate with the wide range lowlevel hardware components that can couple with computing devices
such as memory, camera.

Page | 2

Android Linux Kernel also has some specific components. These are but not
limited to:
a. Android Linux Kernel includes built in power management to enable
mobile device run on battery power;
b. it also has built-in memory sharing and memory management features
because of the limited memory of mobile devices;
c. it also includes inter-process communication mechanism called binder
to allows multiple processes and services share resources in
sophisticated ways.
2. System Libraries and Android Runtime System
The system libraries often referred to as the native library are written in C and
C++. They handle a lot of core performance sensitive activities on Android
devices.
The Android libraries has built-in system C library handling process and thread
creation, mathematical computation, and memory allocation, also, the
System Libraries include:
i.
the Surface Manager for managing and updating the display;
ii.
the Media Framework used for playing back Audio and Video files;
iii. the WebKit for rendering Browser and opening WebPages;
iv. Open GL for high performance graphics; and
v.
SQLite for managing in-memory relational database engine.
The Android Runtime System supports writing and running Android
applications. It has two main components i.e. the Core Java Libraries and the
Dalvik Virtual Machine.
The Core Java Libraries
Android applications are typically written in Java Programming Language. It
provides vast number of reusable Java Building Blocks.
The java.* or javax.* files include basic softwares like common data
structures, concurrency mechanisms and file I/Os. The android.* packages
has software specific to the life cycle of mobile applications. The org.*

packages contains various internet or web operations and the junit.*


packages supports the unit testing of the Android Application.
The Dalvik Virtual Machine
Page | 3

The Dalvik Virtual Machine is the actual software executing Android


Applications. It is designed to run in a resource-constrained environment, i.e.
Mobile Devices. These resources may include slower CPU, less RAM and
limited Battery Life.
The application written Java when compiled to Java BYTECODE would
packaged to a single DEX BYTECODE file with a .dex extension which would be
executed by the Dalvik Virtual Machine
3. Application Framework Layer
The Application Framework Layer contains reusable softwares that Mobile
Applications may likely need. These include:
Package Manager: This is a database that keep track of all Applications
installed on the device. This allows applications to request services from other
applications and contact each other in other to find and share data.
Window Manager: This manages many windows that comprises an
Application. It may comprise main windows and application sub-windows.
View System: - This contains many common graphical user interface
elements. This include icons, text, entry boxes, buttons, e.t.c.
Resource Manager: - This manages the non-compiled resources that makes
up an Application. This include strings, graphic and user interface layout files.
Activity Manager: The Activity Manager helps to coordinate and support
navigation stack in an Application lifecycle.

Content Provider: These essential databases that allow Applications to


store and share structured information. They are designed to run across all
Applications so that not only media applications but all applications.
Page | 4

Location Manager: - This allows Applications to receive locations and


movement information generated by either of the systems. This allows
applications to perform context specific tasks like finding directions.
Notification Manager: - This places notifications of the Notification Bar that
lets users know that certain events have occurred.
4. Applications
Android OS come with some built in Applications in the Mobile Devices. The
Applications Layer handles the built in Applications which include the
standard applications comprising the Home Screen, the Contacts Database,
the Phone Dialer, the Web Browser, Email Reader, e.t.c.
One advantage of the Android Application Layer is that these standard
Applications are not hard-coded in the device. A developer may substitute an
Application with his own 3rd party Application that he feels is a better
Application.
1.1

Overview of the Android Platform and its Components

The Android Development Environment.


The Android Development Environment is considered as the workbench for
writing Android Applications.
The Android Development Environment (IDE) have several components
packed together to develop Android Applications. Android IDE consist of
softwares known as the Android Developer Tools (ADT) Bundle;

Page | 5

The ADT is packed with various softwares used for writing and running
Android Applications on the developers machine. These softwares include
the: Android Emulator;
Eclipse IDE and Plugins;
Android Debugger; and
Lots more.
The Android Emulator
The Android emulator is an application that provides a virtual mobile device
on which you can run your Android applications. It runs a full Android system
stack, down to the kernel level that include a set of preinstalled applications
(such as the dialer) that you can access from your applications. You can
choose what version of the Android system you want to run in the emulator
by configuring AVDs (Android Virtual Devices), and you can also customize the
mobile device skin and key mappings. When launching the emulator and at
runtime, you can use a variety of commands and options to control its
behavior.
The Android system images available through the Android SDK Manager
contain code for the Android Linux kernel, the native libraries, the Dalvik VM,
and the various Android packages (such as the Android framework and
preinstalled applications). The emulator provides dynamic binary translation
of device machine code to the OS and processor architecture of your
development machine.
The Android emulator supports many hardware features likely to be found on
mobile devices, including:
An ARMv5, ARMv7, or x86 CPU
A 16-bit LCD display
One or more keyboards (a Qwerty-based keyboard and associated
Dpad/Phone buttons)
A sound chip with output and input capabilities
Flash memory partitions (emulated through disk image files on the
development machine)

A GSM modem, including a simulated SIM Card


A camera, using a webcam connected to your development computer.
Sensors like an accelerometer, using data from a USB-connected
Android device.
Page | 6

Android Virtual Devices and the Emulator


To use the emulator, you first must create one or more Android Virtual Device
configurations. In each configuration, you specify an Android platform to run
in the emulator and the set of hardware options and emulator skin you want
to use. Then, when you launch the emulator, you specify the AVD
configuration that you want to load.
Each AVD functions as an independent device, with its own private storage
for user data, SD card, and so on. When you launch the emulator with an AVD
configuration, it automatically loads the user data and SD card data from the
AVD directory. By default, the emulator stores the user data, SD card data,
and cache in the AVD directory.
To create and manage AVDs you use the AVD Manager UI or the android tool
that is included in the SDK.

Hibban Buhari
Faculty of Computer Science &
Information Technology,
Bayero University, Kano,
Kano Nigeria.

You might also like