首先,依照 Android 文件上的說明 [先安裝 SDK],再 [撰寫 Hello, Android!] 應用程式後,打包成 apk 格式;本文使用的 Android SDK 搭配的 Eclipse 版本是 3.4(Ganymede)。接著,再照 [Android Documentation] 的說明撰寫一個 Android 應用程式,再將程式編譯後打包成 HelloMoko.apk 檔案。
當然,必須將 FreeRunner 更新為 Android 系統,更新方式可至 Openmoko 中文 wiki 下載投影片:http://wiki.openmoko.org/wiki/Main_Page/zh_tw。請依以下步驟將 HelloMoko.apk 安裝至 FreeRunner 手機上。以下的實驗環境為 Ubuntu 8.04.1。
1. 連接 FreeRunner 與 PC
將 FreeRunner 以 USB 連接 PC,再將 FreeRunner 手機開機至 Android 環境。請注意,依照 Openmoko wiki 上的說明,若在開機後再連接 PC,可能會有問題。可利用 lsusb 指令檢查 FreeRunner 是否順利連到 PC 上:
$ lsusb Bus 007 Device 002: ID 04b4:1724 Cypress Semiconductor Corp. Bus 007 Device 001: ID 0000:0000 Bus 003 Device 001: ID 0000:0000 Bus 006 Device 001: ID 0000:0000 Bus 005 Device 034: ID 1457:5117 Bus 005 Device 001: ID 0000:0000 Bus 004 Device 001: ID 0000:0000 Bus 004 Device 004: ID 04d9:0499 Holtek Semiconductor, Inc. Bus 002 Device 001: ID 0000:0000 Bus 001 Device 001: ID 0000:0000
2. 殺掉 adb server
執行 adb 時,adb-server 會自動啟動。因此,若是先前曾利用 Eclipse 啟動過 Android 模擬器來測試 HelloMoko 的話,adb-server 己經在背景執行了。啟動 adb server 後再連接 FreeRunner,可能會讓 adb server 找不到 FreeRunner,因此,最可靠的做法是:先檢查系統是否有 adb server,將執行中的 adb server kill 掉後,再重新啟動 adb server。
$ ps ax|grep adb 20092 ? S+ 0:00 grep adb 21032 ? Sl 0:00 adb fork-server server $ sudo kill -9 21032
adb 是 Android SDK 所提供的工具,可於 Android SDK 的 tools/ 目錄下取得。
3. 設定 PC 端 IP
接下來設定 PC 端的 IP 位址為 192.168.0.x,例如:
$ sudo ifconfig usb0 192.168.0.200
FreeRunner 的預設 IP 為 192.168.0.202,可以 ping 此位址測試是否能正常連線。
4. 啟動 adb server
設定 ADBHOST 環境變數:
$ export ADBHOST=192.168.0.202
ADBHOST 的值為 FreeRunner 的 IP 位址。再執行 adb 啟動 adb server,adb server 會自動偵測 Android 手機:
$ adb devices * daemon not running. starting it now * * daemon started successfully * List of devices attached emulator-5554 device
在 'List of devices attached' 項目可以看到系統自動偵測到的 Android 手機。
5. 安裝 HelloMoko.apk
使用 adb 將 HelloMoko.apk 安裝到 FreeRunner / Android 手機:
$ adb install HelloMoko.apk
安裝完成後,重新啟動 FreeRunner 即可在應用程式選單裡看到 HelloMoko。
--jollen

評論 (3)
您好:
我照您上述的步驟作了很多次(freerunner已安裝Android),在終端機下lsusb也看到裝置(不過ID後四碼不一樣),刪掉adb後,卻還是無法偵測到裝置usb0,請問可能哪出錯?(我用Ubuntu跟WindowsXp架設Android環境都試過,都無法成功執行sudo ifconfig usb0 xxx)
,是否有空提供協助?
由 吳建中 | August 19, 2009 12:30 PM
發表於 August 19, 2009 12:30
我也是都無法成功執行sudo ifconfig usb0 xxx
由 林宗成 | October 12, 2009 6:12 PM
發表於 October 12, 2009 18:12
在我電腦上是用ifconfig "eth1",可以比較看看拔掉/插上FreeRunner執行ifconfig,會多出哪個interface,就是要填的指令。
由 Ryan Lei | December 15, 2009 6:31 PM
發表於 December 15, 2009 18:31