首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Android USB 與 PC 通信:使用 adb forward + Socket 替代 libusb

     編輯:程式設計綜合問答

推薦方案:adb forward 端口映射 + Socket 通信

  1. PC 端執行:adb forward tcp:12345 tcp:12345(將 PC 12345 端口映射到設備 12345)。
  2. 設備端(Server)監聽本地 12345 端口:
ServerSocket server = new ServerSocket(12345);
while (true) {
    Socket socket = server.accept();
    // 處理連接:InputStream/OutputStream 收發自定義協議數據
}
  1. PC 端(Client)連接 localhost:12345:
Socket socket = new Socket("127.0.0.1", 12345);
// 發送指令、接收回覆

優勢

  • **無需 Root**、無需 libusb、無需內核驅動開發。
  • 跨平台(Windows/Linux/Mac 均有 adb)。
  • 傳輸速度可達 USB 2.0 理論帶寬(~35MB/s)。
  • 斷開重連只需重新 `adb forward`。

注意

  • 設備端需在 **子線程** 執行 ServerSocket.accept(),避免阻塞主線程。
  • 生產環境建議加心跳、重連、加密協議。
  • 若需大量數據傳輸(如文件同步),考慮 **ADB Sync 協議** 或 **MTP/PTP**。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved