如何成為一個偷懶又高效的Android開發(fā)人員(2)
在前一篇文章中,我們討論了關于依賴注入和RoboGuice庫。今天我們要講的是一款很棒的測試和開發(fā)工具。
我從Android源碼1.5開始做開發(fā)一直到現(xiàn)在,經(jīng)歷了Android和Android模擬器的發(fā)展過程。我覺得速度是提高了一些,但是沒有我們想象中的那么流暢和好用,我相信很多Android開發(fā)者都厭倦了打開本地模擬器,然后進入加載界面,然后各種無響應和卡頓。雖然通過快照 (snapshot)可以加速。
補充一下,因為我也做Windows程序開發(fā),我發(fā)現(xiàn)Windows phone的模擬器很快,表現(xiàn)得很出色。可惜我沒有做過IOS的開發(fā),但是現(xiàn)在我已經(jīng)了解了IOS的模擬器也很出色。所以如果和IOS和Windows的 模擬器相比,Android模擬器簡直就像烏龜一樣慢。
Android系統(tǒng)很特別,App需要進行模擬化測試,我很同意這個觀點。但是我覺得每個問題都有解決的方法,所以解決性能和這個差別的方案就是用虛擬化技術。
所以今天我決定寫一篇關于Genymotion模擬器的文章,我覺得它很非常不錯。自從這個項目啟動后,我就一直和大家分享,大家也很喜歡。所以我覺得應該把它分享給本站的讀者。
Genymotion模擬器 – 更快的Android模擬器
問:你希望不用真機或者平板就可以運行App例子嗎?
問:如果你是一名開發(fā)者,你希望能更方便地測試App嗎?
對以上兩個問題,這里就有一個簡單的辦法:使用Genymotion模擬器。
這是一個測試和演示App的一個很快的模擬器,它帶有一個友好的用戶界面,可以實現(xiàn)控制各種虛擬的部件和傳感器,比如電池、GPS,還有各種加速器,它還包含了一個強大的命令行工具可以構建更加復雜的測試環(huán)境。
免費開源的軟件
事實上這是基于一個開源項目 AndroVM的一個測試版,現(xiàn)在已經(jīng)出了商業(yè)版本,旨在為運行android提供一個盡可能高效的虛擬環(huán)境。所以它是免費開源的,之前是完全免費的,現(xiàn)在有了一些收費的服務,不過免費版已經(jīng)相當不錯,也有很多我們喜歡的特性,比如電池管理部件,GPS部件和攝像頭部件。
使用要點和模擬器準備
假設你以前已經(jīng)玩過VirtualBox,如果沒玩過可以點擊前面的鏈接。Genymotion模擬器需要在你的機器中用VirtualBox運行,這就是它比本地模擬器更快的原因。如果你之前打開過模擬器,那再次打開時就不用重新加載了,它會加載之前的狀態(tài)。這點很像本地模擬器中的“snapshot”特性。
題外話:早期的Genymotion版本提供了帶有Google應用的模擬器,所以用戶就可以從Google Play商店上下載應用和游戲。但是在11月13號發(fā)行的Genymotion2.0.0版本中不再包含Google應用和ARM類庫支持。對于 Google應用官方正在和Google溝通,希望仍然可以在Genymotion上加回google應用,詳情請看:Genymotion Changelog。
不過現(xiàn)在Genymotion的模擬器已經(jīng)沒有Google應用了,我在StackoverFlow上找到了原因:How To Add Google Apps and ARM Support to Genymotion v2.0+.
除了速度和性能外,Genymotion還提供了很多好用的特性:
- 跨平臺支持
因為它是基于VirtualBox運行的,所以在Windows,Mac和Linux都可以運行,不必安裝任何東西只需要從Genymotion的官網(wǎng)上下載它然后注冊一個賬號來下載不同的模擬器版本即可。
傳感器控制
它可以人性化地管理模擬的傳感器如電池電量,GPS還有加速器。舉個例子,如果你在開發(fā)基于GPS的App,需要測試不同的地理位置,只需要在地圖上拖拽來移動地圖到對應的位置,如果需要移動X和Y的坐標,也是一樣的操作。
支持Google應用商店服務
如要測試帶有Google Play Service SDK的應用,需要下列配置:
- 一個可以兼容Android2.3或以上版本并帶有Google Play商店的設備;
- 帶有AVD,可以運行android4.2.2或者以上的android模擬器;
這里Genymotion為一些ROM提供了Google Play應用的集成,就像真實設備一樣。我清晰記得曾經(jīng)花了幾天來測試一個用了Google Map API V2的APP,我們就是用Genymotion來測試的。
在開發(fā)環(huán)境中完美集成
Genymotion為新建虛擬設備提供了一個簡潔的UI操作,你可以單獨使用或者安裝Eclipse或Android Studio/IntelliJ 插件。
相關鏈接:
注意:
- 有一個更快的模擬器并不意味著可以寫程序更快,只是不必在真機上測試而已,它可以幫你以一個更快的方式來開發(fā)和測試App;
- 在Genymotion上的Google+ post說,已經(jīng)支持Android4.4預覽版,但是可能會有bug;
- 目前官方還在開發(fā)一些ROM,并不斷測試和修復bug。
總結:
Genymotion是一個更快的Android模擬器,可以用來做開發(fā),測試甚至展示App,它可以控制虛擬傳感器如GPS、電池電量還有加速器。
事實上Genymotion剛出了第一個商業(yè)版2.0.0,仍然有很多問題要修復,我建議這個模擬器配合Eclipse或者Android Studio/IntelliJ IDE 使用,以一種更快的方式去開發(fā)和測試App。