介紹 Visual Studio 的 Android 模擬器

來源:互聯網
上載者:User

介紹 Visual Studio 的 Android 模擬器

Microsoft 本周發布了 Visual Studio 2015 預覽版, 裡麵包含 Android 開發工具. 安裝的時候, 如果選 Android 開發, Visual Studio 會把調試 Android 應用程式用的 Visual Studio 模擬器也裝上.  你也可以點這裡查看視頻介紹.

為了協助我們把模擬器做的更好,請填下這個簡短的問卷調查。

在介紹這個新模擬器之前, 我們先來聊一聊, 為什麼需要一個新的 Android 模擬器 – 當然, 你也可以直接跳到自己感興趣的部分去閱讀 :-)

Android 模擬器存在的必要性

我們知道, 模擬器在 編程-編譯-調試 開發週期中, 扮演著很重要的角色(甚至比物理裝置還重要). 所以我們相信, 今天發布的這個模擬器, 在開發中是必不可少的.

有了優秀的模擬器, 不代表我們就不需要物理裝置了. 反之亦然,  他們之間其實是互補的關係.

下列幾種情況, 只能用物理裝置測試, 模擬器派不上用場:

  1. 測試代碼的效能. 雖然模擬器能幫你糾正代碼中的錯誤, 但是它無法正確的給出, 代碼在指定裝置上的效能評估. 畢竟, 我們都希望測試的結果, 盡量接近使用者實際使用的效果. 

  2. 測試某些硬體問題. 比如, 你想測試下遊戲的觸摸靈敏度, 外放的音效, 或者調試 OEM 裝置的 Bug , 這些測試只能在物理裝置上進行.

  3. 評估真實的使用者體驗. 譬如, 你設計出來的人機互動介面, 適不適合使用者邊走路, 邊單拇指操作? 

除去上面列舉的情境,大家應該都會很樂意使用模擬器。因為調試代碼通常佔用了80%的開發時間,而模擬器為我們大大提高了工作效率。(除非你的模擬器有其他阻塞性問題或者使用限制)。下面是使用模擬器的幾個理由:

  1. 大部分的測試工作都是用來驗證程式的正確性而非效能,並且大部分的代碼都與底層硬體無關。所以是用模擬器是極好的。

  2. 購買一大堆硬體裝置來測試是一件很奢侈的事情(特別是持續不斷的購買新機)。大部分的硬體差異可以使用模擬器軟體進行配置,比如說螢幕解析度,不同螢幕的DPI,API層級/平台版本號碼等等。

  3. 使用物理動作來測試程式對感應器輸入的反應也是很費勁的,比如說動作變化、地理位置變化或是網路/電池的變化。在這種情境下,選擇模擬器來類比感應器的輸入就非常便捷高效,比如說模擬器可以類比一段旅程中位置的變化,並測試應用程式對地理位置變化的響應。

  4. 使用模擬器還有一項而外的便利。管理多個物理串連的USB裝置(一大堆連線和介面),是很麻煩的。此時使用模擬器就簡單得多,模擬器就是一個運行在電腦上普通的應用程式層序,除去了物理串連的煩惱,非常便於管理。

所以說模擬器是軟體的開發的好伴侶,我們希望把VS的模擬器打造成第一流的。我們從開發人員那裡收集到現有模擬器的痛點,在我們的版本上予以一一擊破:

  • 速度慢。這是從Android開發人員那排名第一的抱怨。“這個模擬器速度慢極了,嚴重影響了我的生產率,我還不如用真機測試。”速度慢是不可接受的。使用模擬器應該比使用真機的運行速度更快才是,這樣才能提高測試效率。記住一點,我們並不是在測試代碼的運行效能,對功能測試來說就是要讓模擬器儘可能地跑得快。

  • 與Windows的Hyper-V衝突。很多模擬器在運行時要關閉Hyper-V,或是在使用Hyper-V時,效能反而更糟糕。但使能Hyper-V是大部分開發人員的常見配置,頻繁重啟電腦來開關Hyper-V是不可接受的。

  • 對那些要使用Windows Phone模擬器(基於Hyper-V)的開發人員來說就更為苦惱。總不能為因為要測試跨平台的代碼,不斷的重啟和配置電腦設定吧。

  • 額外的購買和安裝步驟。如果你已經在使用Visual Studio,那麼恭喜你,你不許要再額外購買和安裝一款其他的模擬器軟體。

  • 更多的費用開銷。購買一款卓越的模擬器,也意味著更高的開銷,這也是拒絕使用模擬器的一個主要原因。Visual Studio的Android模擬器是附贈的,不需要額外的費用。

簡單來說,我們在Visual Studio的Andriod模擬器解決了以上痛點。廢話不多說,下面開始給大家介紹使用VS的Android模擬器的調試方法,我們將從如何選擇Android模擬器開始講起。

用 Visual Studio 模擬器調試 Android 程式 

無論你用的是哪一種編程模式: 用 JavaScript (或 TypeScript) 的 Cordova, C++, 或 是用 C# 的 Xamarin, 都可以在 Visual Studio 2015 預覽版上 編寫-編譯-調試 Android 代碼.

啟動偵錯模式的時候, 要選擇偵錯目標(Debug Target). 偵錯目標可以是一台物理裝置, 或者是某個在你電腦上啟動並執行模擬器. 我們來看看怎麼給 Visual Studio 2015 預覽版中的 Cordova 和 C++, 以及 Visual Studio 2013 的 Xamarin 選擇一個偵錯目標.

C++ 項目的偵錯目標選擇菜單如所示:

Cordova 項目要選擇菜單的最後兩項, 具體看下面的:

(切記, 不要選  “Android Emulator” 這一項.  因為它啟動並執行速度太慢了)

Xamarin 項目的選項如所示:

最好把位於 項目屬性-Android 選項 中的 "Use Fast Deployment" 勾選去掉.

注: 如果你想從別的 Android IDE 臨時用下 VS 的模擬器應急.  首先, 按照上面介紹的方法啟動模擬器; 然後,  把項目關掉, 保留模擬器繼續運行就可以. 其他 IDE 可以通過 ADB 調用 VS 的模擬器.

選好偵錯目標後, 按 F5 , 你的應用就會發布到模擬器中. 就像平時調試 VS 的代碼一樣, 程式運行到斷點處停下, 然後你可以查看堆棧, 變數等等. 現在, 大家都知道怎麼用模擬器調試了吧? 那我們繼續將其他功能。 

感應器類比以及Visual Studio Android模擬器的其他能力

除了使用模擬器做為部署的目標板以外,你還可以使用模擬器的感應器類比以及其他功能。 下面會給大家講解其中的一部分,順序不分先後。

縮放

你可以在開發機上(主機側)調整模擬器的顯示大小。模擬器的DPI值是由你的主機顯示器決定的,與縮放的大小無關。所以如果你覺得模擬器佔用了太多的案頭空間,那就縮小它。

使用模擬器右側的工具列中的“Zoom”按鈕,就可以調整大小。

你也可以使用全螢幕模式,點擊"Zoom"按鈕上方的“Fit to Screen”按鈕即可。

如果你想對模擬器中啟動並執行程式進行截屏(比如說,使用windows內建的截屏工具),要想取得最好的效果,就要把模擬器的縮放比例調到最大(也就是100%)。如果想要更好的效果,就要使用模擬器內建的截屏工具了,這個工具我後面也會提到。

螢幕的朝向/旋轉

除非你的應用介面是固定不變的, 否則, 就應該測試下, 手機處在不同方向時, 應用介面翻轉後的各種效果, 如:  豎屏, 左橫屏, 右橫屏. 垂直工具列上有兩個按鈕 "左旋轉"(Roate Left) 和 "右旋轉" (Rotate Right), 分別可將模擬器向左和向右旋轉. 旋轉後, 模擬器的尺寸不發生改變.

網路資訊

由於模擬器使用的是宿主機器上的網路連接, 所以網路部分不需要配置.

你可以點擊垂直工具列上的 "工具"(Tools) 按鈕, 然後在展開的"附加工具" (Additional Tools)面板中點擊 "網路"(Network) 選項卡查看網路設定資訊.

定位 (GPS)

如果你的應用跟導航, 地理柵欄(geofencing), 行走/騎行/駕駛有關. 那麼, "附加工具"(Additional Tools)面板中的 “定位”(Location) 選項卡裡頭的定位跟類比駕駛(driving simulation) 功能就會變得很有用 .

地圖可以拖動過, 放大縮小, 甚至可以尋找某個具體位置.  通過放置或移除地圖上的圖釘 (pin) 建立地圖上的點(map points). 左下角顯示的是座標. 上邊的工具列的儲存按鈕, 可以將地圖上的點儲存為 XML 檔案. 有需要時候, 再重新載入進來.

除了 “Live”模式,  這種由地圖上的點, 直接改變模擬器 GPS 位置外. 還有其他模式可以選擇! 比如你想在地圖上設定幾個點, 並在這些點之間類比移動的效果 . 那就選 “Pin” 模式. 然後點工具列最右邊的 Play 按鈕,就能類比出從一點到另外一點的移動效果.。甚至, 還可以設定移動的速度(以秒為單位)。

最後,還有一個跟 “Pin” 模式差不多的 “Route” 模式。此模式也是類比一點到另外一點的移動效果。不過多了點"曲折"。模擬器會自動計算出兩點之間的實際路徑,並以 1 秒鐘為時間間隔,為這條路徑建立隱形的點。而在這些點之間的移動速度,則取決於另外一個設定。該設定的選項有:“步行(Walking)” (5 公裡/小時), “騎行(Biking)” (25 公裡/小時), “限速(Speed Limit)” (在地圖上, 不同位置, 速度也不一樣), 和“快速(Fast)”。

加速感應器

如果你想測試應用對手機移動的響應效果, 那就開啟 “附加工具(Additional Tools)” 面板中的 “加速感應器(Accelerometer)” 。

在 3D 面板中, 直接按住裡面那個紅點, 朝你想類比的方向拖動. 如果你的應用已經寫了處理移動事件的代碼. 那它就能接收到手機移動的事件.

左下角的  X, Y, Z 值, 可以通過點擊 “Reset” 按鈕重設. 也可以由: 直立豎屏(Portrait Standing), 直立橫屏(Landscape Standing), 平躺豎屏(Portrait Flat), 和 平躺橫屏(Landscape Flat), 這幾項來設定手機的初始朝向(Orientation)。

最後, 你可以點擊右下角的 “Play” 按鈕類比震動效果. 我們能看的到的震動效果, 實際上就是 X,Y,Z 這幾個值發生改變而已. 如果這幾個值不再急劇變化, 說明震動已經停止。

電源/電池類比 (以及開關機按鈕)

假如,你的應用需要對電池的電量變化做出響應。 那麼你就會喜歡上 “附加工具(Additional Tools)” 面板中的 “電池(Battery)” 選項卡裡面提供的功能.

裡面有一個滑動條, 用來設定電池的剩餘電量. 當你調整電量的時候, 右上方的電池表徵圖也會跟著改變. 你的應用也會做出相應的反應.

如果你把 “電池充電(Charging)” 勾選去掉, 過一段時間後, 模擬器的螢幕就會變黑(blank). 這個時間可以在 系統設定(Settings)-顯示(Display)-休眠(Sleep) 裡面設定. 點垂直功能表列的 電源開關按鈕(Power), 可以將模擬器從休眠中喚醒.

截屏

要實現對應用截屏,開啟"其他工具",切換到"截屏"標籤。然後點擊“捕捉"按鈕,這樣就可以實現截屏,並讓你預覽一下即刻所截屏。如果你打算儲存這個截屏,點擊"儲存..."按鈕。如果不喜歡你剛才的截屏,忽略或者再次點擊"捕捉"按鈕。

截屏工具總是實現(按照左下角所顯示的清晰度的)100%進行截屏的,不會理會縮放設定如何。同時總是正面,不管你選擇何種映像旋轉方式。

通過拖拽安裝 APKs 

APK 是 Android 的安裝檔案。要在 Visual Studio 模擬器上安裝 APK 檔案,直接把 APK 檔案拖到模擬器裡面就可以。安裝的時候,模擬器會提示 “正在複製檔案…”。安裝完畢,會有一個訊息框提示 “ xxx  檔案已經成功安裝到 Android 系統中”。要確保你的 APK 檔案是用 x86 模式產生的!

當然, 你也可以把其他類型的檔案(非 APK 檔案)拖到模擬器中,這些檔案會儲存到 SD 記憶卡上。這也是我們接下來要講的內容。

SD 記憶卡

如果你的有向目標裝置的SD卡讀寫的需求,模擬器可以利用一個硬碟上的檔案夾類比這個SD卡.

要注意Android鏡像會使用一個獨立的VHD檔案來支援對SD卡的類比. 所以如果你想要在你的開發機器上和SD卡傳輸檔案,你可以把這個VHD安裝到你的Windows上:關閉模擬器(以停止VM的運行),然後再Windows Explorer上找到VHD的位置,雙擊它就能安裝. VHD預設會位於下面的這兒路徑下面:

C:\Users\%username%\AppData \Local\Microsoft\XDE\Android\vsemu.sdcard.vhd

這樣VHD就被作為另外的一個磁碟機安裝到了你的Windows上,你可以像使用其它的磁碟機一樣來使用它. 在重啟模擬器之前,你必須卸載VHD,你可以通過在磁碟機上右鍵選擇“彈出Eject”來實現這個步驟.

可以再鏡像中實現對SD卡的支援讓其它的內建Android應用和功能可以使用,比如瀏覽器下載和照相機應用——它為我帶來了下一項能力.

照相機

通常你可能會要使用應用裡面的照相機(使用一個合適的API),而我們支援這個功能. 你也可以直接使用內建的照相機應用. 當你在模擬器裡面啟動照相機時,你將會看到一個固定的映像,你可以擷取這個映像的快照,以類比拍照.

音頻播放,鍵盤文字輸入…

當然模擬器理所當然還會提供其它的一些功能,儘管他們需要來自產品團隊的“努力” :-)。在這裡我不會把所有的功能都列出來,單其中有兩個值得注意:

  • 你可以在模擬器中使用你機器的鍵盤輸入文本

  • 任何來自模擬器的音頻播放都可以通過你機器的音響收聽到

配置

在預覽版中,提供了2組預設配置:

  • 典型的Android手機配置:5吋螢幕,295 DDI,720x1280,1024MB

  • 典型的Android平板配置:7吋螢幕,315DPI,1080x1920,2048MB

你可以在預覽版中修改記憶體的分配,Hyper-V  Manager的配置視窗中提供了配置“Startup RAM”的選項。注意,你也可以修改每個配置中使用的CPU核心數(預設值是2)。不過,我們還沒有對所有的可能配置進行測試。

我們的工作才剛剛開始,在後面的版本中我們會提供更多的功能,同時也希望大家在下面的這個調查問卷中反饋意見,以便於我們對需求進行排序。

看看內部實現原理

如果你對Visual Studio Android模擬器的實現原理感興趣,我可以簡單地回答這個問題,就是我們重用了其他產品的工作成果。在概念上,一個模擬器軟體可以分為以下4個部分:

  1. 虛擬機器(表示為一個vhd),用於類比你使用的目標板,在這這裡目標機就是Android。我們先從Android Open Source Project (AOSP)上擷取到代碼,並加以改進,將其配置為一個x86的虛擬鏡像,這樣就可以使用Visual Studio來進行快速的調試。

  2.  Shell/Chrome,提供了使用者互動介面,可以用它來裝載虛擬鏡像並將其進行渲染顯示出來。可以把這個過程和遠端桌面做一下類比:其實你就是遠端連線到一個本地鏡像上。我們的工作就是從這裡開始,直接借鑒了Windows Phone模擬器(我們內部稱其為XDE)的shell/chrome。 然後根據Android的特殊需求,做了一些必要的修改。

  3. 虛擬化技術,XDE使用先虛擬化技術來裝載鏡像,這樣才能進行遠端連線和控制。Windows有深厚的虛擬化技術功底,我們正是使用了虛擬化技術Hyper-V來完成這項工作。

  4. 串連管道,VS和XDE需要通過串連管道來通訊,同樣的偵錯引擎和虛擬鏡像也需要。這裡我們重用了XDE與Visual Studio之間現有的串連機制,同時也使用了Android Debug Bridge (ADB) 。

現在,再來看看目前這個應用的使用限制,我再次希望大家給我們反饋改進意見,我們會優先解決大家反饋的問題。

 

當前的使用限制

今天給大家分享的是早期的預覽版,這個版本中還有不少問題和Bug,我希望大家能把更多的問題反饋為我們。 同時這個版本還有不少已知的使用限制--大家趕緊把你們最想要的功能反饋給我們,我們會優先處理:

  • 直接或間接使用OpenGL 2以及以上版本的應用程式,模擬器目前無法渲染顯示。這項功能不久就會支援,我們已經在組建中實現,用來會感覺非常流暢!

  • 市面上有太多不同的Android版本。我們目前只支援 KitKat API 19(android-4.4.4_r1)。後續會支援更多版本...

  • 如果你的APP使用了 Google Play Services 層,那麼這些應用不能在模擬器上直接運行。這是因為我們構建的Android鏡像沒有包含GMS包(我們目前還沒有擷取到相關的許可證)。

  • 你需要在x86下重新編譯你的代碼。如果你的代碼只能在ARM下運行,或者使用了不能在x86下啟動並執行第三方庫,那麼目前你的代碼是無法在我們的模擬器上啟動並執行。

  • 你只能在支援Hyper-V的作業系統上安裝我們的模擬器。不支援Hyper-V的作業系統有Windows 7和其他非Windows系統,或者是在其他的虛擬機器上運行。

如說上面所提的限制是你所急需的,目前的解決辦法是使用真機來測試(或者另找一款更好的模擬器)。我們會在後面的版本中把上面的限制列表變短,所以請填寫調查問捲來協助我們進行優先順序排序。

英文原文:Introducing Visual Studio’s Emulator for Android

Visual Studio 2010 & Help Library Manager 安裝說明

OpenCV 2.3.x/2.4.x在Visual Studio 2005/2008和Visual Studio 2010配置方法詳解

使用OpenCV-2.4.0.exe檔案編譯x86或x64平台Visual Studio 2005/2008/2010目標檔案

Visual Studio LightSwitch增加對HTML5和JavaScript的支援

Visual Studio 11:使用 C++ 開發一個最簡單的 Metro 應用

Visual Studio 的詳細介紹:請點這裡
Visual Studio 的:請點這裡

本文永久更新連結地址:

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.