最近工作上需要玩WiFi Direct,
但又沒device可以測,
因為WiFi Direct在Android 4.0.x後才開始support,
且Bonjour在4.1.x後才開始support.
<想了解Bonjour的可看Apple - Mac Developer Library >
突然想到Android官方有出個模擬器,
雖然用過的都知道又慢又耗資源.
但沒錢買一堆device,
只好試試看了.
沒想到Android emulator竟然沒有WiFi的功能!
雖然可以上網,但對於其他socket要用的port要透過forwarding的方式一對一轉!?
別鬧了~你又肥又慢還缺東缺西喔...(丟)
於是上網survey,
發現了很多人推薦去用Oracle VirtualBox來當Virtual Machine(對!就是甲骨文這家公司)
這是用來幹啥的呢?
簡單講就是在你現在的這台電腦中,跑另外一台電腦
之前工作上的需要,我也在
Windows上跑VMWare
- 為了開發MS的軟體,因為早期不同Windows OS上的compatibility很差.至於現在差不差?我很久沒碰就不知道MS變聰明了沒...
- 為了開發MID軟體,也因此接觸了Linux
不過以上的經驗都告訴我,VM很慢...
也因此想說就試試看,慢了點起碼說不定有WiFi.
在Google大神的協助下,
先後找到了AndroVM與Android-x86這兩個可以在VirtualMachine上跑的Android project,
載入AndroVM後,稍微看了一下,有模擬出來一個WiFi的AP,
在Google上發現有人說用Alt+F1可以進入adb command line,
但我怎麼試都不行.
因為此時還搞不清楚AndroVM & Android-X86是不同的project,
也因此我就換去用Android-x86,
抓的是此時最新的Test build 20130228 for Android-x86 4.2 (Jb-x86).
載入後的確可以用Alt+F1進command line來下adb指令.
但不論怎麼嘗試,WIFI的選項都打不開,
在Google上查了一下,似乎要改網卡driver?
好像很麻煩,
於是轉回研究AndroVM - androVM-4.1.1_r6.1-20130222 release
Android-x86提供下載的是一個ISO檔,
你必須在VirtualBox內用新增的方式自行建立這個專案,
並做各項設定.
而AndroVM提供下載的是一個ova檔,這是VirtualBox匯出的專案,
也就是說你啥都不用設定,
只要在VirtualBox用Import Appliance... 就可以了
回到AndroVM,
雖然這有WIFI,但可惜的是並沒有看到WIFI Direct的選項!
這真的是非常可惜!
雖然沒辦法實驗WIFI Direct,
但這種網路互連的方式讓我想到之前的Server - Client或許可以實作在這上面!
就不須要拿兩台實機開WIFI來測試傷身(誤)了!
deault AndroVM的設定是在你電腦內模擬10.0.3.15這個IP address,
透過你的電腦連出去
But,我的需求是:
兩台Android OS device,一台Client,一台Server,
透過TCP/IP Socket方式在LAN內連線互傳資料,
還要能在自己的電腦利用adb command的方式與這兩台VM溝通來debug
因此:
修改了每一台VM的network Adapter(可點圖放大)
Adapter1是拿來adb command連的 - 會產生一個192.168.56.aaa ,
然後你就可以透過AndroVM內建的androVM configuration apk來看到這個IP address,
在你主機上就可以直接用 adb connect 192.168.56.aaa來連線
(androVM Configuration畫面如下)
Adapter2是取得跟我主機一樣的IP address range (Ex. 10.82.52.xxx)
這樣我就有IP可以讓兩台VM互相連線
而另一台VM要特別注意的是要將network adapter選項的MAC address設定與第一台VM不同,
不然可能會被分配到同一個IP,這樣你就會發生不可預期的問題喔!
這樣會很慢嗎?
由於使用的電腦是
Ubuntu 12.10 (quantal) 64-位元
Intel® Core™2 Quad CPU Q8300 @ 2.50GHz × 4
3.8 GiB
我覺得還挺順的!
補充:
AndroVM有開放原始碼,或許針對各種不同的需求,
日後需要不同解析度或設定的開發者可以自行build image,
有空再來研究這部份!
请问androvm源码还有保留吗
回覆刪除