Android System architecture--four layers
First layer: Linux kernel: Android is based on Linux kernel, this layer mainly includes Linux driver and memory management, process management, power management and other programs. Android uses Linux2.6 as its kernel.
The second layer: C + + code library: This layer mainly includes code libraries written in C + + (. So files under Linux and NDK code embedded in the APK program), and also includes the runtime (rumtime) of the DALIVK virtual machine.
Layer Three: Android SDK API: A direct application-oriented Java API layer, a variety of libraries written in Java (for Dalvik virtual machine format based).
Layer Fourth: Apps: Java applications that are accessible to all Android users, directly to end users, all Android applications are on this tier and rely on the third tier for a variety of functions.
Linux device drivers
A driver is a kind of program that interacts directly with hardware and is responsible for abstracting the hardware. The drive targets memory and peripherals and divides them into 3 categories: Character devices (Character devices) (which must be accessed in serial order), block devices (accessed in any order, in blocks), Network device (Devices).
Chapter One overview of Android system porting and driver development