若是是.NET開發人員,想學習手機應用開發(Android和iOS),Xamarin 無疑是最好的選擇,編寫一次,便可發佈到Android和iOS平臺,真是利器中的利器啊!並且,Xamarin已經被微軟收購併被大力推廣,.NET開發人員將時間投資在Xamarin上,以應對移動開發的熱潮,應該是值得的。html
好了,廢話很少說,就開始吧。本系列文章將詳細介紹如何使用Xamarin開發出一個簡單的即時通訊IM聊天系統(文末有源碼下載,可先睹爲快),本文做爲第一篇基礎篇,將着重介紹Xamarin Android和Xamarin iOS環境的搭建,包括安裝、設置、模擬器、部署、運行調試等。本系列後面的文章將詳細介紹手機聊天系統結構原理和具體代碼實現。網絡
1. 安裝 Xamarin。框架
VS2017已經集成了Xamarin,只要在安裝的時候,將「使用.NET的移動開發」選項勾選上,便可。工具
2.設置Xamarin Android。學習
(1)啓動VS 2017以後,打開菜單 工具->選項->Xamarin->Android設置,在設置面板上作以下設置:spa
(2)使用 Genymotion 做爲安卓模擬器。.net
3.設置Xamarin iOS。3d
(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提供的一個套件,用於跨移動平臺的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)啓動安卓虛擬機。
運行上述的Genymotion。
選擇6.0的虛擬機,點擊Start按鈕運行起來。
(2)部署
在VS上的工具欄,選擇剛纔啓動的虛擬機實例Genymotion Custom Phone - 6.0.0,點擊調試按鈕(綠色的三角形),便可開始部署、運行的流程。(注意,要選擇Debug模式)
(3)調試
部署運行成功後,模擬器就會顯示demo App 的UI界面:
此時,能夠在源碼中加入斷點開始調試程序了。
(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 自動升級系統