关于Android驱动程序开发的一些问题

问题描述

| 我是这个领域的新手。实际上,我只是开始研究可能性。 我的问题的简单版本是:开发驱动程序(例如USB <-> Serial),将其部署到Android手机(商业产品,而非定制产品)并编写应用程序以利用该驱动程序会怎样?这有可能吗? 这是一个更长的版本。 我已经具有Windows驱动程序开发的经验和Linux驱动程序的一些知识。我也做了一些研究。我只知道NDK。我不知道的是: 我发现的所有参考文献似乎暗示驱动程序开发是在设计设备时完成的,而不是为了破解现有设备。是这样吗 如果可能如何部署?驱动程序是否必须与内核集成到ROM和笔刷中? 如果设备不支持USB主机,是因为硬件设计还是软件中缺少某些东西,还是两者兼而有之? 很抱歉,问题列表很长。关于此领域的任何建议都会有所帮助,因为我还有其他计划,涉及从头开始构建Android设备。谢谢你的时间。 顺便说一句,对于我的应用程序来说,ADK太昂贵了(至少现在是这样),所以它是不可行的。     

解决方法

Honeycomb可能提供对USB主机和使用它的某些功能的标准化支持,许多蜂窝设备似乎都具有该端口,但是我不知道Honeycomb中是否有标准说应随USB <> serial一起提供。上游linux内核中可用的驱动程序。 对于所有早期版本,任何可能性都将取决于设备,并且需要root用户访问权限。 ADK可用于最新的Android版本,但是正如您所指出的,这是次优的解决方案,因为它将所有复杂性都放入了附件中,并且还要求提供总线电源,这两者都是“向后”通常的情况。     ,1.,2.您不能将自定义驱动程序插入无根的ROM中。要注入驱动程序,您的用户将需要根设备或完全刷新自定义ROM。 3.-取决于设备。有些可以使用自定义软件来做USB主机,有些则不能。 查看Android Open Accessory Development Kit。有了这个,您可以构建一个带有串行端口的开发板,通过Android附件协议与现有的Android 2.3.4+和Android 3.1+设备进行通讯。     ,要安装驱动程序,将需要root用户。 例如: http://groups.google.com/group/android-platform/browse_thread/thread/e1794bdecebb62cc?pli=1     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...