Chapter 1 - Android and Its Tools
Chapter 1 - Android and Its Tools
Introduction to Android
What is Android?
• Android is an open source and Linux-based operating system for mobile
devices such as smartphones and tablet computers.
• Android was developed in 2003 by American technology Company Android
Inc.
• The Developers are Andy Rubin, Chris White, Nick Sears
• Initially it was developed as OS for Digital Camera
• In 2004 the project changed to become an operating system for
smartphones.
• Android was purchased by Google in $50 Million dollars in 2004.
What is OHA?
The Open Handset Alliance (OHA) is a consortium of 84 firms to
develop open standards for mobile devices. Member firms
include HTC, Sony, Dell, Intel, Motorola, Qualcomm, Texas
Instruments, Google, Samsung Electronics, LG Electronics, T-Mobile, Sprint
Corporation and Wind River Systems.
History
• Initially Android was developed for Digital Camera but now days 2 Billion phones
are using Android and 3 Billion devices are Android Active.
• The first beta version of the Android Software Development Kit (SDK) was
released by Google in 2007
• The first commercial version, Android 1.0, was released in September 2008.
• On June 27, 2012, at the Google I/O conference, Google announced the next
Android version, 4.1 Jelly Bean.
• Jelly Bean is an incremental update, with the primary aim of improving the user
interface, both in terms of functionality and performance.
Android Versions
Why Android ?
There are so many reasons you should choose Android platform for mobile application development.
• Zero/negligible development cost
The development tools like Android SDK, JDK, and Eclipse IDE, Android Studio etc. are free to download for the android mobile
application development. Also Google charge a small fee $25, to distribute your mobile app on the Android Market.
• Open Source
The Android OS is an open-source platform based on the Linux kernel and multiple open-source libraries. In this way developers
are free to contribute or extend the platform as necessary for building mobile apps which run on Android devices.
• Multi-Platform Support
In market, there are a wide range of hardware devices powered by the Android OS, including many different phones and tablet.
Even development of android mobile apps can occur on Windows, Mac OS or Linux.
• Multi-Carrier Support
World wide a large number of telecom carriers like Airtel, Vodafone, Idea Cellular, AT&T Mobility, BSNL etc. are supporting
Android-powered phones.
• Open Distribution Model
Android Market place (Google Play store) has very few restrictions on the content or functionality of an android app. So the
developer can distribute theirs app through the Google Play store and as well other distribution channels like Amazon’s app store.
Features of Android
06 the home screen, Android comes with this capability from the get-go.
Download a third-party launcher like Apex, Nova, and you can add
gestures, new shortcuts, or even performance enhancements.
Widgets- Android widgets let you display just about any feature you
Android Architecture
1. Applications
• An application is the top layer of the android architecture.
• The pre-installed applications like camera, gallery, home, contacts,
etc., and third-party applications downloaded from the play store
like games, chat applications, etc., will be installed on this layer.
• It runs within the Android run time with the help of the classes and
services provided by the application framework.
2. Application framework
• Application Framework provides several important classes used to create an
Android application.
• It includes different types of services, such as activity manager, notification
manager, view system, package manager etc., which are helpful for the
development of our application according to the prerequisite.
• 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.
• 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,
colour 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.
3. Application Runtime
• Android Runtime environment contains components like core libraries and the
Dalvik virtual machine (DVM). It provides the base for the application framework
and powers our application with the help of the core libraries.
• Dalvik Virtual Machine (DVM) is a register-based virtual machine designed and
optimized for Android to ensure that a device can run multiple instances efficiently.
• It depends on the layer Linux kernel for threading and low-level memory
management. The core libraries enable us to implement android applications using
the standard JAVA or Kotlin programming languages.
4. Platform Libraries
• The Platform Libraries include various C/C++ core libraries and Java-
based libraries such as Media, Graphics, Surface Manager, OpenGL, etc.,
to support Android development.
• app: Provides access to the application model and is the cornerstone of all Android
applications.
• content: Facilitates content access, publishing and messaging between
applications and application components.
• database: Used to access data published by content providers and includes
SQLite database, management classes.
• OpenGL: A Java interface to the OpenGL ES 3D graphics rendering API.
• os: Provides applications with access to standard operating system services,
including messages, system services and inter-process communication.
5. Linux Kernel.
• Linux Kernel is the heart of the android architecture. It manages all the available
drivers such as display, camera, Bluetooth, audio, memory, etc., required during the
runtime.
• The Linux Kernel will provide an abstraction layer between the device hardware and
the other android architecture components. It is responsible for the management of
memory, power, devices etc. The features of the Linux kernel are:
• Security: The Linux kernel handles the security between the application and the system.
• Memory Management: It efficiently handles memory management, thereby providing the
freedom to develop our apps.
• Process Management: It manages the process well, allocates resources to processes
whenever they need them.
• Network Stack: It effectively handles network communication.
• Driver Model: It ensures that the application works properly on the device and hardware
manufacturers responsible for building their drivers into the Linux build.
6. Android Applications