Since Google launched the Android phone platform, the use of Android as a platform for mobile phones and tablets increasingly popular. The figure below is a chart of the market share of several mainstream smartphone platforms in the United States in September 2010 and December three months.
You can see that by December 2010, Android has surpassed Apple's iphone in the US, and because of the openness of the Android platform, I think it will become more popular in the future. The equivalent of other common mobile phone development platforms, such as Java Me,windows Mobile, BlackBerry, IPhone, Winodws phone 7. Android development is still easier to get started.
What is Android?
Android is a set of software specifically for mobile devices that includes an operating system, middleware, and important applications. The Android SDK provides the tools and API interfaces needed to develop Android applications on the Android platform using the Java language.
Android features
? Application framework support for reuse and replacement of components
Dalvik virtual machines for mobile device optimization
Integrated browsers based on open source WebKit engine
Optimized graphics library includes 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 static image formats (e.g. MPEG4, H.264, MP3, AAC, AMR, JPG, Png,gif)
GSM Telephone technology (hardware dependent)
blue tooth Bluetooth bluetooth, EDGE, 3G, and WiFi (hardware dependent)
Cameras, GPS, compasses, and accelerometers (accelerometer) (dependent on hardware)
A rich development environment includes device simulators, debugging tools, memory and performance analysis charts, and Eclipse integrated development environment Plug-ins.
Application Framework
Developers can also fully access the API framework used by core applications. The application's architectural design simplifies the reuse of components; Any application can publish its block of functionality and any other application can use its published block of functionality (although it follows the security constraints of the framework). Similarly, the application reuse mechanism makes it easy for users to replace program components.
Hidden behind each application is a series of services and systems, including;
Rich and extensible view (views) that can be used to build applications, including lists (lists), grids (grids), TextBox (text boxes), buttons (buttons), and even web browsers that can be embedded.
Content Providers enables applications to access data from another application, such as a contact database, or to share their own data
The Resource Manager (Resource Manager) provides access to non-code resources, such as local strings, graphics, and layout files (layoutfiles).
The Notification Manager (Notification Manager) enables applications to display custom prompts in the status bar.
The activity manager is used to manage the application lifecycle and provide common navigational fallback functionality.
Library is
Android includes some C + + libraries that can be used by different components in the Android system. They pass the Android application framework
Provide services to developers. Here are some of the core libraries:
System C Library-a standard C system function library (LIBC) inherited from BSD, which is specifically tailored for embedded Linux based devices.
Media Library-based on PacketVideo Opencore, the library supports a variety of commonly used audio, video format playback and recording, while supporting static image files. Coding formats include MPEG4, H.264, MP3, AAC, AMR, JPG, PNG.
Surfacemanager– manages the display subsystem and provides seamless integration of 2D and 3D layers for multiple applications.
libwebcore– is an up-to-date web browser engine that supports the Android browser and a Web view that can be embedded.
sgl– Bottom 2D Graphics engine
3D libraries– is based on OpenGL ES 1.0 APIs, which can use hardware 3D acceleration (if available) or use highly optimized 3D soft acceleration.
FreeType-Bitmap (bitmap) and vector (vectors) font display.
sqlite– a lightweight relational database engine that is powerful for all applications.
Android Run-time 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 Dalvik virtual machine instance. Dalvik is designed
As a device, you can run multiple virtual systems efficiently at the same time. The Dalvik virtual machine executes (. dex) 's Dalvik executable file, the format
The pieces are optimized for small memory usage. While the virtual machine is based on registers, all classes are compiled via the Java compiler and then passed through the SDK
The "DX" tool in is converted to the. dex format by the virtual machine.
Dalvik virtual machines rely on some features of the Linux kernel, such as threading mechanisms and underlying memory management mechanisms.