summaryrefslogtreecommitdiffstats
path: root/docs/html/guide/basics/what-is-android.jd
diff options
context:
space:
mode:
Diffstat (limited to 'docs/html/guide/basics/what-is-android.jd')
-rw-r--r--docs/html/guide/basics/what-is-android.jd135
1 files changed, 135 insertions, 0 deletions
diff --git a/docs/html/guide/basics/what-is-android.jd b/docs/html/guide/basics/what-is-android.jd
new file mode 100644
index 0000000..b75321b
--- /dev/null
+++ b/docs/html/guide/basics/what-is-android.jd
@@ -0,0 +1,135 @@
+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://code.google.com/android/download.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>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}guide/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}guide/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>