Android是一个优秀的嵌入式操作系统,它的系统架构可以分为4层:第一层:linux内核。第二层:CC++代码库。第三层:Android SDK API。第四层:应用程序。
Android移植的主要工作可分为两部分:应用移植和系统移植。应用移植就是将系统架构的第四层应用程序移植到某一个硬件平台上。系统移植就是指让Anroid系统在某一硬件平台上运行。只要让Android系统可以识别平台上的各种硬件,就可以完成Android的驱动移植。可以在HAL中修改相应的代码,再把它进行移植,就可以完成Android的移植。在更改HAL代码时只要找见HAL的源代码,在进行更改。
对于查看linux的内核版本,可以在linux终端下执行uname -a或者cat /proc/version的命令。Linux内核版本号可以分为:主板本号、次版本号、修订版本号、微调版本号、特定的Linux系统特别调校的描述。我们在学习Linux的驱动开发时需要有一个操作系统来搭建驱动开发环境,可以选用自己用的比较熟悉的Linux操作系统。还要准备一个开发板、学习GNU C、学习相关硬件知识、不断地实践。计算机的运行都是软硬件共同作用的结果,所以必须要有设备驱动来支持硬件设备。而Linux的设备可以分为3大类:字符设备、块设备、网络设备。
想要学习好Android驱动开发就必须学习好Linux驱动开发,在再次基础上学习HAL就是Android驱动开发。