What is Android?
Android is a software stack for mobile devices. It includes operating systems, middleware, and key applications. Android SDK providesProgramming LanguageDevelop applicationsProgramNecessary tools and APIs.
Features
* The application framework makes components reusable and replaceable
* The Dalvik virtual machine is optimized for mobile devices.
* The integrated browser is based on the open-source WebKit engine.
* Optimized graphics processing is based on a custom 2D graphics library and a 3D image based on opengles 1.0 specifications (optional hardware acceleration ).
* SQLite Structured Data Storage
* Media supports common audio and video formats (MPEG4, H.264, MP3, AAC, Amr, JPG, PNG, and GIF)
* Gsm phone (based on hardware)
* Bluetooth, edge, 3G, and WiFi (based on hardware)
* Cameras, GPS, compass, and acceleration sensors (based on hardware)
* A wide range of development environments include device simulators, debugging tools, memory and performance analysis tools, and plug-ins for Eclipse IDE.
Android Architecture
Displays the main components of the Android operating system. Each part is described in more detail.
Application
Android will be equipped with a series of core applications, including email clients, SMS programs, calendars, maps, browsers, address books, etc. All applications use the Java programming language.
Application Framework
By providing an open development platform, Android gives developers the opportunity to build extremely rich and innovative applications. Development allows you to freely use devices, access location information, run background services, Set alarms, and add notifications to status bars.
Developers can use the same API framework as core applications. The application architecture is designed to simplify Component Reuse. Any application can publish its functions, other applications may exploit these features (which must comply with the security constraints provided by the Framework ). With the same mechanism, components can be replaced by users.
All applications at the underlying layer are a set of services and subsystems, including:
* A group of rich and scalable views that can be used to build an application, including lists, tables, text boxes, buttons, and even embedded web browsers
* A set of contentproviders allows applications to access data of other applications (such as Address Book) or share their own data.
* A Resource Manager that providesCodeResource access, such as localized strings, images, and layout files
* One notification management function allows all applications to display custom notifications in the status bar.
* An activity is used to manage the life cycle of an application and provides a general backend switch stack.
For more information about an application, see the notepad code example.
Library
Android includes a set of C/C ++ libraries, which are used by various components of the Android system. These capabilities are presented to application developers through the Android Application Framework. Some core libraries are as follows:
* System C library-a BSD derivation implementation for the Standard C system library (libc) and adjustment for Embedded Linux Devices
* Media library-Open Core Based on packetvideo. This Library supports 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
* Surface Manager-Manage access display subsystems and seamlessly synthesize 2D and 3D graphic layers from multiple programs
* Libwebcore-a popular web browser engine with excellent support for Android browsers and embedded web views
* SGL-underlying 2D graphics engine
* 3D library-an implementation based on OpenGL ES 1.0 API; this library uses hardware 3D acceleration (if available) or includes a highly optimized 3D software grating Scanner
* FreeType-used for bitmap and vector font rendering
* SQLite-a powerful and lightweight Relational Database Engine provided for all applications
Android running
Android includes a set of core libraries, which provide most of the functions available in the core library for Java programming language.
Each Android Application runs in its own process and is attached to a single Dalvik Virtual Machine instance. One device can efficiently run multiple Dalvik virtual machines. The Dalvik virtual machine executes the Dalvik executable file (. Dex) format, which is optimized with minimal memory usage. The Dalvik virtual machine is register-based and runs the DX tool to convert the class file compiled by the Java language compiler to the DEX format file.
The underlying functions of the Dalvik virtual machine depend on the Linux kernel, such as threads and underlying memory management.
Linux Kernel
Android core system services, such as security, memory management, process management, network protocol stack, and driver modules, depend on Linux 2.6. The kernel is also used as an abstraction layer between the hardware and software stacks.