学习Android驱动开发,实际上就是学习Linux驱动开发,只是Android
增加了一个HAL,这是Android特有的。当然HAL也不是必须的,通过NDK
也可以直接访问Linux驱动,但google建议最好为Linux驱动编写对应的HAL程序库
//////////////////////////////////////////////////////
Android系统构架:
Android系统构架分为4层
第一层:Linux内核
第二层:C/C++代码库
第四层:应用程序
///////////////////////////////////////////////////////
android系统移植需要考虑的问题
(让操作系统在某特定硬件平台上运行)
1.该操作系统支持硬件平台的cpu架构(因为android底层为 linux系统,本身可支持很多cpu架构,因此仅需稍微调整)
2.让android系统可以识别并调用该平台上的硬件设备(需要1.移植Linux驱动2.需要移植HAL)
///////////////////////////////////////////////////////
如何学习linux驱动开发:
1.搭建linux系统开发环境
2.掌握GNU C(是linux下最常用的C语言编译环境)
3.一块合适的android开发板用来测试
////////////////////////////////////////////////////////
Linux设备驱动:
linux将存储器和外设分为3大类(1.字符设备2.块设备3.网络设备)
字符设备:必须以串行顺序依次进行访问的设备
块设备:可以用任意顺序进行访问
http://www.cnblogs.com/zygoodest/