gpt4 book ai didi

android - 为 Android 编写 USB 驱动程序

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:09:46 30 4
gpt4 key购买 nike

我正在开发一个 android 应用程序,我需要在其中连接到 USB 设备。

我在 windows 上开发了一个类似的应用程序,我有用 c 编写的驱动程序。

我想为我的 android 应用程序开发一个 USB 驱动程序。我想知道为 android 开发 USB 驱动程序需要哪些东西。

我可以使用 ndk 重用用 c 编写的代码吗?

谢谢,

最佳答案

首先,Android 实际上就是 Linux,所以如果您在谈论“为我的 Android 应用程序编写 USB 驱动程序”,您应该说“为您的特定设备编写一个 Linux USB 驱动程序”。

接下来,您必须以某种方式访问​​您的设备。当你为 linux 编写 USB 驱动程序时,你将得到的可能是/dev/中的某个文件节点。我猜您想为非标准 USB 设备(如鼠标/操纵杆/大容量存储器)创建驱动程序,而 Android 并未为其提供良好的 JAVA api?在这种情况下,您将不得不编写一个本地库(可能基于您已有的 c 代码)并使用 NDK 对其进行编译。您将从中获取的 .so 文件可以打包在您的 Android 应用程序中,然后该应用程序可以使用它与您的 USB 设备通信。

总结一下:

usb 设备驱动程序 -> 创建一个内核模块或将驱动程序嵌入到您的 linux 内核中:这是 linux usb 驱动程序编程的东西,您应该能够在网上找到足够的指南。如果您真的创建了 Windows USB 驱动程序,您应该能够重用部分 C 代码。

用于访问您的设备的 native 包装器库(.so 文件,如果您习惯使用 Windows 术语,则为 .dll)-> 创建一个 NDK 项目,打开正确的设备节点并正确地读取/写入您的设备。

android 应用程序 -> 包含 .so 文件并通过 jni 访问其 native (c) 方法。您可以使用 javah 或 swig 等工具从库的头文件生成 jni 代码。

关于android - 为 Android 编写 USB 驱动程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12741162/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com