2014年3月16日 星期日

在「遠端電腦」開發,以連接「本地電腦」之 Android 裝置測試

前一陣子在開發的 Android Apps 程式需要用 Android 裝置測試,用 VNC 連接「遠端電腦」並在其上開發 Apps。要在 Android 實體機測試時,將在「遠端電腦」編譯後產生的 Android apk 檔案,用 FTP 或 SFTP 下載回「本地電腦」,再利用 Android 的開發工具 ADB 將之下載至 Android 裝置測試。
  覺得其中的『用 FTP 或 SFTP 下載回「本地電腦」』這個步驟有些麻煩,就想再找個方法在每次編譯後都直接下載到 Android 裝置,就像開發、測試都在同一台電腦一樣方便。參考網路上的做法,再加上自己的一些嘗試,終於達成這個目標。
  就將這些步驟記下來,以供將來需要時的參考。整理一下到目前為止的紀錄:
開 發 端測 試 機 (端)發 文 連 結
Eclipse (PC_1)AVD (在 PC_1)預設之開發環境(使用 AVD 模擬器)
Eclipse (PC_1)Android 裝置 (連接 PC_1)預設之開發環境(使用 Android 裝置)
Linux 中,令 ADB 測得以USB連接的 Android設備
Linux 中,令 ADB 測得以USB連接的 Android設備(F19)
Eclipse (PC_1)AVD (在 PC_2)使用另一台電腦的 Android 模擬器 (AVD) 除錯
Eclipse (PC_1)Android-x86 (為 PC_2)用另一台運行 Android-x86 的電腦除錯
Eclipse (PC_1)Android 裝置 (Galaxy SII)用 Wi-Fi 下載 Android 程式到 GALAXY SII 手機
Eclipse (PC_1)Android 裝置 (連接 PC_2)在「遠端電腦」開發,經 SFTP 下載,再由「本地電腦」ADB 載入至 Android 裝置測試
Eclipse (PC_1)Android 裝置 (連接 PC_2)本文

註一:『PC_1』和『PC_2』分別指兩台不同之電腦,『PC_1』為執行開發 Android App 的 Eclipse 之電腦,而『PC_2』是指另一台電腦。
註二:『PC_1』和『PC_2』編號與執行快慢無關,選擇以方便開發為主要考量。

一、設定「本地電腦」的 ADB,用於連接 Android 裝置

這個步驟與之前的發文『在「遠端電腦」開發 App,經 SFTP 下載,再由「本地電腦」ADB 載入至 Android 裝置測試』相同,請自行參考前文,在此不再贅述。

二、設定「本地電腦」與「遠端電腦」間的連接通道

確認「本地電腦」(PC_2)可以偵測到以 USB 連接的 Android 裝置,
[SiB@Celeron-D ~]$ ~/Android-SDK/platform-tools/adb devices
List of devices attached
HT02SLG01505  device
在「本地電腦」(PC_2)用 SSH 建立與「遠端電腦」間的逆向連接通道,
[SiB@Celeron ~]$ ssh 192.168.10.17 -p 5566 -R 5037:127.0.0.1:5037
SiB@192.168.10.17's password:
Last login: Fri Feb 14 16:47:21 2014 from 192.168.10.13
上例中的命令的有些複雜,列個表方便說明:
數  字修改?說    明

192.168.10.17依實際網址執行開發 Android App 的 Eclipse 之「遠端電腦」之網路位址
5566依實際埠號「遠端電腦」之 SSH 服務的埠號
127.0.0.1保持不變SSH 用於重導的網路位址(在此為「本地電腦」之網路位址)
5037保持不變ADB 所使用的預設埠號
依實際密碼輸入「遠端電腦」之 SSH 的密碼
訊息顯示上一次 SSH 連線的時間
這時「終端機」已經切換到「遠端電腦」了,由提示文字可以看出。接下來可以在「遠端電腦」測試,看是否能偵測到接在「本地電腦」上的 Android 裝置,
[SiB@Core-i7 ~]$ ~/Android-SDK/platform-tools/adb devices
List of devices attached
HT02SLG01505  device
如上例所示,就表示成功地將「遠端電腦」的 Android 開發環境,與「本地電腦」的 Android 裝置建立連線。

注意:在執行本步驟之前,要先確定「遠端電腦」上沒有執行 ADB 伺服器。如果有要先用命令『~/Android-SDK/platform-tools/adb kill-server』將 ADB 伺服器關閉。

已測試版本:

  • Fedora: 19, 20

參考資料:

沒有留言:

張貼留言

感謝你耐心看完本文,歡迎留下任何指正、建議,筆者會儘快回應。(English is also welcome.)