簡體   English   中英

使用本機語言是 C 或 C++ 的 JNI 接口在 Java 中實現 USB 通信是個好主意嗎?

[英]Is it good idea to implement USB communication in Java using JNI interface where native language is C or C++?

我有在 Android 手機中實現 USB 通信的需求。 我搜索了一下,才知道在Java中很難實現。 所以我想到了使用 JNI 接口並在 C 或 C++ 中實現代碼並在 Java 中鏈接它。 嘿,我是 JNI 的新手,所以如果我錯過了任何條款或做錯了,請原諒我。 但是任何人都可以對此提出建議,或者可以給我提供實現這一點的替代解決方案。

根據經驗 - 除非必須,否則不要使用 JNI。 JNI 非常適合數字運算和繁重的工作,例如算法。 除非您的 USB 通信涉及加密和其他花哨的東西,否則我強烈建議您不要這樣做。

首先,使用JNI調用API要麻煩很多。 此外,調試將更加困難,您可以使用更少的工具來調試代碼,並且您更有可能引入錯誤。

當您使用 USB 數據線將 Android 手機插入計算機時,它將顯示為標准的可移動大容量存儲設備。 從 PC 端來看,文件復制非常簡單。 從 Android 端,你什么也做不了——如果設備可以任意向你的計算機寫入文件,這將是一個巨大的安全漏洞。 我建議反轉您的設計模式,並通過 PC 上的軟件完成文件復制操作。

如果您試圖基於文件在手機和 PC 之間實現某種數據傳遞,我建議切換到更合適的模型,例如 TCP 套接字。

在 PC 上用 Java 實現文件和套接字模型應該相對簡單。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM