如果是.NET開發人員,想學習手機應用開發(Android和iOS),Xamarin 無疑是最好的選擇,編寫一次,即可發布到Android和iOS平台,真是利器中的利器啊!而且,Xamarin已經被微軟收購並被大力推廣,.NET開發人員將時間投資在Xamarin上,以應對移動開發的熱潮,應該是值得的。
好了,廢話不多說,就開始吧。本系列文章將詳細介紹如何使用Xamarin開發出一個簡單的即時通信IM聊天系統(文末有源碼下載,可先睹為快),本文作為第一篇基礎篇,將着重介紹Xamarin Android和Xamarin iOS環境的搭建,包括安裝、設置、模擬器、部署、運行調試等。本系列后面的文章將詳細介紹手機聊天系統結構原理和具體代碼實現。
一.搭建環境
1. 安裝 Xamarin。
VS2017已經集成了Xamarin,只要在安裝的時候,將“使用.NET的移動開發”選項勾選上,即可。
2.設置Xamarin Android。
(1)啟動VS 2017之后,打開菜單 工具->選項->Xamarin->Android設置,在設置面板上做如下設置:
(2)使用 Genymotion 作為安卓模擬器。
3.設置Xamarin iOS。
(1)在我的MacBook筆記本上安裝 Visual Studio for Mac。
(2)在MacBook的系統偏好設置 中找到“共享”選項,打開“共享”界面如下。 開啟遠程管理和遠程登錄。
(3)在PC端VS “工具” 選擇卡中依次選擇 IOS ->Xamarin.Mac代理,點擊左下方的“Add Server”按鈕,輸入對應遠程Macbook機器的IP,並進行登錄。
(4)登錄成功后,界面上會顯示如下鏈接的圖標表示遠程成功。
(5)連接成功后,在VS中就可以進行調試MAC機器上的模擬器或者真機了。
(6)在PC端VS中,打開菜單 工具->選項->Xamarin->iOS設置,在設置面板上做如下設置:
二. 新建Xamarin.Forms項目、編譯
Xamarin.Forms 是Xamarin提供的一個套件,用於跨移動平台的Form應用開發,所以,如果是使用Xamarin開發App,那么,Xamarin.Forms 將是很好的選擇。
1.新建一個Cross-Platform跨平台項目,選擇Cross Platform App(Xamarin)。
2.項目新建成功后,會在解決方案管理器中,生成三個項目。
XamarinDemo 項目是可移植的類庫,App的絕大部分邏輯和UI都是在其中完成。
XamarinDemo.Droid 項目對應了安卓版本,XamarinDemo.iOS 項目對應了iOS版本,它們都引用了 ESFramework.XamarinDemo 項目。
對於一般簡單的應用而言,只需要在XamarinDemo中編寫代碼就可以了,XamarinDemo.Droid 和 XamarinDemo.iOS中的代碼只需要做少量修改。
3.編譯 XamarinDemo.Droid 項目
在解決方案管理器中選中 XamarinDemo.Droid 項目,右鍵->屬性,打開設置面板。
在項目屬性面板中,要選擇編譯所使用的安卓SDK的版本號,我選擇的是最新6.0。
4.編譯 XamarinDemo.iOS 項目
在解決方案管理器中選中 XamarinDemo.iOS項目,右鍵->屬性,打開設置面板。
在項目屬性面板中,選擇編譯所支持的CPU體系結構,由於現在是使用iOS模擬器,所以選擇x86_64。
如果是使用真機調試,則應該選擇 ARMv7+ARMv7s+ARM64。
三.部署、調試
編譯成功后,就可以嘗試部署到虛擬機,並運行調試了。
1. 安卓版本
(1)啟動安卓虛擬機。
運行上述的Genymotion。
選擇6.0的虛擬機,點擊Start按鈕運行起來。
(2)部署
在VS上的工具欄,選擇剛才啟動的虛擬機實例Genymotion Custom Phone - 6.0.0,點擊調試按鈕(綠色的三角形),即可開始部署、運行的流程。(注意,要選擇Debug模式)
(3)調試
部署運行成功后,模擬器就會顯示demo App 的UI界面:
此時,可以在源碼中加入斷點開始調試程序了。
2.iOS版本
(1)啟動虛擬機
(2)在VS上的工具欄,選擇iPhone 6 Plus iOS 11.2,點擊調試按鈕(綠色的三角形),即可開始部署、運行的流程。
(3)調試
部署運行成功后,模擬器就會顯示如下Demo的登錄界面:
四.源碼下載
雖然還未正式開始介紹聊天程序的代碼實現,但是還是先將demo的源碼分享給大家,基於以上介紹的內容,大家已經可以將demo運行起來看效果了。並且,源碼中除了Xamarin移動端外,還包含了聊天服務端和PC客戶端以及WebSocket客戶端,而且,Xamarin移動端和PC客戶端以及Web端之間都可以相互聊天哦!
下面是手機端運行的效果圖:
(1)源碼:服務端+PC客戶端 (基於VS 2010)
(2)源碼:Xamarin 移動端(包括Android 和 iOS) (基於VS 2017)
最后,在使用Xamarin開發本Demo的過程中,踩過了很多很多的“坑”,對這些坑的解決方案我們也會在本系列的文章中分享出來,如此能為后來者節省一些時間。敬請期待!
敬請了解:
ESFramework通信框架 OMCS網絡語音視頻框架 MFile語音視頻錄制組件 MCapture語音視頻采集組件 StriveEngine輕量級通信引擎 OAUS 自動升級系統