my blog
Tuesday, 1 July 2014
Monday, 30 June 2014
Android Architecture
The main components of the
Android architecture:
A.
Applications
B. Application
Framework
C. Libraries
D. Runtime
Android
E. Kernel –
Linux
The following diagram shows
the major components of the Android operating system.
Android
architecture
A. Applications:
An
Android app lives in what’s called an APK, with a
particular internal file layout that allows it to be run in place, without
unpacking. The Android
Manifest is the interface between an app and the Android system
These
are applications written in Java. Some of basic applications include a
calendar, email client, SMS program, maps, making phone calls, accessing the
Web browser, accessing your contacts list and others. If you are an average
user, this is the layer you will us most, rest all layers are used by Google
programmers, developers and hardware manufacturers.
`
Developers
have full access to the same framework APIs used by the core applications. The
application architecture is designed to simplify the reuse of components; any
application can publish its capabilities and any other application may then
make use of those capabilities (subject to security constraints enforced by the
framework). This same mechanism allows components to be replaced by the user.
Underlying all
applications is a set of services and systems, including:
1.
rich and extensible set of Views that can be used to
build an application, including lists, grids, text boxes, buttons, and even an
embeddable web browser
2.
Content Providers that enable
applications to access data from other applications (such as Contacts), or to
share their own data
3.
Resource Manager, providing access
to non-code resources such as localized strings, graphics, and layout files
4.
Notification Manager that
enables all applications to display custom alerts in the status bar
5.
Activity Manager that manages
the lifecycle of applications and provides a common navigation backstack.
C. Libraries:
Android includes a set of C/C++
libraries used by various components of the Android system. These capabilities
are exposed to developers through the Android application framework. Some of
the core libraries are listed below:
·
System C library -
a BSD-derived implementation of the standard C system library (libc), tuned for
embedded Linux-based devices
·
Media Libraries - based on
PacketVideo's OpenCORE; the libraries support playback and recording of many
popular audio and video formats, as well as static image files, including
MPEG4, H.264, MP3, AAC, AMR, JPG, and PNG
·
Surface Manager - manages
access to the display subsystem and seamlessly composites 2D and 3D graphic
layers from multiple applications
·
LibWebCore - a
modern web browser engine which powers both the Android browser and an
embeddable web view
·
SGL - the underlying 2D
graphics engine
·
3D libraries - an
implementation based on OpenGL ES 1.0 APIs; the libraries use either hardware
3D acceleration (where available) or the included, highly optimized 3D software
rasterizer
·
FreeType - bitmap and
vector font rendering
·
SQLite - a powerful and
lightweight relational database engine available to all applications
D. Runtime
Android:
Android includes a set of
core libraries that provides most of the functionality available in the core
libraries of the Java programming language.
Every
Android application runs in its own process, with its own instance of the
Dalvik virtual machine. Dalvik has been written so that a device can run
multiple VMs efficiently. The Dalvik VM executes files in the Dalvik Executable
(.dex) format which is optimized for minimal memory footprint. The VM is
register-based, and runs classes compiled by a Java language compiler that have
been transformed into the .dex format by the included "dx" tool.
The
Dalvik VM relies on the Linux kernel for underlying functionality such as
threading and low-level memory management.
It’s possible,
and common practice, to call back and forth between Dalvik and native code
using the JNI
protocol, which is a neat trick since what’s running on Dalvik isn’t anything
like Java bytecodes on a Java VM.
The JNI protocol (Java
Native Interface) A programming interface (API) in Sun's Java
Virtual Machine used for calling native platform elements such as GUI routines.
RNI (Raw Native Interface) is the JNI counterpart in Microsoft's Java Virtual
Machine.
E. Kernel – Linux:
This layer includes Android’s memory management programs,
security settings, power management software and several drivers for hardware,
file system access, networking and inter-process-communication. The kernel also
acts as an abstraction layer between hardware and the rest of the software
stack. Android relies on Linux version 2.6 for core system services such
as security, memory management, process management, network stack, and driver
model.
The Linux kernel is an operating system kernel used by the Linux family of Unix-like operating
systems. It is one of the most prominent examples of free and open
source software.
The Linux kernel is released under the GNU General
Public License version 2 (GPLv2), (plus some firmware images
with various licenses), and is developed by contributors worldwide. Day-to-day
development takes place on the Linux kernel
mailing list.
The Linux kernel was initially conceived and
created by Finnish
computer science
student Linus Torvalds in 1991.
Linux rapidly accumulated developers and users who adopted code from other free software projects
for use with the new operating system. The Linux kernel has received
contributions from thousands of programmers. Many Linux distributions have been released based
upon the Linux kernel.
This layer includes Android’s
memory management programs, security settings, power management software and
several drivers for hardware, file system access, networking and
inter-process-communication. The kernel also acts as an abstraction layer
between hardware and the rest of the software stack. Android relies on
Linux version 2.6 for core system services such as security, memory management,
process management, network stack, and driver model.
Android GUI Architecture
Android GUI is
single-threaded, event-driven and built on a library of nestable components.
The Android UI framework is organized around the common Model-View-Controller
pattern.
The Model : The model represents data or
data container. You can see it as a database of pictures on your device. Say,
any user wants to hear an audio file, he clicks play button and it triggers an
event in your app, now the app will get data from data store or database
and as per input and creates data to be sent back to the user. You can refer
this data as Model.
The
View: The
View is the portion of the application responsible for rendering the display,
sending audio to speakers, generating tactile feedback, and so on.
Now as per above example, the view
in a hypothetical audio player might contain a component that shows the album
cover for the currently playing tune. User will always interact with this
layer. User action’s on this layer will trigger events that will go to the
application functions.
The Controller: The Controller is the
portion of an application that responds to external actions: a keystroke, a
screen tap, an incoming call, etc. It is implemented as an event queue. On
User’s action, the control is passed over to.
Friday, 27 June 2014
Why you Choose Android Platform?
Google’s Android mobile
phone software platform may be the next big opportunity for application
software developers. Google announced the Open Handset Alliance and the Android
platform in November of 2007, releasing the first beta version of the Android Software
Development Kit (SDK) at the same time. Within a matter of a few months, over 1
million people had downloaded versions of the SDK from Google’s website. In the
United States, T-Mobile announced the G1 Android mobile phone in October of
2008, and estimates are that several hundred thousand G1s were sold before the
end of that year. There are already several competing mobile phone software
stacks in the market, so why is there such interest in Android?
Android has the potential for removing the barriers
to success in the development and sale of a new generation of mobile phone
application software. Just as the the standardized PC and Macintosh platforms
created markets for desktop and server software, Android, by providing a
standard mobile phone application environment, will create a market for mobile
applications—and the opportunity for applications developers to profit from
those applications.
Android platform
advantages
The
Android platform has already won the game. Here are the 5 Android platform
winning advantages:
a.
Android Dominate the Mobile Market
The
CEO of Google Eric Schmidt used to say that they can sell 200 thousands Android
mobile phone. The investigation from the third party also shows that Android
flat keeps a stable increase on sales. Depends on the data from market
analyzing organization NPD, from April to June, Android mobile possess 33% in
the market, RIM takes 28% and iPhone takes 22%. It's means that American
customers changed their favors to Android mobile.
b.
More Type and Stronger
Sales
NPD
points out that Motorola
Droid, HTC
Droid Incredible, HTC
EVO 4G, HTC Hero, HTC
Droid Eris, all these five top smartphones holds numerous operators,
includes Verizon Wireless, AT&T, Sprint and T-Mobile. Because the excited
competition between the operators,many sales promotions helps Version to keeps
its important role in Android market. To the companies which purchase over 12
Smartphone, the preferential price will save great amount funds.
c.
Larger Space for Different Kinds and
Ideas
Even the iPhone application gets
pursues from customers, the Android applications based on Google's genius
engineer teams, for example, the Google goggles in the image recognition
software can retrieve hiking or menu. Moreover, the Android application doesn't
limited in engineers. Google also develop the open App Inventor that everyone
can develop the Android applications, and offers a platform for new ideas.
d. Android Possess
Innovative
After Google develop the
Android, many people consider that its technical credibility beyond other
operation systems, but that isn't the only reason for people buy it. Compare
with other platforms, customers believes that Android is a new and mature
technique; it has very broad development of space before it gets the peek.
Android doesn't like iPhone's closed system; the functions of Android will
become richer and more friendly.
e. Android 2.2 Is the Best IT Gift For Customers
Android 2.2 has solved the
Synchronous question with Microsoft Exchange. This system allows the remotely
delete by administrators, adds the screensavers supermarket and other limit
security functions. Android platform will be the leader of American operation
system in the future.
Android Overview
What is Android?
Android
is an open-source software
stack for mobile devices that includes an operating system, middleware and key applications. Google Inc.
purchased the initial developer of the software, Android Inc (incorporated legally
established as a corporation), in 2005. Android's mobile operating
system is based upon a modified version of the Linux kernel. Google and
other members of the Open Handset Alliance
collaborated on Android's development and release.
The Android Open Source Project
(AOSP) is tasked with the maintenance and further development of Android. The Android SDK provides
the tools and APIs necessary to begin developing applications on the Android
platform using the Java programming language.
History
Android Inc.
founded in 2003
Android, Inc. was founded in Palo
Alto, California,
United States in October, 2003 by Andy Rubin, Rich Miner,
etal. to develop, in Rubin's words "...smarter mobile devices that are
more aware of its owner's location and preferences." Other early key
employees include Andy McFadden, who worked with Rubin at WebTV, and Chris
White, who led the design and interface of WebTV, before helping to found
Android.
Rubin, a co-founder of Danger Inc., Miner, a co-founder of Wildfire
Communications, Inc. and former vice-president of Technology and innovation at Orange, and the other early employees
brought considerable wireless industry experience to the company. Despite the
obvious past accomplishments of the founders and early employees, Android Inc.
operated secretively, admitting only that it was working on software for mobile
phones.
Android
Inc. acquired by Google
Google acquired Android Inc. in August, 2005, making Android Inc. a
wholly-owned subsidiary of Google Inc. Key employees of Android Inc., including
Andy Rubin, Rich Miner and Chris White, stayed at the company after the
acquisition.
At the time of the acquisition,
because little was known about the work of Android Inc., some guessed that
Google was planning to enter the mobile phone market.
Development
accelerates
At Google, the team led by Rubin
developed a mobile device platform powered by the Linux kernel. Google
marketed the platform to handset makers and carriers on the premise of providing a
flexible, upgradable system. Google had lined up a series of hardware component
and software partners and signaled to carriers that it was open to various
degrees of cooperation on their part.
Speculation about Google's intention
to enter the mobile communications market continued to build through December 2006. Reports from the BBC and The Wall Street
Journal noted that Google wanted its search and applications on mobile
phones and it was working hard to deliver that. Print and online media outlets
soon reported rumors that Google was developing a Google-branded handset. Some
speculated that as Google was defining technical specifications, it was showing
prototypes to cell phone manufacturers and network operators.
In September 2007, InformationWeek covered
an Evalueserve study
reporting that Google had filed several patent applications in the area
of mobile telephony.
Open
Handset Alliance
"Today's
announcement is more ambitious than any single 'Google Phone' that the press
has been speculating about over the past few weeks. Our vision is that the
powerful platform we're unveiling will power thousands of different phone
models."
On the November 5, 2007 the Open Handset Alliance, a consortium of several
companies which include Texas
Instruments, Broadcom Corporation, Google, HTC, Intel,
LG, Marvell Technology
Group, Motorola, Nvidia, Qualcomm, Samsung Electronics,
Sprint Nextel and T-Mobile unveiled itself. The
goal of the Open Handset Alliance is to develop open
standards for mobile devices. On the same day, the Open Handset Alliance
also unveiled their first product, Android, a mobile device platform built on the Linux kernel version 2.6.
On
December 9, 2008, 14 new members joined, including PacketVideo, ARM Holdings, Atheros Communications, Asustek Computer Inc,
Garmin Ltd, Softbank, Sony Ericsson, Toshiba Corp, and
Vodafone Group
Plc.
Licensing
With the exception of brief update
periods, Android has been available under a free software / open
source license since 21 October 2008.
Google published the entire source
code (including network and telephony stacks) under an Apache License. Google
also keeps the reviewed issues list publicly open for anyone to see and
comment.
Features of Android
- Application framework enabling reuse and replacement of components
- Dalvik virtual machine optimized for mobile devices
- Integrated browser based on the open source WebKit engine
- Optimized graphics powered by a custom 2D graphics library; 3D graphics based on the OpenGL ES 1.0 specification (hardware acceleration optional)
- SQLite for structured data storage
- Media support for common audio, video, and still image formats (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
- GSM Telephony (hardware dependent)
- Bluetooth, EDGE, 3G, and WiFi (hardware dependent)
- Camera, GPS, compass, and accelerometer (hardware dependent)
- Rich development environment including a device emulator, tools for debugging, memory and performance profiling, and a plugin for the Eclipse IDE
Subscribe to:
Posts (Atom)

