Recently, sans serif, a Google Engineer, published a blog post describing the Android system architecture very clearly. 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. You can look at the Android system architecture in the eyes of Google engineers. The translation of sans serif blog is as follows:
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."
What is andriod?
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, there are also extensions and public components that integrate the top-layer Linux code.
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. After the Java program is compiled, it must be converted to the. Dex format by using the tools in the SDK before it can be executed on the virtual machine.
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.
Open-source android
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.
Android framework
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.
What is in the app (1)
What is in the app (2)
Others
Most applications are based on Dalvik, and I am referring to 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.