This article is quoted in "Android Development Tutorials & Notes"
The Android concept:
Android is a software specifically for mobile devices and it includes an operating system, middleware and some important applications. The beta version of the Android SDK provides the tools and API interfaces necessary for Android app development on Android platforms using the Java language.
Characteristics
• Application framework support for reuse and replacement of components
Dalvik virtual machines optimized for mobile devices
• An integrated browser based on the open source WebKit engine
• Optimized graphics library including custom 2D graphics library, 3D graphics library based on OpenGL ES 1.0 (Hardware acceleration optional)
SQLite as a structured data store
• Multimedia support includes common audio, video and still image formats (e.g. MPEG4, H. MP3, AAC, AMR, JPG, PNG,
GIF)
GSM Telephony technology (hardware dependent)
• bluetooth® bluetooth, EDGE, 3G, and WiFi (Hardware dependent)
• Camera, GPS, compass, and accelerometer (accelerometer) (Hardware dependent)
• Rich development environment including device Simulator, Debug tool, memory and performance analysis chart, and Eclipse integrated development environment Plug-in
Application Framework
Developers also have full access to the API framework used by the core application. The architectural design of the application simplifies the reuse of components;
An application can publish its block of functionality and any other application can use its published function block (though it follows the box
Security restrictions on the chassis). Similarly, the application reuse mechanism also makes it easy for users to replace program components.
Hidden behind each app is a range of services and systems, including:
• Rich and extensible view (views) that can be used to build applications, including lists (lists), grids (grids), text
This box (text boxes), button (buttons), or even a Web browser that can be embedded.
• Content Providers allows an application to access data from another application, such as a contact database, or
Users to share their own data
• Resource Manager (Resource Manager) provides access to non-code resources, such as local strings, graphs, and layout files (layout
files).
• Notification Manager (Notification Manager) enables applications to display customized prompts in the status bar.
• Activity Manager is used to manage the application lifecycle and provide common navigation fallback functionality.
Library
Android contains a number of C + + libraries that can be used by different components of the Android system. They are through the Android application framework
Provide services to developers. Here are some core libraries:
• System C Library-a standard C system function library (LIBC) inherited from BSD, which is designed for embedded Linux-based
of equipment customized.
• Media Library-based on PacketVideo Opencore; The library supports a variety of popular audio, video format playback and recording, while supporting
A static image file. Encoding formats include MPEG4, H. MP3, AAC, AMR, JPG, PNG.
Surface Manager-manages the display subsystem and provides seamless integration of 2D and 3D layers for multiple applications.
Libwebcore-An up-to-date web browser engine with support for Android browsers and an embeddable Web view.
SGL-The underlying 2D graphics engine
3d Libraries-based on OpenGL ES 1.0 APIs, the library can use hardware 3D acceleration (if available) or use high
Optimized for 3D soft acceleration.
FreeType-Bitmap (bitmap) and vector (vectors) font display.
SQLite-A lightweight relational database engine that is available and powerful for all applications.
Android Runtime Library
Android includes a core library that provides most of the functionality of the JAVA programming language core Library.
Each Android application runs in its own process and has a separate instance of the Dalvik virtual machine. Dalvik was designed
into a single device can run multiple virtual systems at the same time and efficiently. Dalvik Virtual Machine Execution (. dex) of the Dalvik executable file, the format
Optimized for small memory usage. While the virtual machine is register-based, all classes are compiled via the JAVA compiler, and then the SDK
The "DX" tool in the. dex format is executed by the virtual machine.
Dalvik virtual machines rely on some of the features of the Linux kernel, such as threading mechanisms and underlying memory management mechanisms.
Advantages of Android:
- 1. The source code is completely open, which makes it easier for developers to grasp the details of implementation, so as to improve the technical level of developers and to develop more differentiated applications.
- The dalvik,android of virtual machines optimized for limited memory, battery, and CPU runs much faster than imagined.
- Operators (China Mobile, etc.) strong support, the industry chain of hot.
- A good profit model (3/7 open), the industry chain of all parties: operators, manufacturers, independent software manufacturers can get good benefits. The transformation of the mobile Terminal evaluation standard from hardware to software greatly stimulated the enthusiasm of the software developers.
- Android's source code follows the Apache V2 software license, not the usual GPL v2 license. Conducive to commercial development.
- With the support of a strong Linux community.
Android's weaknesses:
- With Java as the application development language, there are few traditional third-party applications available, but because Android is a fully open-source mobile computing platform, third-party applications will soon be enriched.
- Google offers a limited subset of Java core packages (J2SE 5,j2se 6) that are not yet committed to any Java specification in Java, which could lead to further fragmentation of the Java camp.
- The existing application is not enough perfect degree, the need of the development of a large amount of work
- Based on the development of QEMU simulator debugging means is not very rich, only support calls, SMS, etc., slow.
- There is no Push Mail and Office (DataViz, quickoffice program recently launched) features, currently mainly for the general consumer users, business users support is weak.
For more information, see the Android Development Tutorials & Notes