Android虛擬機Genymotion使用相關問題及處理


目前我已知的有三款Android模擬器,分別是bluestacks,Genymotion,andy,而 Andy 有特色的地方是提供了遠程控制功能,可以在 Android手機/平板上安裝 Andy 的 APP 直接無線操作電腦上的模擬器,個人用過前兩種,感覺更喜歡Genymotion,更加逼真。當然只是個人意見,其中的差異還有待讀者親自體驗一番。有機會要去嘗試一下andy模擬器,對那個app遠程控制挺感興趣的。

下面個人介紹一下我使用過程中遇見的一些問題:

 

1.Genymotion網絡問題

先介紹一下VirtualBox 網絡設置,轉自http://reverland.bitbucket.org/VirtualBox_net.html,感謝作者。

VirtualBox 有5種網絡模式,下面將逐一講解。

NAT〈網絡地址轉換模式〉


VirtualBox 中虛擬的主機(以下簡稱:虛擬主機)並不真實存在於網絡中,宿主機和宿主機網絡中的任何主機都不能直接訪問虛擬主機,各虛擬主機也互不相通。虛擬主機能訪 問宿主機,以及宿主機能訪問的任何主機。虛擬主機訪問網絡是先通過 VirtualBox 轉換后再發送出去的,數據接收也是先由 VirtualBox 接收后再轉換轉發到虛擬主機。

如不能理解可以參考:http://zh.wikipedia.org/wiki/網絡地址轉換。

 

虛擬主機網絡參數默認從 VirtualBox 的虛擬 DHCP Ser 獲取:

IP地址 子網掩碼 網 關 DNS
10.0.x.15 255.255.255.0 10.0.x.2 10.0.x.3
VirtualBox 端口轉發

前面講了宿主機和宿主機網絡中的任何主機都不能直接訪問虛擬主機,但是VirtualBox 提供了端口轉發,使得我們可以設置特定的端口供實體網絡訪問。

設置發送到宿主機的某些端口轉發到虛擬主機,是不是很簡單啊。宿主機IP地址干脆就127.0.0.1吧!

Bridged Adapter〈橋接模式〉


需要加載模塊vboxnetflt

虛擬主機通過 VirtualBox 橋接到宿主機的一個網卡中,就像真實存在於宿主機網絡中的一台主機一樣。虛擬主機能與宿主機和宿主機網絡中的主機完美互通。被橋接的網卡會開啟混雜模式。

 虛擬主機網絡參數 : 手動配置成橋接的宿主機網卡的同一網段,或通過宿主機網絡中的 DHCP Ser 獲取。

如果宿主機在一個受限制的網絡虛擬主機是不能訪問互聯網的,如:宿主機使用ADSL、使用使用代理或VPN、宿主機網關做了MAC地址限制……

Internal〈內部模式〉


虛擬機與外界完全分開,虛擬機與宿主機網絡不能互通,只有 同一名稱(如:intnet)的內部網絡模式的虛擬機之間才能互相訪問 ,還有一個條件是在同一網段哦。

 

 虛擬主機網絡參數 : 默認不分配IP,需要自已手動設置。

Host-only Adapter〈宿主機模式〉


VirtualBox 在宿主機中虛擬一個 host-only 網卡,然后把虛擬主機橋接到 host-only 網卡上,我們可以通過設置 host-only 網卡(共享、橋接)來實現網絡連接。呵呵,這個動手性比較強,雖要你有一定的網絡技術哦。

關於網卡的橋接和共享,你可以查閱 Windows 相關文章,或 google 搜搜 “windows 網卡xx”。

 虛擬主機網絡參數 :默認IP段為192.168.56.X/24

“未指定”,呵呵,選擇這個會發生什么?


如果你選擇“未指定”,你將不能和任何主機通信,只能夠自已 ping 自已啦!

VirtualBox 其它問題

雖然VirtualBox 橋接模式非常好用,但是受限制的網絡你怎么辦呢?用NAT模式,不!這樣宿主機訪問虛擬主機太麻煩了。我的方法就是給虛擬主機添加兩個網卡,一個網卡使用 NAT模式,另一個網卡使用Bridged Adapter模式,然后給虛擬主機設置靜態路由,設置訪問宿主機的數據從Bridged Adapter模式的網卡送出,而訪問互聯網的數據從NAT模式的網卡送去。是不是很簡單啊!

 

針對genymotion的網絡問題,請看上述紅色文字,則可簡單設置genymotion的網絡(也可解決學校銳捷的問題)

給虛擬主機添加兩個網卡,一個網卡使用 NAT模式,另一個網卡使用Bridged Adapter模式,然后給虛擬主機設置靜態路由,設置訪問宿主機的數據從Bridged Adapter模式的網卡送出,而訪問互聯網的數據從NAT模式的網卡送去。



 

2.安裝外界應用時或使用Genymotion調試出現錯誤INSTALL_FAILED_CPU_ABI_INCOMPATIBLE解決辦法

  • 很多ARM的程序都沒法安裝(比如微信),畢竟是用的vbox虛擬機,相當於在x86環境下運行的,限定ARM的程序自然是無法安裝了,會提示"INSTALL_FAILED_CPU_ABI_INCOMPATIBLE"這個錯誤,無法向模擬器部署,如果直接安裝APK則會提示與您的設備不兼容。

解決辦法:

點擊下載Genymotion-ARM-Translation.zip

將你的虛擬器運行起來,將下載好的zip包用鼠標拖到虛擬機窗口中,出現確認對跨框點OK就行。然后重啟你的虛擬機。

不過在實際操作的過程中,發現在部分模擬器環境下,將zip文件拖進去以后會報錯,提示"an error occurred while deploying a file"。經過實驗,用DDMS也沒法手動安裝zip包里的東西(要復制到system下)。個人認為原因可能在於設備沒有在root的狀態下,但是Genymotion應該是已經root了的啊,最后解決方法是通過re管理器之類的文件管理工具,先獲得root的讀寫權限,然后將文件手動復制過去替換就行了(記得要重啟)。其實這方法也是xda的帖子([GUIDE] Genymotion | Installing ARM Translation and GApps)里面提到的。應該還有更簡單的方法,其實就是將zip包中的system/lib下的文件都復制到設備就行了。

這么操作以后,就可以安裝各種ARM的程序了,微信也正常安裝,經測試使用也沒有什么問題。

沒試過Genymotion的朋友推薦試試這個模擬器,很多時候,比真機要更快捷方便,性能也很棒。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM