IT14L - Module 1 - What Is Android
IT14L - Module 1 - What Is Android
Android was developed by the Open Handset Alliance (OHA), which is led by Google.
The Open Handset Alliance (OHA) is a consortium of multiple companies like Samsung,
Sony, Intel and many more to provide services and deploy handsets using the android
platform.
In 2007, Google released a first beta version of the Android Software Development Kit
(SDK) and the first commercial version of Android 1.0 (with name Alpha), was released
in September 2008.
In 2012, Google released another version of android, 4.1 Jelly Bean. It’s an incremental
update and it improved a lot in terms of the user interface, functionality, and
performance.
In 2014, Google announced another Latest Version, 5.0 Lollipop. In Lollipop version
Google completely revamped the UI by using Material Designs, which is good for the
User Interface as well for the themes related.
All the source code for Android is available free on Git-Hub, Stack overflow, and many
more websites. Google publishes most of the code under the Apache License version
2.0.
Android Features
It supports connectivity for GSM, CDMA, WIFI, NFC, Bluetooth, etc. for telephony or
data transfer. It will allow us to make or receive a calls / SMS messages and we can
send or retrieve data across mobile networks
By using WIFI technology we can pair with other devices using apps
We can perform all data storage related activities by using lightweight database
SQLite.
It has a wide range of media supports like AVI, MKV, FLV, MPEG4, etc. to play or
record a variety of audio/video and having a different image format like JPEG, PNG,
GIF, BMP, MP3, etc.
It supports a multi-tasking, we can move from one task window to another and
multiple applications can run simultaneously
It will give a chance to reuse the application components and the replacement of
native applications.
We can access the hardware components like Camera, GPS, and Accelerometer
Android History
Initially, Google launched the first version of Android platform on Nov 5, 2007, from that
onwards Google released a lot of android versions under a codename based on
desserts, such as Apple Pie, Banana Bread, Cupcake, Donut, Éclair, Froyo,
Gingerbread, Jellybeans, Kitkat, Lollipop, marshmallow , etc. and made a lot of
changes and additions to the android platform.
In these components, the Linux Kernel is the main component in android to provide its
operating system functions to mobile and Dalvik Virtual Machine (DVM) which is
responsible for running a mobile application.
Following is the pictorial representation of android architecture with different
components.
Applications
The top layer of the android architecture is Applications. The native and third-party
applications like contacts, email, music, gallery, clock, games, etc. whatever we will
build those will be installed on this layer only.
The application layer runs within the Android run time using the classes and services
made available from the application framework.
Application Framework
The Application Framework provides the classes used to create Android applications. It
also provides a generic abstraction for hardware access and manages the user
interface and application resources. It basically provides the services through which we
can create a particular class and make that class helpful for the Application creation.
The application framework includes services like telephony service, location services,
notification manager, NFC service, view system, etc. which we can use for application
development as per our requirements.
Android Runtime
Android Runtime environment is an important part of Android rather than an internal part
and it contains components like core libraries and the Dalvik virtual machine. The
Android run time is the engine that powers our applications along with the libraries and it
forms the basis for the application framework.
Dalvik Virtual Machine (DVM) is a register-based virtual machine like Java Virtual
Machine (JVM). It is specially designed and optimized for android to ensure that a
device can run multiple instances efficiently. It relies on the Linux kernel for threading
and low-level memory management.
The core libraries in android runtime will enable us to implement android applications
using standard JAVA programming language.
Platform Libraries
The Platform Libraries includes various C/C++ core libraries and Java-based libraries
such as SSL, libc, Graphics, SQLite, Webkit, Media, Surface Manger, OpenGL, etc. to
provide support for Android development.
The following are the summary details of some core android libraries available for
android development.
Media library for playing and recording audio and video formats
The Surface manager library to provide a display management
SGL and OpenGL Graphics libraries for 2D and 3D graphics
SQLite is for database support and FreeType for font support
Web-Kit for web browser support and SSL for Internet security.
Linux Kernel
Linux Kernel is a bottom layer and heart of the android architecture. It manages
all the drivers such as display drivers, camera drivers, Bluetooth drivers, audio
drivers, memory drivers, etc. which are mainly required for the android device
during the runtime.
The Linux Kernel will provide an abstraction layer between the device hardware and
the remainder of the stack. It is responsible for memory management, power
management, device management, resource access, etc.