diff options
Diffstat (limited to 'docs/html/guide/basics/what-is-android.jd')
-rw-r--r-- | docs/html/guide/basics/what-is-android.jd | 135 |
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 "dx" 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> |