Sans serif, a Google Engineer, recently published a blog post describing the Android system architecture. Huang Xiaoqing, President of China Mobile Communications Research Institute, recommended this article on Sina Weibo, I think the introduction to Android in this article is very good.ArticleSimple Compilation:
What is andriod?
First, as Dan Morrill, Android open-source and compatibility Technical Director, explained in the compatibility section of the android development manual, "Android is not a standard or distribution version of the traditional Linux style, it is not a series of reusable component integration. Android is a software block used to connect devices."
Linux:
The underlying layer of everything is a stable and updated Linux kernel (I am using the 2.6.32 kernel for nexus phones) and our well-developed energy management components; of course, they will also be integrated into the first-layer LinuxCodeAnd public components.
Dalvik:
Another important part of Android is virtual machines and a set of important runtime environments. It is a very clever design and is a very good underlying application of a mobile phone terminal.
How to generate code?
The Dalvik Virtual Machine only executes. Dex executable files. When JavaProgramAfter compilation, you also need to convert the SDK to. Dex format to execute on the VM.
I need to emphasize that the Android Application itself can be viewed as code that can run and call APIs on the platform. Therefore, you do not need to pay special attention to how code is generated.
Special apps:
In the figure, some apps Based on the Dalvik Virtual Machine look like a part of Android, which are actually provided by Google, including dialer, contact, calendar AR, Gmail, and chat. Most of them are open-source and reusable. There are only a few exceptions, such as Google Maps and Android Market.
Open Source:
In the figure below, most of the green components are open-source based on the Apache license, while the rest are based on GPL, lgpl, and BSD.
Android framework
There is a lot of space on the android Developer Network (pai.android.com) to help you use it, so I will not go into details here.
Standard Library
Here, the "standard" refers to "developers can generally use it in an open-source environment ".
What is in the app?
An Android app is contained in a compressed folder called APK. There is nothing to say about APK. Please note that android manifest is an interface between app and Android system.
Others
most applications are based on Dalvik. I mean applications other than games. Game Developers usually want to write in C/C ++ instead of using virtual machines, so they can use andriod ndk for development.