The first chapter of Android Deep Exploration is an overview of Android system porting and driver development. Android's system architecture is divided into four tiers: the Linux kernel, the C + + code base, the Android SDK API, the application. The main work of Android porting: porting Linux drivers and porting the HAL. Learn Linux drivers to prepare a familiar Linux operating system for developing and testing Linux drivers, preparing a Development Board, learning GNU C, learning about hardware knowledge, and constantly practicing. Linux divides memory and peripherals into 3 categories: Character devices, block devices, and network devices.
Through the first chapter of the study, I learned that because Android native code support is not many devices, in order to perfectly run Android on their own device, you need to develop some other programs, so that Android can identify the device hardware, As a result, Android systems are required to be ported, and the most developed in the porting process are Linux drivers that support a variety of hardware devices. Therefore, the Android system transplant must learn to drive development. I also know that Linux drivers are only related to the Linux kernel, regardless of the Linux system used by the user, no matter which Linux system, as long as the use of the same Linux kernel, the driver can be universal, the only way to determine whether the Linux kernel is the same is the Linux kernel version number. Learning Android Driver Development, is actually learning Linux driver development, but Android added a unique Android HAL, the general Android driver will have the corresponding HAL, but HAL is not required, Linux drivers can also be accessed directly through the NDK. But Google recommends that you write a corresponding HAL library for your Linux driver.
The first chapter of "Android Deep Exploration" experience