Original article location: Dev guide, Android basics, what is Android?
Android Dev Guide Series 1: What is Android?
Android is a software set for mobile devices. It includes an operating system, middleware, and some important applications. The android SDK provides the necessary tools and APIs for the android development platform. It uses the Java programming language.
Features:
Application Framework: supports Component Reuse and replacement.
Dalvik Virtual Machine: Virtual Machine optimized for mobile devices.
Integrated Browser: Based on the open-source browser WebKit engine.
Optimized Image Processing: a custom 2D graphics library based on OpenGL es1.0 specifications (optional hardware acceleration ).
SQLite: structured data storage.
Media Support: supports audio and video, as well as standard image formats (such as MPEG4, H.264, MP3, AAC, Amr, JPG, PNG, and GIF ).
GSM phone device: hardware dependency.
Bluetooth, edge network, 3G, WiFi: hardware dependency.
Photo Taking, navigation, compass, and accelerometer: hardware dependency.
Rich Development Environment: includes a simulator, debugging tool, memory and performance analysis, and Eclipse plug-in.
Android system structure:
The following figure shows the main components of the Android operating system. Each part is described in detail below.
16:59:53 upload
Downloading attachments (194.02 KB)
Applications
Android will have some core application sets, including email clients, SMS programs, calculators, maps, browsers, contacts, and so on. All applications are developed in Java.
Application Framework
By providing an open platform, Android allows developers to develop rich and innovative applications. Developers can use hardware devices for free to access local information, start background services, Set alarms, and add alerts to the status bar.
Developers can use the same framework APIs of the core application. The application architecture is designed to simplify the reuse of components. Any program can publish its features for other programs to use (on the premise that the application imposes security constraints ). The same mechanism allows users to replace some components.
The following figure shows a set of services and system applications, including:
Some rich extensible visual Atlas: can be used to construct applications, including lists, tables, input boxes, buttons, and an embedded browser.
Content Provider: applications can access data of other programs, such as the contact list or share their own data.
Resource Manager: provides access to non-code resources, such as localized strings, images, and layout files.
One prompt MANAGER: allows all programs to display custom prompts on the status bar.
An activity MANAGER: manages the lifecycle of an activity and provides a common navigation function.
For more details and application preview, refer to noteoad tutorial.
Libraries:
Android contains some C/C ++ libraries used by various Android components. These functions are open to developers through the Android Application Framework, some core libraries are shown in the list:
System C Library: the implementation of a BSD Standard C system library, designed for Embedded Linux devices.
Multi-media library: Based on the packetvideo's opencore library, it supports playing and recording some mainstream audio and video formats, as well as static image files, including MPEG4, H. 264, MP3, AAC, Amr, JPG, and PNG format.
Surface MANAGER: management enters the subsystem to seamlessly integrate 2D and 3D layers in multiple applications.
Libwebcore: a popular web browser engine for Android browsers and embedded web views.
SGL: an underlying 2D image engine.
3D Library: An Implementation Based on OpenGL ES 1.0 API. Including 3D hardware acceleration (if available) and optimized 3D software acceleration.
FreeType: rendering of Bitmap and Vector Fonts (rendering ).
SQLite: A Powerful lightweight database engine for all programs.
Android Runtime Library:
Android contains most of the core libraries of the Java language.
Each Android Application runs in its own process and has its own Dalvik Virtual Machine instance. The Dalvik virtual machine is rewritten to support multiple valid virtual machines on a mobile device. The Dalvik virtual machine execution file (. Dex) is very small in memory occupied by optimization. VM is A. Dex file that is based on registers and is converted from class files through the Java language compiler. It uses the built-in DX tool.
The Dalvik virtual machine depends on the underlying functions of the Linux kernel, such as thread and underlying memory management.
Linux Kernel:
Android relies on the linux2.6 kernel as the core system service, such as security, memory management, process management, network stack and driver model. Kernel acts as an abstraction layer between software and hardware.