Nothing Special   »   [go: up one dir, main page]

Unit 4 Os

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

UNIT 4:

Handheld system:
Operating systems for Handheld systems:
An operating system is a program whose job is to manage a computer’s hardware.
Its other use is that it also provides a basis for application programs and acts as an
intermediary between the computer user and the computer hardware. An amazing
feature of operating systems is how they vary in accomplishing these tasks.
Operating systems for mobile computers provide us with an environment in which
we can easily interface with the computer so that we can execute the programs.
Thus, some of the operating systems are made to be convenient, others to be well-
organized, and the rest to be some combination of the two.
Handheld Operating System:
Handheld operating systems are available in all handheld devices like Smartphones
and tablets. It is sometimes also known as a Personal Digital Assistant. The popular
handheld device in today’s world is Android and iOS. These operating systems
need a high-processing processor and are also embedded with various types of
sensors.
Some points related to Handheld operating systems are as follows:
Since the development of handheld computers in the 1990s, the demand for
software to operate and run on these devices has increased.
Three major competitors have emerged in the handheld PC world with three
different operating systems for these handheld PCs.
Out of the three companies, the first was the Palm Corporation with their PalmOS.
Microsoft also released what was originally called Windows CE. Microsoft’s
recently released operating system for the handheld PC comes under the name of
Pocket PC.
More recently, some companies producing handheld PCs have also started offering
a handheld version of the Linux operating system on their machines.
Features of Handheld Operating System:
Its work is to provide real-time operations.
There is direct usage of interrupts.
Input/Output device flexibility.
Configurability.
Types of Handheld Operating Systems:
Types of Handheld Operating Systems are as follows:
Palm OS
Symbian OS
Linux OS
Windows
Android
Palm OS:
Since the Palm Pilot was introduced in 1996, the Palm OS platform has provided
various mobile devices with essential business tools, as well as the capability that
they can access the internet via a wireless connection.
These devices have mainly concentrated on providing basic personal-information-
management applications. The latest Palm products have progressed a lot, packing
in more storage, wireless internet, etc.
Symbian OS:
It has been the most widely-used smartphone operating system because of its ARM
architecture before it was discontinued in 2014. It was developed by Symbian Ltd.
This operating system consists of two subsystems where the first one is the
microkernel-based operating system which has its associated libraries and the
second one is the interface of the operating system with which a user can interact.
Since this operating system consumes very less power, it was developed for
smartphones and handheld devices.
It has good connectivity as well as stability.
It can run applications that are written in Python, Ruby, .NET, etc.
Linux OS:
Linux OS is an open-source operating system project which is a cross-platform
system that was developed based on UNIX.
It was developed by Linus Torvalds. It is a system software that basically allows
the apps and users to perform some tasks on the PC.
Linux is free and can be easily downloaded from the internet and it is considered
that it has the best community support.
Linux is portable which means it can be installed on different types of devices like
mobile, computers, and tablets.
It is a multi-user operating system.
Linux interpreter program which is called BASH is used to execute commands.
It provides user security using authentication features.
Windows OS:
Windows is an operating system developed by Microsoft. Its interface which is
called Graphical User Interface eliminates the need to memorize commands for the
command line by using a mouse to navigate through menus, dialog boxes, and
buttons.
It is named Windows because its programs are displayed in the form of a square. It
has been designed for both a beginner as well professional.
It comes preloaded with many tools which help the users to complete all types of
tasks on their computer, mobiles, etc.
It has a large user base so there is a much larger selection of available software
programs.
One great feature of Windows is that it is backward compatible which means that
its old programs can run on newer versions as well.
Android OS:
It is a Google Linux-based operating system that is mainly designed for
touchscreen devices such as phones, tablets, etc.
There are three architectures which are ARM, Intel, and MIPS which are used by
the hardware for supporting Android. These lets users manipulate the devices
intuitively, with movements of our fingers that mirror some common motions such
as swiping, tapping, etc.
Android operating system can be used by anyone because it is an open-source
operating system and it is also free.
It offers 2D and 3D graphics, GSM connectivity, etc.
There is a huge list of applications for users since Play Store offers over one
million apps.
Professionals who want to develop applications for the Android OS can download
the Android Development Kit. By downloading it they can easily develop apps for
android.
Advantages of Handheld Operating System:
Some advantages of a Handheld Operating System are as follows:
Less Cost.
Less weight and size.
Less heat generation.
More reliability.
Disadvantages of Handheld Operating System:
Some disadvantages of Handheld Operating Systems are as follows:
Less Speed.
Small Size.
Input / Output System (memory issue or less memory is available).

How Handheld operating systems are different from Desktop operating systems?
Since the handheld operating systems are mainly designed to run on machines that
have lower speed resources as well as less memory, they were designed in a way
that they use less memory and require fewer resources.
They are also designed to work with different types of hardware as compared to
standard desktop operating systems.
It happens because the power requirements for standard CPUs far exceed the
power of handheld devices.
Handheld devices aren’t able to dissipate large amounts of heat generated by
CPUs. To deal with such kind of problem, big companies like Intel and Motorola
have designed smaller CPUs with lower power requirements and also lower heat
generation. Many handheld devices fully depend on flash memory cards for their
internal memory because large hard drives do not fit into handheld devices.

Plam os -symbian operating system

The Palm Operating System – Technology Overview Copyright © 1996 by Palm


Computing. All rights reserved. he Palm Computing Division of U.S. Robotics set
out to create a compelling, low-cost, small form-factor, hand-held computer that
connects seamlessly to Windows and Macintosh personal computers.
The search for appropriate operating system software for this device led to the
discovery of a gap in functionality between proprietary microcontroller-based
system software on the low-end and PDA operating systems on the high end. To
fill this gap U.S. Robotics created the Palm Operating System.
The Need for a New Operating System Low-cost, hand-held devices, such as
electronic organizers, cell phones and pagers, have relied on proprietary,
microcontroller-based system software to achieve affordable price points and long
battery life (see Figure 1.)
The resulting devices are limited in software functionality, provide poor user
interfaces and little or no connectivity to the desktop. On the high-end are full
multi-window, device-independent operating systems for PDAs and Personal
Communicators.
While these operating systems facilitate graphical user interfaces, applications
development, and robust functionality, they require system resources that prevent
the creation of fast, low-power, low-cost devices. Furthermore, even these high-
end systems are not designed from the ground up to provide seamless connectivity
with desktop PCs.
The Need For Connectivity To make hand-held devices fast, power-efficient, and
easy to operate, focused functionality is essential. Data viewing, lookup and
limited data gathering is better suited for a hand-held device. The PC is ideal for
data management, batch data entry, printing, backup, archive and configuration
tasks.
To leverage resources appropriately, applications need to be partitioned between
the hand-held and the PC, thereby streamlining the hand-held device with essential
functionality and leveraging the PC to extend that functionality. What is the Palm
Operating System? The Palm Operating System (Palm OS) is a hand-held
computer operating system that enables low-cost, low power, small form-factor
devices to integrate seamlessly with Windows or Macintosh personal computers.
With their integrated connectivity, these devices actually extend the usefulness of
the PC. The Palm OS consists of two parts: · Highly efficient operating system
software that runs on a 68000- based hand-held computing devices. · Windows or
Macintosh-based system software that manages synchronization of the hand-held
and the PC.
These interdependent components extend the traditional definition of an operating
system to reflect the integral nature of connectivity in system design. The first
device in the Palm OS product line is Pilot, The Connected Organizer. A closer
look at the Palm OS design goals will clarify what makes it work so well. Design
Goals The Palm OS was designed with the following objectives in mind.
On the hand-held side, it is designed for: · Speed and efficiency: Provide nearly
instantaneous response to user input while running on a Motorola 68000 type
processor, requiring only 32K system memory. · Low-cost and low-power: Provide
months of battery life on 2 AAA batteries, utilizing standard, low-cost memory and
processing components. ·
Small form-factor devices: Facilitate the creation of pocket sized devices with user
interface objects designed specifically for small displays; enable fast efficient data
entry without the use of a keyboard. · Integrated PC connectivity: Use record IDs,
status flags and common data storage to facilitate communication and
synchronization with desktop software. ·
Standard application development: Facilitate application development in C or C++
using Metrowerks compilers and other common development tools. On the PC
side, it is designed for: ·
Efficient synchronization: Synchronize hand-held data with multiple PC data
sources without user intervention.
· Extendability: Enable Independent Software Vendors (ISVs) to develop
“conduits”, links between a wide range of desktop and hand-held applications. ·
Communication independence: Insulate conduit developers from the
communications protocols to facilitate synchronization via a variety of physical
links. · Standard conduit development: Under Windows, conduits are DLLs and are
developed using standard C or visual basic tools.
To understand what makes the Palm OS work so well, a closer look at how it
achieves these design goals is in order, starting with the handheld side of the Palm
OS. Speed and Efficiency The Palm OS memory manager facilitates fast access to
system software, applications, and data, yet requires a minimum of nonvolatile,
dynamic memory.
To enable the creation of devices with a limited amount of dynamic memory, the
Palm OS data manager stores data in a database-like structure rather than a
traditional file system.
Traditional file systems require large amounts of memory because they first read
all or a portion of a file into the memory buffer, then later write the updated
memory buffer back to the disk or storage medium. Because of the latency
involved with reading and writing to disk, data access is generally slower.
For devices that store data in memory, it makes more sense to access and update
data directly in place. The Palm OS uses a database model to store data. It works
with small chunks of data, less than 64K each. The system stores each data record,
such as an address book entry, as a chunk. Chunks can be scattered throughout the
memory space and accessed in place.
This storage method speeds data access by allowing the system to add, delete and
modify records in place. The system groups related records, such as appointments
or address book entries, in databases, which replace the traditional file concept.
For example, the system stores the collection of all address book records in a
database. The Palm OS works like a traditional file system with a fraction of the
overhead. Applications can create, open, delete and close databases as necessary,
just as files on traditional systems are created, opened, deleted and closed. The
Palm OS data manager facilitates fast data access and sorting. Each database may
contain one or more presorted index lists to fast sorting.
For example, the Address book application stores index lists of records by name
and by company. This enables the application to switch data views instantaneously
between the two. In addition to accessing data in place, the Palm OS executes
applications in place out of ROM or RAM (see Figure 2). The efficient program
execution results in instant switching between applications, and eliminates the need
for a wait cursor. T PDA DEVELOPERS 4.2
• March/April 1995 Reprinted from the March/April 1996 issue of PDA
Developers. ©1996-1997 by Creative Digital Publishing Inc. All rights reserved.
Low-Power Usage The Palm OS minimizes power consumption with efficient
power management.
It supports three modes of operation: sleep mode, idle mode, and running mode.
When there is no user activity for a number of minutes, or when the user hits the
off key, the device enters sleep mode. In sleep mode, the device appears turned off:
the display is blank, the digitizer is inactive, the main clock is stopped, and the
processor is not powered.
To awaken from sleep mode, the device must receive an interrupt signal from a
hardware button. When the device is on but has no user input to process, it enters
idle mode. In idle mode, the main clock is running, the device appears to be on,
and the processor clock is running but the processor is halted. In sleep or idle
mode, when the system detects user input, it enters running mode. In running
mode, the processor executes instructions.
The device stays in running mode only as long as it takes to process the user input,
then returns to idle mode. Support for Small Form-Factor Devices The Palm OS is
designed specifically for small form-factor devices. In addition its feature set is
targeted to small devices to eliminate unnecessary system overhead. To facilitate
data entry for small form-factor devices, the Palm OS provides optional support for
Graffiti power writing technology.
On other platforms, Graffiti is added to the operating system, requiring a Graffiti
window to float on the screen for text input, thereby obscuring the screen. The
Palm OS devices can integrate and support data entry through a dedicated Graffiti
writing area.
This integration enables Graffiti to work more efficiently, and maximizes screen
usage for the application. With Graffiti it is possible to limit the size of the writing
area to less than one square inch, thereby enabling the creation of small devices.
Because Graffiti recognizes each stroke as you write it, it is actually possible to
enter strokes right on top of each other. When the user enters the stroke for a letter,
the character appears, thereby readying the writing area for the next stroke.
The Palm OS supports user-interface elements designed specifically for small-
screen devices. These elements enable developers to create robust applications on
screens with a minimum of 160 x 160 available pixels. Integrated PC Connectivity
The Palm OS data manager provides built-in functionality to facilitate efficient
synchronization with the desktop.
Each database on the hand-held has a header that contains an attribute flag to
indicate that at least one record in the database has changed since the last
synchronization. In the event that no records RAM ROM OS Libraries Apps 32K
Sys Data Apps Memory Module Serial Port Motorola "Dragonball"
Microprocessor (68000-based) Figure 2 have changed, the synchronization process
can bypass the unchanged database entirely.
Other systems must use a less-reliable date and time stamp on files to determine
their status. Most systems require that the entire file on the hand-held device be
sent across the serial line and synchronized whenever a single record has changed.
In the Palm OS database, each individual record header contains a status attribute
that indicates whether the record is old, new, modified, deleted or archived.
This header information reduces the amount of data transmitted across the serial
line during a synchronization because usually only new or modified records must
be sent. In addition to the status attribute, each record has a unique record ID that
matches records stored on the PC with records stored on the hand-held.
In other systems, establishing a match between two records is more time
consuming and less reliable because they must match key fields to determine that
two records are alike. This requires that more data be processed simply to
determine a match.
The Palm OS also has built-in archiving. There are two methods for removing a
record on the hand-held: the user either deletes or archives it. When the user
deletes a record, the deleted record’s status flag is set to “delete” and the record
data is removed.
The system frees the data chunk from memory, but retains the record ID and marks
it with a delete flag so that the PC knows to delete the same record during
synchronization. For archived records, the system sets the status flag “archive.”
During synchronization, the system copies archive records into an archive file on
the PC then removes the archived records from both the active PC file and hand-
held device. Standard Development Environment In order to speed application
development, the developer creates Palm OS applications using standard
development tools on a Macintosh computer.
The development environment uses Apple’s Macintosh Programmers Workshop
(MPW) and Metrowerks’ CodeWarrior compiler. The developer writes the
applications using the C language, although assembly language and C++ are also
available.
The developer debugs applications on the Macintosh using the source level
debugger provided with CodeWarrior. The Palm OS includes libraries that
reproduce the functionality of the Palm OS system software under the Macintosh
environment.
In order to test applications on the Macintosh, the developer simply links the
application code with Palm OS “simulator” libraries to generate a Macintosh
executable. This executable runs from within the Macintosh based “simulator” that
displays a window on the screen representing the hand-held's’s display area.
The application displays in this window as if it were running on the actual device.
In order to build resources, the Palm OS development environment includes a
resource compiler that runs as an MPW tool. The developer creates a text file
description of the resource which converts into a resource file to import into the
emulation environment along with the application code. To create applications that
run on a Palm OS device, the developer links the application with the actual Palm
OS libraries to create a device executable.
The Palm OS also enables applications to override the functions of the standard
hardware buttons. For example, an application can re-map the function of the
memo pad button to run a personal finance application instead. This facilitates the
creation of customized devices, with personality-specific functionality.
Device applications can reside and be executed from the device’s ROM or RAM. A
launcher application running on the device scans for all available applications in
ROM and RAM and displays an icon by which the user can launch the application.
The user installs new applications distributed on diskette into the device by
synchronizing.
Now let’s examine the PC side of the Palm OS. Efficient Synchronization A
synchronization manager application runs in the background on the Windows or
Macintosh PC to enable one-button synchronization, or “HotSync,” between the
hand-held and the PC. This application monitors the serial port of the PC for a
wake-up packet from the hand-held PDA DEVELOPERS 4.2

March/April 1995 Reprinted from the March/April 1996 issue of PDA


Developers. ©1996-1997 by Creative Digital Publishing Inc. All rights reserved.
device to begin synchronization. Once it receives a wake-up packet, it runs in turn
each conduit installed in the system, systematically synchronizing each hand-held
database with the associated database on the PC (see Figure 3).
Conduits need not, however, create a mirror-image of data on the PC and hand-
held. For example, an install conduit can be used to install applications from the
PC to the hand-held.
A finance conduit might upload new transaction data from the hand-held's’s check
register and, after they are integrated into the PC finance database, download a new
balance Each conduit uses the synchronization manager API to make calls during
the synchronization process to do whatever is required during synchronization.
This can include opening databases on the hand-held, retrieving and writing
records, closing databases, and so on.
Extendability The Palm OS enables synchronization between a wide range of
desktop and hand-held applications in a single step. Other systems require
developers to create their own connectivity solution. As a result, end users must
use multiple connectivity solutions for the various applications on their hand-held
devices.
In order to add a type of synchronization to the HotSync process, a developer
simply creates a conduit, a PC-based application that manages data exchange
between a database on the hand-held and a file on the PC. Conduits can perform a
vast range of functions. One conduit might install applications from a diskette on
the PC to the RAM on the handheld device.
Another conduit might synchronize the Address Book database on the hand-held
with a file on the PC so that they are mirrorimages of each other. To add a conduit,
the developer registers it with the synchronization manager. The synchronization
manager runs all registered conduits in sequence to synchronize the data on the two
devices during HotSync.
Conduits can synchronize any PC application’s data with any of the databases
residing on the hand-held. For example, the address book conduit retrieves all new,
modified, deleted and archived records from the hand-held's’s address book. It then
updates the PC’s address book with the new records and any modified records that
have not changed on the PC.
It then synchronizes any records changed on both the handheld and the PC and
deletes or archives any records deleted or archived on the hand-held. Next, it
updates the hand-held with the set of records changed during the process. Finally, it
readies both devices for the next synchronization by clearing the status flags for
each database and record on both sides.
Communication Independence Although other hand-held operating systems
facilitate some level of connectivity with the PC, the burden of integrating
communications is frequently the job of the developer.
Palm OS conduits are communication independent. The conduit developer need
not worry about low-level communications protocols. The synchronization
manager manages communications and runs transparently across a variety of
communication media, whether a wired serial connection, or a wired or wireless
modem. Therefore the conduit developer need only interface to the synchronization
manager to access whatever communication media are supported by the device.
Handheld Desktop B C Sync Manager Private Public Conduit B Conduit A A
Conduit C A B C Comm.
Layer API Figure 3 Standard Conduit Development To facilitate easy development,
conduits are developed using standard Windows or Macintosh development tools,
depending on the target platform. Under Windows, developers create conduits
using Visual C++ and Microsoft’s MFC. Under Macintosh, the developer creates
conduits using Apple MPW.
Implications for the Future The connectivity focus of the Palm OS facilitates more
targeted devices that can harness the power of the PC to extend functionality. For
example, smart phones can download address book information entered using the
full-sized PC keyboard, rather than forcing users to program phone numbers with
the limited phone keypad.
The operating system extends the functionality of the PC by providing a means to
link to and carry desktop data. It also extends the power of the hand-held device by
leveraging the functionality of the PC applications to perform more powerful
functions.
Palm OS conduits will be developed for a wide range of desktop applications,
including group scheduling, e-mail, personal finance and database. As the Palm OS
becomes more widely accepted, a new breed of devices will emerge. It will serve
as the foundation for a wide range of increasingly smaller devices, including smart
phones and graphical pagers. The Palm OS expands the opportunity for hand-held
computing and extends the usefulness of the desktop computer.
It will also enable network devices that can connect to the Internet for information
access. ✔ PDA DEVELOPERS 4.2
• March/April 1995 Reprinted from the March/April 1996 issue of PDA
Developers. ©1996-1997 by Creative Digital Publishing Inc. All rights reserved.
Palm OS Software Development Kit Developers create Palm OS applications using
standard development tools on a Macintosh computer.

The development environment uses Apple’s Macintosh Programmers Workshop


(MPW) and Metrowerks’ CodeWarrior. The developer writes the applications using
the C language, although assembly language and C++ are also available, then
debugs the application on the Macintosh using the source level debugger provided
with CodeWarrior.
Applications are tested on the Macintosh using the Pilot Simulator, a Macintosh
application that simulates the functionality of a Pilot Organizer. Device
applications can reside and be executed from the device’s ROM or RAM. The
launcher application running on the device scans for all available applications in
ROM and RAM and displays an icon by which the user can launch the application.
New applications are distributed on diskette and loaded onto the devices by
synchronizing the device with the PC. The Palm OS SDK will be available in
April, 1996. It consists of the following:
• System software libraries and headers: Code libraries and associated header files
for all the Palm OS system software.
• System resources: ResEdit template files, fonts and bitmaps
. • Pilot Simulator: A Macintosh application that “hosts” a Palm OS application for
execution on a Macintosh to simulate a Pilot device. The simulator also provides
test and debug capabilities.
• Debug and console application: A Macintosh-based debugger for debugging
remote applications on the Pilot device.
• Documentation: Printed and HTML-based on-line documentation, including a
tutorial and style guidelines (available on the Palm Web Site:
• MPW and Code Warrior extensions: Scripts and utilities that aid in the
development process.
• Install Conduit: A conduit that installs applications from the Macintosh to the
RAM of the Pilot device during a synchronization
. • Other Utilities: Project files, application shell code and makefiles.
• Sample Code: Well-documented source code to illustrate how to develop an
application. Referenced in the Tutorial. Palm Conduit Software Development Kit
To facilitate easy development, conduits are developed using standard Windows or
Macintosh development tools, depending on the target platform. Under Windows,
developers create conduits using Visual C++ and Microsoft’s MFC. Under
Macintosh, the developer creates conduits using Macintosh’s MPW. The Palm
Conduit SDK will be available in April, 1996. It consists of the following:
• Libraries: Libraries that provide API calls to exchange data between the PC and
the handheld device via the Synchronization Manager, an application that runs in
the background on a Windows or Macintosh PC.
• Documentation: Printed and HTML-based on-line documentation (available on
the Palm Web Site
• C and C++ Header Files: Header files with definitions of structures and
prototypes of functions
. • Sample Code: Well-documented sample conduits, referenced in the
documentation, makefile templates and a basic conduit template.
• Install Utilities: Programs to set up the Conduit SDK onto a host computer, and a
utility to register new conduits with the Synchronization.

Technology overview:
Overview

Operating Systems that have low speed processors, less memory requirements and
are ideal to be used in mobile devices and personal digital assistants (PDAs) are
called Handheld operating systems. Such systems need fewer resources. These
systems are also intended to work with different types of hardware. They are also
known as Mobile operating systems.

Handheld devices are generally small in size that perfectly fits in the palm. These
devices can be carried easily in pocket. These systems use Bluetooth, e-mail, Wi-
Fi, GPS mobile navigation, video camera, music player, web browsing, and other
wireless technologies. The most basic handheld devices are designed for personal
information management (PIM) applications, allowing users to keep calendars,
task lists and addresses handy.

Handheld devices liberate a large amount of heat generated by CPU. To deal with
this, companies are designing smaller CPU with lower power requirements and
lower heat generation. Many handheld devices use flash memory cards for their
internal memory as large hard drives could not fit into handheld devices. There are
three different connectivity options for handheld systems: first, synchronizing with
a desktop or portable computer, second, connecting to a local area network (LAN),
and third, connecting directly to the Internet.
Learn more about types of operating system here.
Types of Handheld System

The handheld system comes under a variety of sizes and shapes for different kinds
of use. Handheld devices are generally categorized in two ways

Appearance/form factor

There are two divisions in physical appearance of handheld devices: tablet and
clamshell designs. Tablets are small and have integral keyboards. Clamshell
devices are miniature versions of keyboards and screens. Other form factors
include different input mechanisms, handwriting recognition, processors, memory,
wireless connectivity, wireless connectivity, battery types, displays, and cameras.
Operating system and functionality

Handheld operating system performs operations similar to that of the OSs of large
desktops and their portable counterparts. The two most widely used OSs for
handheld systems are Microsoft’s Windows Mobile suite and Palm OS.

Advantages and Disadvantages

Advantages of Handheld operating systems

• They are small and lightweight and easily portable.


• They take seconds to boot up.
• They have very long battery life.
• They are significantly lower in cost as compared to desktops or portables.

Disadvantages of Handheld operating systems

• Small screen-size limits usability.


• Prospective of expansion and upgrade is limited.
• They have low-speed processors and less memory.
• Interoperability and connectivity are limited at present.

Android Architecture of 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 by the Open
Handset Alliance, led by Google, and other companies.

Android offers a unified approach to application development for mobile devices


which means developers need only develop for Android, and their applications
should be able to run on different devices powered by Android.

The first beta version of the Android Software Development Kit (SDK) was
released by Google in 2007 where as 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.

The source code for Android is available under free and open source software
licenses.

Google publishes most of the code under the Apache License version 2.0 and the
rest, Linux kernel changes, under the GNU General Public License version 2.

Why Android ?
Features of Android

Android is a powerful operating system competing with Apple 4GS and supports
great features. Few of them are listed below −

Sr.No. Feature & Description

Beautiful UI
1
Android OS basic screen provides a beautiful and intuitive user interface.

Connectivity
2 GSM/EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth, Wi-Fi, LTE, NFC and
WiMAX.

Storage
3
SQLite, a lightweight relational database, is used for data storage purposes.

Media support
4 H.263, H.264, MPEG-4 SP, AMR, AMR-WB, AAC, HE-AAC, AAC 5.1, MP3,
MIDI, Ogg Vorbis, WAV, JPEG, PNG, GIF, and BMP.
Messaging
5
SMS and MMS
Web browser
6 Based on the open-source WebKit layout engine, coupled with Chrome's V8
JavaScript engine supporting HTML5 and CSS3.
Multi-touch
7 Android has native support for multi-touch which was initially made available in
handsets such as the HTC Hero.

Multi-tasking
8 User can jump from one task to another and same time various application can
run simultaneously.
Resizable widgets
9 Widgets are resizable, so users can expand them to show more content or shrink
them to save space.
Multi-Language
10
Supports single direction and bi-directional text.

GCM
Google Cloud Messaging (GCM) is a service that lets developers send short
11
message data to their users on Android devices, without needing a proprietary
sync solution.
Wi-Fi Direct
12 A technology that lets apps discover and pair directly, over a high-bandwidth
peer-to-peer connection.

Android Beam
13 A popular NFC-based technology that lets users instantly share, just by touching
two NFC-enabled phones together.

Android Applications

Android applications are usually developed in the Java language using the Android
Software Development Kit.
Once developed, Android applications can be packaged easily and sold out either
through a store such as Google Play, SlideME, Opera Mobile
Store, Mobango, F-droid and the Amazon Appstore.

Android powers hundreds of millions of mobile devices in more than 190 countries
around the world. It's the largest installed base of any mobile platform and growing
fast. Every day more than 1 million new Android devices are activated worldwide.

This tutorial has been written with an aim to teach you how to develop and
package Android application. We will start from environment setup for Android
application programming and then drill down to look into various aspects of
Android applications.

Categories of Android applications

There are many android applications in the market. The top categories are −

History of Android

The code names of android ranges from A to N currently, such as Aestro, Blender,
Cupcake, Donut, Eclair, Froyo, Gingerbread, Honeycomb, Ice Cream Sandwitch,
Jelly Bean, KitKat, Lollipop and Marshmallow. Let's understand the android
history in a sequence.
What is API level?

API Level is an integer value that uniquely identifies the framework API revision
offered by a version of the Android platform.
API
Platform Version VERSION_CODE
Level
Android 6.0 23 MARSHMALLOW
Android 5.1 22 LOLLIPOP_MR1

Android 5.0 21 LOLLIPOP

KitKat for
Android 4.4W 20 KITKAT_WATCH
Wearables Only

Android 4.4 19 KITKAT

Android 4.3 18 JELLY_BEAN_MR2


Android 4.2, 4.2.2 17 JELLY_BEAN_MR1

Android 4.1, 4.1.1 16 JELLY_BEAN


Android 4.0.3,
15 ICE_CREAM_SANDWICH_MR1
4.0.4
Android 4.0,
14 ICE_CREAM_SANDWICH
4.0.1, 4.0.2

Android 3.2 13 HONEYCOMB_MR2


Android 3.1.x 12 HONEYCOMB_MR1

Android 3.0.x 11 HONEYCOMB

Android 2.3.4
10 GINGERBREAD_MR1
Android 2.3.3

Android 2.3.2
Android 2.3.1 9 GINGERBREAD
Android 2.3
Android 2.2.x 8 FROYO

Android 2.1.x 7 ECLAIR_MR1

Android 2.0.1 6 ECLAIR_0_1


Android 2.0 5 ECLAIR
Android 1.6 4 DONUT

Android 1.5 3 CUPCAKE

Android 1.1 2 BASE_1_1


Android 1.0 1 BASE
Architecture of Android

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

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.

You might also like