Android Unit 1
Android Unit 1
What is Android
Why Android ?
History of Android
The history and versions of android are interesting to know. The code names of android ranges
from A to J currently, such as Aestro, Blender, Cupcake, Donut, Eclair, Froyo, Gingerbread,
Honeycomb, Ice Cream Sandwitch, Jelly Bean, KitKat and Lollipop. Let's understand the
android history in a sequence.
1) Initially, Andy Rubin founded Android Incorporation in Palo Alto, California, United States
in October, 2003.
2) In 17th August 2005, Google acquired android Incorporation. Since then, it is in the subsidiary
of Google Incorporation.
3) The key employees of Android Incorporation are Andy Rubin, Rich Miner, Chris White
and Nick Sears.
4) Originally intended for camera but shifted to smart phones later because of low market for
camera only.
5) Android is the nick name of Andy Rubin given by coworkers because of his love to robots.
6) In 2007, Google announces the development of android OS.
7) In 2008, HTC launched the first android mobile.
Versions of Android
Code name Version numbers Release date
4. iPhone OS / iOS: Developed by the Apple inc for the use on its device.
7. Harmony OS : The harmony operating system is the latest mobile operating system that was
developed by Huawei for the use of its devices.
8. Palm OS : Developed by Palm Ltd . It was introduced in 1996. Palm OS is also known as the
Garnet OS.
(ii) Robustness: A user expects a mobile operating system to be robust. This means it should be
strong and unlikely to fail or crash. The device must not only be designed to avoid crash, but
must also provide support functions and policies. These support functions and policies allow the
device to handle 239 Advanced Topics in Operating Systems application errors and
out-of-memory situations, without hampering the functionalities of the Smartphone.
(iii) User interface for limited user hardware: The operating system should implement a user
interface environment that is efficient and intuitive to use, despite the smaller screen and limited
user input capabilities of the Smartphone. Furthermore, the screen sizes and input capabilities
vary between different models of Smartphones, so the User Interface architecture should be
flexible, such that it can be customized for the various user interface objects.
(iv) Library support: Smartphone operating systems should contain middleware libraries and
frameworks with APIs that implement and abstract the functionality of the features of the
Smartphone. The purpose is to provide functional consistency and to ease the software
development. Middleware library and framework is a software layer that acts as a mediatory
between the application and the system’s operating system. The middleware framework consists
of a set of components that connects the application with the underlying OS. Examples of
Smartphone middleware include libraries and frameworks for email, SMS, MMS, Bluetooth,
cryptography, multimedia, User Interface features, and GSM or GPRS, which provide more
support for Smartphone features.
Android Architecture
android architecture or Android software stack is categorized into five parts:
1. linux kernel
2. native libraries (middleware),
3. Android Runtime
4. Application Framework
5. Applications
Android operating system is a stack of software components which is roughly divided into five
sections and four main layers as shown below in the architecture diagram.
Linux kernel
It is the heart of android architecture that exists at the root of android architecture. Linux kernel
is responsible for device drivers, power management, memory management, device management
and resource access.
At the bottom of the layers is Linux - Linux 3.6 with approximately 115 patches. This provides a
level of abstraction between the device hardware and it contains all the essential hardware
drivers 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 Libraries
This category encompasses those Java-based libraries that are specific to Android
development. Examples of libraries in this category include the application framework
libraries in addition to those that facilitate user interface building, graphics drawing
and database access. A summary of some key core Android libraries available to the
Android developer is as follows −
android.app − Provides access to the application model and is the cornerstone of
all Android applications.
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.opengl − A Java interface to the OpenGL ES 3D graphics rendering API.
android.os − Provides applications with access to standard operating system
services including messages, system services and inter-process communication.
android.text − Used to render and manipulate text on a device display.
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.
Having covered the Java-based core libraries in the Android runtime, it is now time to turn our
attention to the C/C++ based libraries contained in this layer of the Android software stack.
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.
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.
View System − An extensible set of views used to create application user
interfaces.
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.
Features of NetBeans
● Code Development.
● Code Editing.
● Debugging.
● Deployment Management.
● For Developers.
● Graphical User Interface.
● Integrated Development Environment.
● Mobile Development.