Android system architecture is divided into four layers, the first layer is the Linux kernel, the second layer is the C + + code base, the third layer is the Android SDK API, and the fourth layer is the application.
Application porting refers to porting an application to a specific hardware platform. Android system porting refers to having the Android operating system run on a particular hardware platform. And its transplantation can be divided into two parts: application transplantation and system transplantation. During system porting, the main: 1. Porting Linux drivers. 2. Porting HAL (abstract hardware layer, Android access to Linux driver via HAL). If the original driver source changes, then the code in the HAL will be adjusted accordingly.
The Linux kernel version is viewed in the following ways: 1. directive: Uname-a 2. Directive: Cat/proc/version
The definition rules for the Linux kernel version number: 1. Major version number; 2. This version number; 3. revision number; 4. Fine-tuned version number; 5. Special tuning description for specific Linux systems.
Linux kernel versions of the driver development methods and procedures are basically the same, just study one version of the other version of Linux will be comprehend by analogy.
Linux divides memory and peripherals into 3 categories: A character device is a device that must be accessed in serial order, a block device that can be accessed in any order, and a network device designed for data acceptance and delivery
GUN C is a must-know technology for learning Linux drivers. GUN c is an extension to standard C.
Android Deep Exploration chapter I