With Android's breadth of capabilities, it would be easy
to confuse it with a desktop operating system. Android is a layered environment
built upon a foundation of the Linux kernel, and it includes rich functions.
The UI subsystem includes:
- Windows
- Views
- Widgets
for displaying common elements such as edit boxes, lists, and drop-down
lists
Android includes an embeddable browser built upon WebKit,
the same open source browser engine powering the iPhone's Mobile Safari
browser.
Android boasts a healthy array of connectivity options,
including WiFi, Bluetooth, and wireless data over a cellular connection (for
example, GPRS, EDGE, and 3G). A popular technique in Android applications is to
link to Google Maps to display an address directly within an application.
Support for location-based services (such as GPS) and accelerometers is also
available in the Android software stack, though not all Android devices are
equipped with the required hardware. There is also camera support.
Historically, two areas where mobile applications have
struggled to keep pace with their desktop counterparts are graphics/media, and
data storage methods. Android addresses the graphics challenge with built-in
support for 2-D and 3-D graphics, including the OpenGL library. The
data-storage burden is eased because the Android platform includes the popular
open source SQLite database. Figure 1 shows a simplified view of the Android
software layers.
As mentioned, Android runs atop a Linux kernel. Android
applications are written in the Java programming language, and they run within
a virtual machine (VM). It's important to note that the VM is not a JVM as you
might expect, but is the Dalvik Virtual Machine, an open source technology.
Each Android application runs within an instance of the Dalvik VM, which in
turn resides within a Linux-kernel managed process, as shown below.
LOGO:
An Android application consists of one or more of the
following classifications:
Activities
An application
that has a visible UI is implemented with an activity. When a user selects an
application from the home screen or application launcher, an activity is
started.
Services
A service
should be used for any application that needs to persist for a long time, such
as a network monitor or update-checking application.
Content providers
You can think
of content providers as a database server. A content provider's job is to
manage access to persisted data, such as a SQLite database. If your application
is very simple, you might not necessarily create a content provider. If you're
building a larger application, or one that makes data available to multiple
activities or applications, a content provider is the means of accessing your
data.
Broadcast receivers
An Android
application may be launched to process a element of data or respond to an
event, such as the receipt of a text message.
An Android application, along with a file called
AndroidManifest.xml, is deployed to a device. AndroidManifest.xml contains the
necessary configuration information to properly install it to the device. It
includes the required class names and types of events the application is able
to process, and the required permissions the application needs to run. For
example, if an application requires access to the network — to download a file,
for example — this permission must be explicitly stated in the manifest file.
Many applications may have this specific permission enabled. Such declarative
security helps reduce the likelihood that a rogue application can cause damage
on your device.
No comments:
Post a Comment