Xamarin 讀 「ˈzæmərin」,是一個基於開源項目mono的可使用C#開發的收費的跨平臺(iOS、Android、Windows Phone、Mac)解決方式。
1.原理
Xamarin.iOS:
也就是以前的 MonoTouch(Mono for iOS),
使⽤靜態編譯(Ahead-Of-Time)⽅式將C#代碼編譯爲 ARM⼆進制代碼。
Xamarin.Android:
即以前的MonoDroid(Mono for Android) 。是
將C# 代碼編譯成IL封裝到MonoVM+JIT.
2.優劣勢
在Xamarin2.0下開發跨平臺應用,最可能是邏輯層和數據訪問層的代碼可以共用,而最花費時間的界面搭建則需要針對不一樣的平臺進行訂製。
當時Xamarin的優點是C#開發者不需要再學習java和Objective-C了,缺點是需要了解各個平臺界面的API,實際能節省下來的工做量並很少。java
幸運的是Xamarin3.0帶來了
Xamarin.Fo
rms,界面部分也能共享一套代碼了。真正能夠達到「write your code once, and present native UIs on each platform.」(一次編寫。在各平臺使用原生控件展示)的效果。這也是Xamarin最吸引個人地方。眼下CSDN爲Xamarin在中國大陸的代理,正在開展一些對應的培訓。設計模式
固然,有優點確定也有劣勢。眼下
Xa
marin.Forms的版本號爲1.2.2 Prerelease 3 版。b
ug至關多(但更新較快)。提供的控件很少,最主要的Radio Button和CheckBox沒有(官方解釋:這兩個不是每個平臺都有的控件),需要本身重寫Renderer。在Android平臺上,使用Xamarin.Forms開發略微複雜些的應用。啓動速度較慢。讓人不得不爲它設計一個啓動界面。還有就是Xamarin的中文文檔差點兒沒有,當中大部分資料來自臺灣。CSDN上的論壇才20條帖子...眼下有問題比較靠譜的解決方法是在它的官方論壇或者加QQ羣:385020493提問。async
3.開發環境
Xamarin可以在Windows和Mac上進行開發:
Windows: Xamarin Studio 或 Xamarin for Visual Studio(2010 -2013) Plugin(推薦)
Mac:
Xamarin Studio
4.技術基礎
C#基礎,能夠建立WCF、rest服務、掌握C#5.0,.net4.5後async、awaitkeyword。學過Silverlight或wpf的最好:因爲它們佈局文件都使用xaml。包含設計模式也是一樣的MVVM,瞭解Binding數據綁定、Command命令、DI依賴注入、DP依賴屬性等等內容。佈局
5.系統支持
- Android 4.0 or higher
- iOS 6.1 or higher
- Windows Phone 8 (using Visual Studio)