page.title=What is Android?
@jd:body

<p>Android is a software stack for mobile devices that includes an operating
system, middleware and key applications. The <a
href="http://developer.android.com/sdk/index.html">Android SDK</a>
provides the tools and APIs necessary to begin developing applications on the
Android platform using the Java programming language.</p>

<h2>Features</h2>

<ul>
    <li><strong>Application framework</strong> enabling reuse and replacement
    of components</li>
    <li><strong>Dalvik virtual machine</strong> optimized for mobile
        devices</li>
    <li><strong>Integrated browser</strong> based on the open source <a
    href="http://webkit.org/">WebKit</a> engine </li>
    <li><strong>Optimized graphics</strong> powered by a custom 2D graphics library; 3D
    graphics based on the OpenGL ES 1.0 specification (hardware acceleration
    optional)</li>
    <li><strong>SQLite</strong> for structured data storage</li>
    <li><strong>Media support</strong> for common audio, video, and still
    image formats (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG,
    GIF)</li>
    <li><strong>GSM Telephony</strong> (hardware dependent)</li>
    <li><strong>Bluetooth, EDGE, 3G, and WiFi</strong> (hardware dependent)</li>
    <li><strong>Camera, GPS, compass, and accelerometer</strong> (hardware dependent)</li>
    <li><strong>Rich development environment</strong> including a device
    emulator, tools for debugging, memory and performance profiling, and a plugin for the Eclipse IDE</li>
</ul>

<a name="os_architecture" id="os_architecture"></a>
<h2>Android Architecture</h2> 

<p>The following diagram shows the major components of the Android operating
system. Each section is described in more detail below.</p>

<p><img src="{@docRoot}images/system-architecture.jpg" alt="Android System Architecture" width="713" height="512"></p>

<a name="applications" id="applications"></a>
<h2>Applications</h2>

<p>Android will ship with a set of core applications including an email
client, SMS program, calendar, maps, browser, contacts, and
others. All applications are written using the Java programming language.</p>

<a name="application_framework" id="application_framework"></a>
<h2>Application Framework</h2>

<p>By providing an open development platform, Android
offers developers the ability to build extremely rich and innovative
applications. Developers are free to take advantage of the
device hardware, access location information, run background services, set alarms,
add notifications to the status bar, and much, much more. </p>

<p>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.</p>

<p>Underlying all applications is a set of services and systems, including:
<ul>
    <li>A rich and extensible set of <a
    href="{@docRoot}resources/tutorials/views/index.html">Views</a> that can be used to
    build an application, including lists, grids, text boxes, buttons, and even
    an embeddable web browser</li>
    <li><a href="{@docRoot}guide/topics/providers/content-providers.html">Content
    Providers</a> that enable applications to access data from other
    applications (such as Contacts), or to share their own data</li> <li>A <a
    href="{@docRoot}guide/topics/resources/resources-i18n.html">Resource
    Manager</a>, providing access to non-code resources such as localized
    strings, graphics, and layout files</li>
    <li>A {@link android.app.NotificationManager Notification Manager} that enables
    all applications to display custom alerts in the status bar</li>
    <li>An {@link android.app.Activity Activity Manager} that manages the
    lifecycle of applications and provides a common navigation backstack</li>
</ul>

<p>For more details and a walkthrough of an application, see the <a
href="{@docRoot}resources/tutorials/notepad/index.html">Notepad Tutorial</a>.</p>
    
<a name="libraries" id="libraries"></a>
<h2>Libraries</h2>

<p>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:</p>
<ul>
    <li><strong>System C library</strong> - a BSD-derived implementation of
    the standard C system library (libc), tuned for embedded Linux-based
    devices</li>
    <li><strong>Media Libraries</strong> - 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</li>
    <li><strong>Surface Manager</strong> - manages access to the display
    subsystem and seamlessly composites 2D and 3D graphic layers from multiple
    applications</li>
    <li><strong>LibWebCore</strong> - a modern web browser engine which
    powers both the Android browser and an embeddable web view</li>
    <li><strong>SGL</strong> - the underlying 2D graphics
    engine</li>
    <li><strong>3D libraries</strong> - 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</li>
    <li><strong>FreeType</strong> - bitmap and vector font rendering</li>
    <li><strong>SQLite</strong> - a powerful and lightweight relational
    database engine available to all applications</li>
</ul>

<a name="runtime" id="runtime"></a>

<h2>Android Runtime</h2>

<p>Android includes a set of core libraries that provides most of
the functionality available in the core libraries of the Java programming
language.</p>

<p>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 &quot;dx&quot; tool.</p>

<p>The Dalvik VM relies on the Linux kernel for underlying functionality such
as threading and low-level memory management.</p>

<a name="kernel" id="kernel"></a>

<h2>Linux Kernel</h2>

<p>Android relies on Linux version 2.6 for core system services such as
security, memory management, process management, network stack, and driver
model. The kernel also acts as an abstraction layer between the hardware and
the rest of the software stack.</p>
