I am very new to this field. Actually I just begin to investigate the possibilities.
The simple version of my question is, what will it take to develop a driver (say USB<->Serial), deploy it to an Android phone (commercial product, not customized one) and write apps to utilize it? Is this even possible?
And here comes a longer version.
I already have experiences on Windows driver development and some knowledge of Linux driver. And I also did some research. All I know about is NDK. What I don't know is:
All reference I found seems to imply driver developing is done when designing the device, not for hacking an exist one. Is that the case?
How to deploy if possible? Does the driver has to be integrated with the kernel into a ROM and brush?
If the device does not support USB host, is it because the hardware design or just something missing in the software or both?
Sorry for the long question list. Any suggestions regarding this field will help since I have other plans inv开发者_运维技巧olving building an Android device from scratch. Thanks for your time.
And by the way, ADK is too expensive (at least now) for my application so it's out of the equation.
Honeycomb may provide standardized support for USB host and some functions using it, and many honeycomb devices seem to have the port, but I don't know if there's a standard in honeycomb that says it should ship with the USB<>serial drivers available in the upstream linux kernel.
For all earlier versions, any possibility is going to be device specific and require root access.
ADK is available for the latest Android versions, but as you noted it's a very suboptimal solution, in that it puts all the complexity in the accessory and also requires that to provide bus power, both of which are "backwards" from the usual case.
1., 2. You cannot inject custom driver in unrooted stock ROM. To inject a driver, your users will need to root the device or flash a custom ROM altogether.
3.- It depends on device. Some can do USB host with custom software, some can't.
Check out the Android Open Accessory Development Kit. With this you could build a board with serial port that talks with stock Android 2.3.4+ and Android 3.1+ devices via Android accessory protocol.
To install a driver will require root.
For an example: http://groups.google.com/group/android-platform/browse_thread/thread/e1794bdecebb62cc?pli=1
精彩评论