Tuesday, February 12, 2013

Android A New and Growing Platform

What’s New in Android 1.5
The much-anticipated Android 1.5 SDK, released in late April 2009, provided a number of
substantial improvements to both the underlying software libraries and the Android development
tools and build environment. Also, the Android system received some much-needed
UI “polish,” both in terms of visual appeal and performance.
Although most of these upgrades and improvements were welcome and necessary, the new
SDK version did cause some upheaval within the Android developer community. A number
of published applications required retesting and resubmission to the Android Marketplace
to conform to the new SDK requirements, which were quickly rolled out to all Android
phones in the field as a firmware upgra
The Android Platform
Android is an operating system and a software platform upon which applications are
developed. A core set of applications for everyday tasks, such as Web browsing and email,
are included on Android handsets.
As a product of the Open Handset Alliance’s vision for a robust and open source
development environment for wireless,Android is an emerging mobile development
platform.The platform was designed for the sole purpose of encouraging a free and
open market that all mobile applications phone users might want to have and software
developers might want to develop.
de, rendering older applications obsolete.
Android’s Underlying Architecture
The Android platform is designed to be more fault-tolerant than many of its predecessors.
The handset runs a Linux operating system, upon which Android applications are
executed in a secure fashion. Each Android application runs in its own virtual machine
(Figure 1.8).Android applications are managed code; therefore, they are much less likely
to cause the phone to crash, leading to fewer instances of device corruption (also called
“bricking” the phone, or rendering it useless).
Some of the core functions the kernel handles include
n
Enforcement of application permissions and security
n
Low-level memory management
n
Process management and threading
n
The network stack
n
Display, keypad input, camera,WiFi, Flash memory, audio, and binder (IPC) driver
access
Android Application Runtime Environment
Each Android application runs in a separate process, with its own instance of the Dalvik
virtual machine (VM). Based on the Java VM, the Dalvik design has been optimized for
mobile devices.The Dalvik VM has a small memory footprint and multiple instances of
the Dalvik VM can run concurrently on the handset.
Security and Permissions
The integrity of the Android platform is maintained through a variety of security measures.
Applications as Operating System Users
When an application is installed, the operating system creates a new user profile associated
with the application. Each application runs as a different user, with its own private
files on the file system, a user ID, and a secure operating environment.
The application executes in its own process with its own instance of the Dalvik VM
and under its own user ID on the operating system.
Explicitly Defined Application Permissions
To access shared resources on the system,Android applications register for the specific
privileges they require. Some of these privileges enable the application to use phone
functionality to make calls, access the network, and control the camera and other
hardware sensors. Applications also require permission to access shared data containing
private and personal information such as user preferences, user’s location, and contact
information.
Applications might also enforce their own permissions by declaring them for other
applications to use.The application can declare any number of different permission types,
such as read-only or read-write permissions, for finer control over the application.
Limited Ad-Hoc Permissions
Applications that act as content providers might want to provide some on-the-fly
permissions to other applications for specific information they want to share openly.This
is done using ad-hoc granting and revoking of access to specific resources using Uniform
Resource Identifiers (URIs).
URIs index specific data assets on the system, such as images and text. Here is an
example of a URI that provides the phone numbers of all contacts:
content://contacts/phones
To understand how this permission process works, let’s look at an example.
Let’s say we’ve got an application that keeps track of the user’s public and private
birthday wish lists. If this application wanted to share its data with other applications, it
could grant URI permissions for the public wish list, allowing another application permission
to access this list without explicitly having to ask for it.

No comments:

Post a Comment