To say the anatomy, perhaps the word may be used too much, the following introduction to the Android system is from my personal understanding.
Someone once asked me, what is Android? At that point, I was really blindfolded, and I simply returned: Android is a mobile-based operating system. To this day, I know that the answer is too shallow, I think only after the real development, to answer this question.
So what exactly is Android? I think Android is an interface between the user and the device, from the Android architecture, Android is divided into 4 layers, so it can be said that Android is a connecting device software block, but it is not a collection of some column components.
Android is a mobile development platform whose software hierarchy includes operating systems, middleware, and applications, and the entire architecture is divided into 4 tiers from bottom to top:
- OS Linux kernel layer
- Various class libraries, run-time
- Application Framework Layer
- Application Layer
The Linux kernel layer includes the Linux kernel and some driver modules, such as USB drive, Bluetooth driver, camera driver, etc.
The libraries layer includes a variety of dynamic class libraries (2D, 3D image engine, embedded database, Web browser core, etc.), The Android Runtime library and the Dalvik virtual machine (Dalvik virtual machine used before Android4.4, after 4.4 with art), from a programming language perspective, this layer is written in C/s + +, so it can be said that this layer is native layer.
The application framework layer, which is the framework of an application, is written in the Java language and is the cornerstone of the Java language on the Android platform, so this layer primarily provides developers of the application layer with a list of development APIs, such as various UI controls.
The application layer is primarily the user interface. Android has its own applications, such as contacts, text messages, music players and other applications, but Android developers can also use the Application framework layer API to develop their own personalized applications, I think this is a huge potential for Android open source performance.
Anatomy of Android system Architecture (i)