Xamarin體驗:使用C#開發iOS/Android應用
Xamarin是Mono創始人Miguel de Icaza建立的公司,旨在讓開發者可以用C#編寫iOS, Android, Mac應用程式,也就是跨平臺移動開發。
簡介
- 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不知道跑哪去了…
介面設計器
而iOS則沒有這麼好運了,Xamarin for Visual Studio沒有設計器。而Xamarin Studio雖然有設計器提供,不過目前也只提供在iOS上的Xamarin Studio alpha版本,估計目前穩定性還不夠,具體見:http://docs.xamarin.com/guides/ios/user_interface/designer/,只好期待未來能夠提供。
工作方式
Android應用程式會被編譯為IL程式碼,啟動時再進行JIT編譯(動態編譯),釋出程式的時候會包含一個mono runtime。
而iOS則是直接通過AOT編譯(靜態編譯)為ARM彙編程式碼。
API文件
Xamarin提供了API文件:
安裝
Xamarin Studio
- 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.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的模擬器進行除錯。
- 在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”。
然後就可以除錯了,某些情況可能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生成專案及檔案模板快取
現在就可以在VS2013上開發Android及iOS應用了。
最後,順便推薦兩本書:
--EOF--