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功能修改失敗):

單擊修改按鈕,讓它完成修改過程。
由於剛剛去掉了Android SDK的安裝,我們的Xamarin雖然可以編寫代碼,但是卻不能編譯和調試。現在我們來手動獲取Android SDK。
登錄Android開發工具中國鏡像網站http://m.androiddevtools.cn/,頁麵下方會有鏡像站的安卓開發工具下載地址:

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

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

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

填好之後,Close關掉這個窗口,在主界麵菜單欄選擇Packages->Reload,這樣就能獲得工具包列表,並且可以正確執行安裝了。安卓各平台對應的SDK Platform根據需要安裝,但是這幾項是必須安裝的:
等待安裝完成,SDK的配置就完畢了。啟動Visual Studio,在菜單欄選擇工具->選項,在左側找到Xamarin->Android設置,將Android SDK位置設置為你存放SDK的路徑,直至路徑左側顯示綠色對勾:

這一步完成後,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的所有項目類型都可用了:

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

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

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

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

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

我們編寫OnCreate方法:

並且編寫一個事件處理程序(技巧:λ表達式):
這樣,我們的第一個用C#編寫的Android應用就編寫好了。啟動虛擬機,或者把測試用手機連接至計算機(記得打開USB調試,虛擬機就不用了),等待正確連接之後,打開“運行”按鈕右側的下拉菜單選擇你的設備,理論上,正常連接後它會顯示你設備的名字:
執行我們的應用。編譯過程和部署過程可能需要花費一定的時間,依各人計算機性能決定:


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

如果你能做到上述幾點,那麼恭喜你,你的采用C#的安卓開發環境搭建完成了。你可以嚐試在代碼文件裏編寫你熟悉的C#語言,即使你完全沒接觸過Android開發,你也能輕易做出一個頗具規模的Android應用程序。iOS可以采用相同的方式開發,但是你必須擁有一台Mac作為渲染和調試服務器,這也許是蘋果公司的策略導致的。
如果你需要在Android和iOS平台上(也許會包括UWP平台)同時維護移動應用,Xamarin絕對是個省時省力的選擇;即使你隻需要開發某一個特定平台的應用,Xamarin也不失為一個優秀的平台。
相關資訊
最新熱門應用
雲比特交易所app
其它軟件14.54 MB
下載
芝麻app交易平台官網安卓
其它軟件223.89MB
下載
薄餅交易所app地址中文版
其它軟件287.34 MB
下載
gate.io蘋果交易平台
其它軟件287.34 MB
下載
ambc交易所app
其它軟件34.95 MB
下載
hopoo交易平台
其它軟件18.98MB
下載
比特國際數字交易所app
其它軟件163.20M
下載
安幣交易所app最新版官方
其它軟件178.1M
下載
v8國際交易所app
其它軟件223.89MB
下載
中幣交易app蘋果版
其它軟件223.89MB
下載