Xamarin體驗:使用C#開發iOS/Android應用

原文:Xamarin體驗:使用C#開發iOS/Android應用html

Xamarin是Mono創始人Miguel de Icaza建立的公司,旨在讓開發者能夠用C#編寫iOS, Android, Mac應用程序,也就是跨平臺移動開發。java

 

簡介

Xamarin是基於Mono的平臺,目前主要有如下產品(更具體請見:http://xamarin.com/products):node

  • Xamarin Studio:IDE,是從原來的MonoDevelop更名而來。如今從MonoDevelop官方網站下載的其實也是Xamarin Studio:http://monodevelop.com/。 (話說MonoDevelop也是SharpDevelop的一個分支發展而來)
  • Xamarin.iOS:原名MonoTouch,用於開發iOS應用程序,而且能夠發佈到app store上。
  • Xamarin.Mac:用於開發mac os x應用程序,相似於windows 桌面應用。
  • Xamarin.Android:原名MonoDroid/Mono for Android,用於開發Android應用程序。
  • Xamarin for Visual Studio:Visual Studio的插件,包括iOS和Android,不過目前只支持vs2010/vs2012。
  • Xamarin Test Cloud:測試雲,能夠把你的應用程序發佈到Xamarin的雲上面測試,它能夠自動幫你在數百種設備上測試你的應用程序。
  • Component Store:組件商店,上面有各類收費/免費的控件提供下載。

話說還有windows phone不知道跑哪去了…android

 

界面設計器

對於Android,不論是Xamarin Studio仍是Xamarin for Visual Studio,都有提供一個設計器,方便直接對界面進行設計,具體見:http://docs.xamarin.com/guides/android/user_interface/designer_overview/ios

而iOS則沒有這麼好運了,Xamarin for Visual Studio沒有設計器。而Xamarin Studio雖然有設計器提供,不過目前也只提供在iOS上的Xamarin Studio alpha版本,估計目前穩定性還不夠,具體見:http://docs.xamarin.com/guides/ios/user_interface/designer/,只好期待將來可以提供。windows

已經安裝了Xamarin Studio或者Visual Studio的能夠直接經過切換通道來更新:http://docs.xamarin.com/recipes/cross-platform/ide/change_updates_channel/,目前主要有Stable穩定版、Beta測試版、以及alpha版。api

 

工做方式

Android應用程序會被編譯爲IL代碼,啓動時再進行JIT編譯(動態編譯),發佈程序的時候會包含一個mono runtime。緩存

而iOS則是直接經過AOT編譯(靜態編譯)爲ARM彙編代碼。oracle

具體見:http://xamarin.com/how-it-worksapp

 

API文檔

Xamarin提供了API文檔:

 

安裝

Xamarin Studio

Xamarin Studio能夠直接從http://monodevelop.com/Download下載,目前最新的穩定版爲4.0.13。

  • Windows版依賴於.NET Framework 4.0和GTK# for .NET 2.12.22,安裝好兩個依賴以後能夠直接安裝Xamarin Studio便可。
  • Mac OSX版依賴於Mono + GTK#,須要先從http://www.go-mono.com/mono-downloads/download.html下載MRE(Mono Runtime)或者MDK(Mono DevelopmentKit)安裝。MRE和MDK都包含GTK#和MONO。

 

Android

android依賴JDK6以及android SDK,因此須要先下載:

安裝好JDK及androidSDK以後,再安裝Xamarin.Android,會讓你選擇是否安裝Visual Studio插件。

安裝好Visual Studio插件以後,在菜單Tools->Options->Xamarin->Android Settings設置好Android SDK和NDK的路徑。

額外說一句,eclipse實在是太差勁,跟intellij IDEA無法比,若是用java開發的話Android Studio是最佳選擇,ADT就不用考慮了。

 

Android模擬器及調試

因爲android SDK提供的模擬器是在是巨慢無比,太差勁了,因此不得不找一個替代品。

基於Virtual Box的GenyMotion絕對是最佳選擇,運行速度很是流暢,不過目前只支持Android4.1.一、4.2.2。

在官網:http://www.genymotion.com/註冊好帳號,並下載安裝GenyMotion,目前最新版本爲1.3.0。

安裝以前須要你的電腦上已經安裝Virtual Box(目前最新版爲4.3.2),不過我發現我安裝了Virtual Box 4.3.2的狀況下GenyMotion沒法啓動,因此後來又換成官方推薦的4.2.12,從https://www.virtualbox.org/wiki/Download_Old_Builds_4_2下載。

安裝完成以後:

  • 經過」Settings」按鈕:設置好Android SDK路徑,並勾選」When a virtual devices starts, connect it automatically to ADB」,」ADB from Android Developer Tools successfully found」。
  • 經過「Add」按鈕
    • 添加設備,而後須要登陸
    • 若是所選的設備鏡像沒有下載,則須要在線下載某個設備的vbox鏡像,通常鏡像大小爲200M。
    • 經過嚮導提示添加虛擬機,輸入名稱如「lwme Nexus S - 4.2.2 - with Google Apps - API 17 - 480x800」,再等待虛擬機建立好
    • 經過「Play」按鈕運行虛擬機

虛擬機啓動以後,VS的Xamarin.Android工具欄會列出設備的名稱,選擇這個設備就能夠在GenyMotion模擬器上調試Android應用程序了。

 

iOS on mac

在mac os x要使用Xamarin Studio必須先安裝XCode。假設已經安裝好Xamarin Studio,那麼也同樣直接安裝Xamarin.iOS便可,而後就能夠直接經過Xamarin Studio直接開發調試iOS應用程序了。

 

iOS on windows

windows下的Xamarin.iOS直接安裝便可,因爲沒有windows下的模擬器,因此須要鏈接到mac的模擬器進行調試。

前提條件是(具體見:http://docs.xamarin.com/guides/ios/getting_started/installation/mac/):

  • 在mac下安裝並激活Xamarin Studio及Xamarin.iOS
  • 在Network->Proxies啓用Web Proxy(HTTP)
  • 關閉防火牆

還有一個最重要的前提是,你必須有有個iPhone Developer Program(IDP)證書,不然沒辦法調試,沒有的話須要到:https://developer.apple.com/programs/ios/申請(我的開發者$99每一年)。

作好以上操做以後:

  • 在Visual Studio的Tools->Options->Xamarin->iOS Settings->Mac build host->Configure->Configure Host Manually
  • 輸入mac的ip地址,等待mac設備顯示Ready
  • 再點Connect按鈕鏈接設備
  • 鏈接成功
    • 鏈接成功以後可能會提示SDK更新,選擇更新便可,不然會提示版本不匹配沒法連上mac
    • 更新成功須要從新開啓vs

Xamarin.iOS的Visual Studio插件調試有兩種模式:

  • 真機(iPhone):默認,須要把iPhone真機經過usb連到mac上
  • 模擬器(iPhoneSimulator):模擬器調試

默認狀況下是iPhone,能夠在Build->Configuration Manager的Platform進行更改,不然沒有鏈接iPhone會顯示」No Devices Attached」。

具體的配置請見:http://docs.xamarin.com/guides/ios/getting_started/introduction_to_Xamarin_iOS_for_visual_studio/

而後就能夠調試了,某些狀況可能mtouch沒有運行權限,還須要經過chmod +x /Developer/MonoTouch/usr/bin/mtouch來賦予運行權限。

 

Visual Studio 2013

Xamarin的Visual Studio插件目前還不支持VS 2013,因此須要在安裝Xamarin的VS插件時把2010和2012全選上 (因爲個人電腦裏只剩2013,而安裝VS2013的時候還會安裝部分VS2010的Shell,因此VS插件會被安裝到VS2010的目錄下)。

接下來須要手動複製一些文件(假如VS2013安裝在C盤的話):

  • 把C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\Extensions\Xamarin 複製到 C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\Extensions\Xamarin
  • 把C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\ProjectTemplates\CSharp目錄下的Android目錄和iOS目錄複製到C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\ProjectTemplates\CSharp
  • 把C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\ItemTemplates\CSharp目錄下的Xamarin.Android目錄和iOS墓道複製到C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\ItemTemplates\CSharp
  • 運行"c:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\devenv.exe" /setup /nosetupvstemplates生成項目及文件模板緩存

上面的方法來自:http://blog.fire-development.com/2013/07/01/install-xamarin-in-vs-2013-preview-1/,再由囧月改造。

如今就能夠在VS2013上開發Android及iOS應用了。

 

更多的資料請看官方Developer Center:http://docs.xamarin.com/

更多中文資料:
http://www.microsoft.com/taiwan/vstudio/Xamarin/
Terry's IT Note:http://www.dotblogs.com.tw/taihon64/Tags/Xamarin/default.aspx
James's Tech Blog:http://www.dotblogs.com.tw/jamestsai/category/9345.aspx
Donma 當麻許:http://www.dotblogs.com.tw/junegoat/Tags/Xamarin/default.aspx
浩呆的技術研究網站:http://www.dotblogs.com.tw/toysboy21/category/9451.aspx

 

最後,順便推薦兩本書:

--EOF--

相關文章
相關標籤/搜索