能否用另一台電腦的 Android 模擬器 (AVD) 測試 App 呢?當然可以!
一、在「遠端電腦」上安裝 Android SDK
請參考 " HOWTO Setup Android Development " 的文件,在另一台比較快的 Linux 電腦上安裝 Android SDK。二、建立「本地電腦」與「遠端電腦」的「終端機」連線
用 SSH 建立「本地電腦」與「遠端電腦」的連結,在「終終機」中的命令為,[SiB@Celeron-D ~]$ ssh 192.168.10.17 -p 2012 -L 5555:127.0.0.1:5555 -X其中, " 192.168.10.17 " 是「遠端電腦」的網路位址," 2012 " 是「遠端電腦」中 SSH 的埠號,兩個 " 5555 " 分別為「本地電腦」及「遠端電腦」的 AVD 對應埠號。" -X " 這個參數比較重要,是將在「遠端電腦」上跑的 AVD 之『畫面』重導到「本地電腦」。
當連線成功後,「終端機」的命令提示會變成「遠端電腦」的提示文字:
[SiB@Celeron-D ~]$ ssh 192.168.10.17 -p 2012 -L 5555:127.0.0.1:5555 -X上例的「終端機」畫面中,包含兩部電腦的命令提示文字:
SiB@192.168.10.17's password:
Last login: Sat Aug 11 12:32:21 2012 from 192.168.10.12
[SiB@Core-i7 ~]$
「本地電腦」為 " [SiB@Celeron-D ~]$ " 與「遠端電腦」的 " [SiB@Core-i7 ~]$ "。
三、啟動「遠端電腦」的 AVD
在啟動「遠端電腦」的 AVD 前,先測試「本地電腦」上 AVD 的連接狀態,[SiB@Celeron-D ~]$ Android-SDK/platform-tools/adb devices確定沒有任何 AVD 連接著。接著,在「遠端電腦」啟動 AVD,這時只能使用指令方式,
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached
[SiB@Core-i7 ~]$ Android-SDK/tools/emulator -avd Android_2.2上例中, “Android_2.2” 是用「AVD 管理器」所建好的模擬器名稱,若讀者所建立的模擬器名稱不同,請自行替換。出現的「警告訊息」不影響後續的操作、使用。接著,熟悉的畫面就出現了,
Failed to create Context 0x3005
emulator: WARNING: Could not initialize OpenglES emulation, using software renderer.
emulator: warning: opening audio output failed
當然,這是在「本地電腦」的螢幕上。
四、使用「本地電腦」的 ABD 與 AVD 連線
再測試一次「本地電腦」ADB 連接 AVD 的狀態,[SiB@Celeron-D ~]$ Android-SDK/platform-tools/adb devices奇怪! 不是「遠端電腦」的 AVD 已經開啟,畫面都重導到「本地電腦」上了嗎? 怎麼還不行。
List of devices attached
原來是「本地電腦」的 ADB 需要重新啟動一次,才會再搜尋一次「網路上可連線」的 AVD,
[SiB@Celeron-D ~]$ Android-SDK/platform-tools/adb kill-server這表示「本地電腦」的 ADB 成功重新啟動了,再測一次「本地電腦」ADB 連接 AVD 的狀態,
[SiB@Celeron-D ~]$ Android-SDK/platform-tools/adb start-server
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
[SiB@Celeron-D ~]$ Android-SDK/platform-tools/adb devices畫面顯示出偵測到 AVD 並連線的訊息。當然,這是在「遠端電腦」的 AVD,但是畫面是在「本地電腦」的桌面上。
List of devices attached
emulator-5554 device
五、可以開始用「遠端電腦」的 AVD 為 App 測試、除錯
終於,可以不用換掉自已熟悉的電腦,繼續享受開發的樂趣了。已測試版本:
- Fedora: 14, 17
沒有留言:
張貼留言
感謝你耐心看完本文,歡迎留下任何指正、建議,筆者會儘快回應。(English is also welcome.)