2013年7月6日 星期六

android Architecture



android information is  come from
http://www.mindcracker.com/Story/1076/architecture-of-android






1. Applications e.g. calendar,email, SMS, maps phone,browser:

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 we 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.



2. Application Framework:

This is the skeleton or framework which all android developers have to follow. The developers can access all framework APIs an manage phone's basic functions like resource allocation, switching between processes or programs, telephone applications, and keeping track of the phone's physical location. Underlying all applications is a set of services and systems, including:

    Activity Manager
    Windows Manager
    Content Provider
    View System
    Package Manager
    Telephony Manager
    Resource Manager
    Location Manager
    Notification Manager


Where,

    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.
    Content Providers that enable applications to access data from other applications (such as Contacts), or to share their own data.
    Resource Manager, providing access to non-code resources such as localized strings, graphics, and layout files.
    Notification Manager that enables all applications to display custom alerts in the status bar.
    An Activity Manager that manages the lifecycle of applications and provides a common navigation back stack.

    The architecture is well designed to simplify the reuse of components. Think of the application framework as a set of basic tools with which a developer can build much more complex tools.

    ArchAnd4.gif


3. Libraries:

This layer consists of Android libraries written in C, C++, and used by various systems. These libraries tell the device how to handle different kinds of data and are exposed to Android developers via Android Application framework. Some of these libraries includes media, graphics, 3d, SQLite, web browser library etc.

Android Libc implementation:

A custom implementation, optimized for embedded use.

    BSD license
    Small size and fast code paths
    Very fast custom pthread implementation
    Built-in support for android-specific services (system properties, log capabilities)
    Doesn't support some POSIIX features


Storage, rendering, multimedia:

Provides the main features on the Android platform:

    SQLite, a simple relational database management system (No IIPC, single file)
    WebKit, an application framework that provides foundation for building a web browser
    Media Framework, based on PacketVideo openCORE platform (codec)
    Optimized 2D//3D graphic library based on OpenGL ES


Surface Manager:

Provides a system-wide surface "composer" to render all the surfaces in a frame buffer.

    Can combined 2D and 3D surfaces
    Can use OpenGL ES and 2D hardware accelerator for its compositions

沒有留言:

張貼留言