安卓 hal 串口驱动学习。。。

安卓是一个基于linux的系统,说的明白点其实安卓就是linux的应用程序。只是它对linux进行了封装。最底层的内核 其实并没有什么变化,开发安卓的驱动,最底层的跟linux没有任何分别。差别就在这个驱动要让java虚拟机里面跑的应用程序调用,并且正常使用。在安卓里实现的方法是 hal jni server  然后是客户端。这个hal曾其实就是典型linux平台下的操作底层驱动的编程。可以理解为unix编程。第二层 jni 就是为了方便java调用hal 而编写的转换层,第三层server 已经是完全的java了。他的主要功能就是调用第二次的jni接口。

最后每个使用这个驱动的应用程序 调用这个server 就实现了对底层驱动的操作。不得不说,有点曲折。有点复杂。实际上只要掌握了 linux的驱动编写,对于开发hal,我想难度已经不大了。因为 就算在linux下面 我们也要写对驱动的测试程序。而hal本质上 更那个底层测试程序太大的差别。


想使用安卓的usb转串口 首先要在内核里加载usb转串口的驱动程序。这样安卓启动的时候在/dev目录就出现了ttyUSB0 这样的文件。接着hal层 直接打开这个设备。进行设置,读写都做成接口。然后jni层,按照那些案例 修改代码 就差不多了。

猜你喜欢

转载自blog.csdn.net/haozhenghui10/article/details/41963213
今日推荐