Android currently occupies the majority of the smartphone operating system market share, is currently the mainstream of mobile phone operating system development. Android was developed on the basis of Linux, so the Android kernel and the Linux kernel are mostly the same. Since Android's native code does not support many devices, additional programs need to be developed to enable Android to recognize the hardware of the appropriate device. Android's system architecture has a total of four layers, including: application, Android SDK api,c/c++ code base, Linux kernel. The main tasks of Android system porting include: Application porting and system porting. Where application porting is an application porting to a particular hardware platform. System porting refers to the Android operating system running on a particular hardware platform. To enable the operating system to run on the hardware platform first to support the corresponding CPU architecture, second, the need to identify the various hardware on the platform must be ported driver, and finally need to port the HAL (Hardware abstraction layer).
The Linux kernel version currently mainly maintains linux2.4,linux2.6 and linux3.x. Where Linux2.6 is the most widely used version, Android is using its kernel version. The Linux kernel version number consists of the following parts: Major version number, minor version number, revision number, fine-tuning version number, and special tuning for specific Linux systems. Learning Linux drivers requires some preparation, such as a familiar operating system, learning about hardware knowledge, and studying GNU C. A driver is a kind of program that interacts directly with hardware and is responsible for abstracting the hardware. The driver targets the memory and peripherals, not the CPU cores. Linux divides memory and peripherals into 3 major categories: Character devices, block devices, and network devices.
About Android Driver development and Linux driver development can be said to be similar, learning Android can be the corresponding reference Linux. At the same time to learn its peculiar things. These two courses can complement each other.
Android Deep Exploration Summary of the first chapter