近期在搞一个android手机通过usb口连接usb设备,并与之通讯的东东。
该usb设备没有host驱动,就查呀查,怎么做设备驱动,最终查到libusb,libusb可以基于usb文件系统在用户应用程序访问硬件,后来在2.6.13中抛弃usbfs,但仍可以使用udev来达到目的。
我理解就是libusb 提供高级API可以访问硬件,而在看android usb host提供的API时,发现这些函数也是可以访问硬件的,请问两者有什么区别???可以直接使用android usb host提供的API访问所有usb设备吗??????
------解决方案--------------------
一看是12年的问题,不过也来说两句吧,毕竟技术没有坟不坟的。
libusb是跨平台的linux unix mac windows都可以用。为应用程序提供了统一的接口。
但是Android至始至终就是一个另类,所以的东西都自己实现一下。toolbox -> busybox bionic->gcc库 uevent+vold->udev.当然它开始认为Android设备一般没有host口(接usb设备)所以也就没有把libusb弄到Android中。到现在也是一个不正式的放到了external/libusb。这样说你应该大概清楚了,或者说你可以在13年的时候都已经清楚了,这些话也写给后来者吧。