iOS program ape a, like most siege lion, a period of time in a language or a field will appear after the bottleneck of technology growth, when the depth of development is blocked, take the breadth of development as a new starting point, after blending in different languages through analogy, may a new perception, following the author will have to study their own path as the clue, in stages to share learning harvest with the sentiment of Android.
will start Android thousands and thousands of words, speak of preexistence!
The origins of Android
|Android was created by Android and later acquired by Google.|
|Two thousand and seven point one one||Google released Android 1 mobile operating system, the market reaction cold.|
|Two thousand and eight point nine||The first Android mobile phone was released in New York, and the Android operating system is gradually being recognized by mobile phone manufacturers.|
|Two thousand and nine point nine||Google releases Android1.5 and provides Bluetooth support, which is welcomed by developers.|
|Two thousand and ten point one||Google released its first cooperative branded mobile phone Nexus One. at the U.S. headquarters|
The frame structure of Android
The bottom of the Android system based on Linux system on the platform by the operating system, middleware, user interface and application software is composed of 4 layers, it adopts a software stack (Software Stack) by way of construction. It separated the layers and layers, and made sure the division of labor. This division of labor ensures low coupling between layers, and the upper application does not require any changes when the underlying layer or layer changes.
no picture, no truth
Android system architecture diagram.Png
From the above we can see that the architecture of the Android operating system can be divided into 4 layers, from top to bottom is the application, application framework, the core library and the Linux kernel, which includes third layers of the Android runtime environment. Here are the different parts.
1. application layer
Android is released along with a core application package that includes E-mail clients, SMS SMS programs, calendars, maps, browsers, contacts, administrators, and more. All applications are written in Java.
2. application framework
Developers can access the API framework that is used by core applications. The reusable application framework architecture to simplify software components, any application can publish its functional blocks and any other application can use the function block its release (security restrictions but must follow the framework). The application reuse mechanism enables components to be replaced by users.
All of the following applications are made up of a series of services and systems, including:
|An extensible view (Views)||Can be used to create applications, including lists (lists), grids, boxes (text), buttons, and even an embeddable Web browser.|
|Content manager (Content, Providers)||Allows applications to access data from another application (such as contacts, databases), or share their own data.|
|A resource manager (Resource, Manager)||Provides access to non code resources such as local strings, graphics, and hierarchical files (layout, files).|
|A notification manager (Notification, Manager)||Enables the application to display customer notification information in the status bar.|
|An active class manager (Activity, Manager)||Used to manage the application life cycle and provide common navigation fallback features.|
3. Android function library
Android includes a C/C++ collection library that is used by various components of the Android system. The library provides services to developers through the Android application framework.
Here are some of the major core libraries:
|System C Library||A standard C system function library (libc) inherited from BSD, specifically tailored for devices based on Embedded Linux.|
|Media library||Based on PacketVideo OpenCORE, the library supports recording and playback, and can record many popular audio and video formats, as well as static image files, including MPEG4, H.264, MP3, AAC, JPG, PNG.|
|SurfaceManager||Manages the display subsystem and provides seamless integration of the 2D and 3D layers for multiple applications.|
|LibWebCore||A new Web browser engine that supports Android browsers and an embeddable Web view.|
|SGL||A built-in 2D graphics engine.|
|3D Libraries||Based on the OpenGL ES 1 APIs implementation, the library can use hardware 3D acceleration (if available), or use highly optimized 3D soft acceleration.|
|FreeType||Bitmap (bitmap) and vector (vector) font display.|
|SQLite||A lightweight relational database engine for applications that are available and powerful.|
4. Android runtime library
Android includes a core library that provides most of the capabilities 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 is designed to run multiple VMs implementation at the same time and efficiently. The Dalvik virtual machine executes.Dex’s Dalvik executable, which is optimized for minimal memory usage. The virtual machine is based on the register, all classes are compiled by the Java assembler, and then through the SDK DX tools into.Dex format executed by a virtual machine.
The Dalvik virtual machine relies on some of the capabilities of the Linux, such as threading mechanisms and underlying memory management mechanisms.
5. Linux kernel
Android’s core system services depend on the Linux kernel, such as security, memory management, process management, network protocol stacks, and drive models. The Linux kernel is also used as the hardware abstraction layer between the hardware and software stacks.