係統粉 > IT資訊 > 微軟資訊

微軟Xamarin:采用C#的安卓開發環境搭建

發布時間:2017-04-24    瀏覽數:

1、Xamarin的優勢

對於一家希望擁有移動終端用戶的公司來說,不得不同時考慮兩個(或三個,雖然比較少就是了)平台的移動應用程序開發。然而令這些公司頭疼的是,安卓開發多采用Java、iOS開發多采用Swift(或OC)、Win10UWP開發多采用C#,這意味著這些公司不得不雇傭好幾批工程師,或者讓同一批工程師同時維護多個互不兼容的項目(當然,這些人的工資就得高一點)。

解決這一問題目前唯一成熟的方案是Xamarin,這是微軟旗下的、致力於使.NET框架兼容其它移動端平台上的項目。我在以前的文章裏提到過,這個所謂“框架”的東西,能抹平不同係統平台上API的差異,這意味著開發人員將能通過Xamarin在三個平台之間共享核心代碼。

舉個例子:假定某論壇需要多平台移動客戶端,那麼該平台需要維護三個獨立的項目,每一個項目都有一套獨立的業務代碼;每次論壇API升級,三個項目必須分別被更新,否則App就會不可用。假如這個論壇采用Xamarin開發它的客戶端,工程師們就能在三個平台之間共享超過95%的業務代碼;無論是開發時,還是API更新時,隻需要將這個共享的業務代碼維護一次,就能同時應用在三個項目上。

2、Xamarin開發環境的搭建(Android)

搭建這樣一個采用C#的開發環境並不複雜:它依然可以集成至Visual Studio。下麵以Visual Studio 2017作為例子,來講解該如何安裝Xamarin。

找到一個名為VSInstaller的應用程序(不出意外的話,已經安裝過VS2017的朋友可以在開始菜單裏找到它),啟動它。你已經安裝的VS產品會被呈現在第一位。單擊產品標識下麵的“修改”按鈕,修改程序功能。勾上這一項:

並在右邊的詳細目錄裏,去掉Android SDK和Android NDK(因為它們在中國大陸是無法訪問的,這會導致VS功能修改失敗):

微軟Xamarin:采用C#的安卓開發環境搭建(1)

單擊修改按鈕,讓它完成修改過程。

由於剛剛去掉了Android SDK的安裝,我們的Xamarin雖然可以編寫代碼,但是卻不能編譯和調試。現在我們來手動獲取Android SDK。

登錄Android開發工具中國鏡像網站http://m.androiddevtools.cn/,頁麵下方會有鏡像站的安卓開發工具下載地址:

微軟Xamarin:采用C#的安卓開發環境搭建(2)

下載那個zip版本的Windows平台下的Android SDK,校驗完畢後解壓至自己平時存放開發工具集的目錄。下麵會有這樣一些文件(可能會少幾個目錄,但是在整體配置完畢之後就會有的):

微軟Xamarin:采用C#的安卓開發環境搭建(3)

啟動SDK Manager,我們來配置鏡像服務器。由於Android SDK的服務器在中國大陸無法訪問,所以中國很多企業、研究機構和教育機構都建立了Android SDK的鏡像站。下麵是目前可用的鏡像站列表(來自Android開發工具中國鏡像網站):

微軟Xamarin:采用C#的安卓開發環境搭建(4)

我們在SDK Manager的菜單欄,選擇Tools->Options,將任一有效地址填入Proxy Settings裏,並勾上Others下的第一項,如圖:

微軟Xamarin:采用C#的安卓開發環境搭建(5)

填好之後,Close關掉這個窗口,在主界麵菜單欄選擇Packages->Reload,這樣就能獲得工具包列表,並且可以正確執行安裝了。安卓各平台對應的SDK Platform根據需要安裝,但是這幾項是必須安裝的:

等待安裝完成,SDK的配置就完畢了。啟動Visual Studio,在菜單欄選擇工具->選項,在左側找到Xamarin->Android設置,將Android SDK位置設置為你存放SDK的路徑,直至路徑左側顯示綠色對勾:

微軟Xamarin:采用C#的安卓開發環境搭建(6)

這一步完成後,Visual Studio應該就能正確編譯Android應用了(如果您擁有合適版本的安卓手機,並已經打開了USB調試,那麼請直接跳到4,不用看下一節)。但是在測試環境被搭建好之前,我們還無法對其的工作進行測試。

3、測試用虛擬機推薦

本節針對沒有可用的安卓測試機的讀者。

虛擬機是測試的關鍵。目前常用的開發用虛擬機有:穀歌安卓模擬器(官方),VS Emulator for Android(微軟)。但是對於一般的計算機,我並不推薦上述兩種:穀歌安卓模擬器運行效率向當低,而微軟的安卓虛擬機複雜的網絡共享方式不僅可能不會正常工作,甚至還會使主機產生麻煩的網絡問題。這裏我推薦一種基於Virtual Box的安卓虛擬機:Genymotion。Genymotion的個人版是免費的,而且運行起來相當高效,很適合作為測試用虛擬機。安裝方式很傻瓜,我在此不作贅述,但是需要注意的是,Genymotion攜帶的Virtual Box版本過低不能正確運行在Windows10創意者更新上,所以推薦安裝不攜帶Virtual Box的版本,然後手動安裝Virtual Box的最新版本。

安裝完畢之後,創建一個虛擬機,確保它能正常運行,這樣你就擁有了一個不算專業,但可用的測試環境。

4、Hello, Android!

上述環境搭建完畢,是時候來嚐試編寫我們的第一個采用C#的Android程序了。啟動Visual Studio,新建一個項目,看,Android的所有項目類型都可用了:

微軟Xamarin:采用C#的安卓開發環境搭建(7)

不同的是,它們的語言類型是C#。甚至,你還可以采用Xamarin.Forms技術同時編寫三個平台的應用:

微軟Xamarin:采用C#的安卓開發環境搭建(8)

不過這裏,我們還是新建一個普通的空白Android應用程序,耐心等待解決方案被創建完畢,觀察解決方案管理器,你會發現某些地方,這個項目的結構和一個普通的Android應用很相似:

微軟Xamarin:采用C#的安卓開發環境搭建(9)

不同的是,代碼采用了C#。我們修改那個Main.axml,讓它看起來是這個樣子:

微軟Xamarin:采用C#的安卓開發環境搭建(10)

這和普通的Android UI編寫方式大同小異。我們雙擊打開MainActivity.cs,眼前是熟悉的C#代碼:

微軟Xamarin:采用C#的安卓開發環境搭建(11)

需要指出的是,雖然這個例子我們體會不到跨平台的便利性,但是上麵的using指令除了可以引用安卓特有的、位於Android空間下的名稱空間以外,標準的.NET框架所包含的System名稱空間也幾乎全是可用的,這造就了Xamarin最大的優勢,即可以跨平台共享代碼:

微軟Xamarin:采用C#的安卓開發環境搭建(12)

我們編寫OnCreate方法:

微軟Xamarin:采用C#的安卓開發環境搭建(13)

並且編寫一個事件處理程序(技巧:λ表達式):

這樣,我們的第一個用C#編寫的Android應用就編寫好了。啟動虛擬機,或者把測試用手機連接至計算機(記得打開USB調試,虛擬機就不用了),等待正確連接之後,打開“運行”按鈕右側的下拉菜單選擇你的設備,理論上,正常連接後它會顯示你設備的名字:

執行我們的應用。編譯過程和部署過程可能需要花費一定的時間,依各人計算機性能決定:

微軟Xamarin:采用C#的安卓開發環境搭建(14)微軟Xamarin:采用C#的安卓開發環境搭建(15)

你可以像調試一個普通的C#程序一樣給它加斷點、監視和使用其它強大的調試工具:

微軟Xamarin:采用C#的安卓開發環境搭建(16)

如果你能做到上述幾點,那麼恭喜你,你的采用C#的安卓開發環境搭建完成了。你可以嚐試在代碼文件裏編寫你熟悉的C#語言,即使你完全沒接觸過Android開發,你也能輕易做出一個頗具規模的Android應用程序。iOS可以采用相同的方式開發,但是你必須擁有一台Mac作為渲染和調試服務器,這也許是蘋果公司的策略導致的。

如果你需要在Android和iOS平台上(也許會包括UWP平台)同時維護移動應用,Xamarin絕對是個省時省力的選擇;即使你隻需要開發某一個特定平台的應用,Xamarin也不失為一個優秀的平台。

上一篇:Windows 10創意者更新了這麼多功能,可惜我還沒收到? 下一篇:微軟公布Windows更新策略 每年3月和9月重大升級

相關資訊

最新熱門應用

電腦問答