Xamarin體驗:使用C#開發(fā)iOS/Android應(yīng)用

http://www.cnblogs.com/lwme/p/use-xamarin-develop-Android-iOS-app.html

Xamarin是Mono創(chuàng)始人Miguel de Icaza創(chuàng)建的公司,旨在讓開發(fā)者可以用C#編寫iOS, Android, Mac應(yīng)用程序十办,也就是跨平臺移動開發(fā)

簡介

Xamarin是基于Mono的平臺蛛勉,目前主要有以下產(chǎn)品(更具體請見:http://xamarin.com/products):

Xamarin Studio:IDE黔衡,是從原來的MonoDevelop改名而來〗埽現(xiàn)在從MonoDevelop官方網(wǎng)站下載的其實也是Xamarin Studio:http://monodevelop.com/祝峻。 (話說MonoDevelop也是SharpDevelop的一個分支發(fā)展而來)

Xamarin.iOS:原名MonoTouch,用于開發(fā)iOS應(yīng)用程序堵漱,并且可以發(fā)布到app store上。

Xamarin.Mac:用于開發(fā)mac os x應(yīng)用程序涣仿,類似于windows 桌面應(yīng)用勤庐。

Xamarin.Android:原名MonoDroid/Mono for Android,用于開發(fā)Android應(yīng)用程序好港。

Xamarin for Visual Studio:Visual Studio的插件愉镰,包括iOS和Android,不過目前只支持vs2010/vs2012钧汹。

Xamarin Test Cloud:測試云丈探,可以把你的應(yīng)用程序發(fā)布到Xamarin的云上面測試,它可以自動幫你在數(shù)百種設(shè)備上測試你的應(yīng)用程序拔莱。

Component Store:組件商店碗降,上面有各種收費/免費的控件提供下載。

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

界面設(shè)計器

對于Android塘秦,不管是Xamarin Studio還是Xamarin for Visual Studio讼渊,都有提供一個設(shè)計器,方便直接對界面進(jìn)行設(shè)計尊剔,具體見:http://docs.xamarin.com/guides/android/user_interface/designer_overview/爪幻。

而iOS則沒有這么好運了,Xamarin for Visual Studio沒有設(shè)計器须误。而Xamarin Studio雖然有設(shè)計器提供挨稿,不過目前也只提供在iOS上的Xamarin Studio alpha版本,估計目前穩(wěn)定性還不夠京痢,具體見:http://docs.xamarin.com/guides/ios/user_interface/designer/奶甘,只好期待未來能夠提供。

已經(jīng)安裝了Xamarin Studio或者Visual Studio的可以直接通過切換通道來更新:http://docs.xamarin.com/recipes/cross-platform/ide/change_updates_channel/历造,目前主要有Stable穩(wěn)定版甩十、Beta測試版、以及alpha版吭产。

工作方式

Android應(yīng)用程序會被編譯為IL代碼侣监,啟動時再進(jìn)行JIT編譯(動態(tài)編譯),發(fā)布程序的時候會包含一個mono runtime臣淤。

而iOS則是直接通過AOT編譯(靜態(tài)編譯)為ARM匯編代碼橄霉。

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

API文檔

Xamarin提供了API文檔:

Android:http://androidapi.xamarin.com/?link=root%3a%2fMonoAndroid-lib

iOS:http://iosapi.xamarin.com/?link=root%3a%2fMonoTouch-lib

安裝

Xamarin Studio

Xamarin Studio可以直接從http://monodevelop.com/Download下載,目前最新的穩(wěn)定版為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)或者M(jìn)DK(Mono DevelopmentKit)安裝钱慢。MRE和MDK都包含GTK#和MONO逮京。

Android

android依賴JDK6以及android SDK,所以需要先下載:

JDK6:http://www.oracle.com/technetwork/java/javase/downloads/jdk6downloads-1902814.html

android SDK及NDK:http://developer.android.com/sdk束莫,其中NDK不是必須的懒棉。

Xamarin.Android:http://xamarin.com/download

安裝好JDK及androidSDK之后,再安裝Xamarin.Android览绿,會讓你選擇是否安裝Visual Studio插件策严。

安裝好Visual Studio插件之后,在菜單Tools->Options->Xamarin->Android Settings設(shè)置好Android SDK和NDK的路徑饿敲。

額外說一句妻导,eclipse實在是太差勁,跟intellij IDEA沒法比怀各,如果用Java開發(fā)的話Android Studio是最佳選擇倔韭,ADT就不用考慮了。

Android模擬器及調(diào)試

由于android SDK提供的模擬器是在是巨慢無比渠啤,太差勁了狐肢,所以不得不找一個替代品。

基于Virtual Box的GenyMotion絕對是最佳選擇沥曹,運行速度非常流暢份名,不過目前只支持Android4.1.1、4.2.2妓美。

在官網(wǎng):http://www.genymotion.com/注冊好賬號僵腺,并下載安裝GenyMotion,目前最新版本為1.3.0壶栋。

安裝之前需要你的電腦上已經(jīng)安裝Virtual Box(目前最新版為4.3.2)辰如,不過我發(fā)現(xiàn)我安裝了Virtual Box 4.3.2的情況下GenyMotion無法啟動,所以后來又換成官方推薦的4.2.12贵试,從https://www.virtualbox.org/wiki/Download_Old_Builds_4_2下載琉兜。

安裝完成之后:

通過”Settings”按鈕:設(shè)置好Android

SDK路徑,并勾選”When a virtual devices starts, connect it automatically to

ADB”,”ADB from Android Developer Tools successfully found”毙玻。

通過“Add”按鈕

添加設(shè)備豌蟋,然后需要登錄

如果所選的設(shè)備鏡像沒有下載,則需要在線下載某個設(shè)備的vbox鏡像桑滩,一般鏡像大小為200M梧疲。

通過向?qū)崾咎砑犹摂M機(jī),輸入名稱如“l(fā)wme Nexus S - 4.2.2 - with Google Apps - API 17 - 480x800”,再等待虛擬機(jī)創(chuàng)建好

通過“Play”按鈕運行虛擬機(jī)

虛擬機(jī)啟動之后幌氮,VS的Xamarin.Android工具欄會列出設(shè)備的名稱缭受,選擇這個設(shè)備就可以在GenyMotion模擬器上調(diào)試Android應(yīng)用程序了。

iOS on mac

在mac os x要使用Xamarin Studio必須先安裝XCode该互。假設(shè)已經(jīng)安裝好Xamarin Studio米者,那么也一樣直接安裝Xamarin.iOS即可,然后就可以直接通過Xamarin Studio直接開發(fā)調(diào)試iOS應(yīng)用程序了宇智。

iOS on windows

windows下的Xamarin.iOS直接安裝即可塘雳,由于沒有windows下的模擬器,所以需要連接到mac的模擬器進(jìn)行調(diào)試普筹。

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

在mac下安裝并激活Xamarin Studio及Xamarin.iOS

在Network->Proxies啟用Web Proxy(HTTP)

關(guān)閉防火墻

還有一個最重要的前提是,你必須有有個iPhone Developer Program(IDP)證書隘马,否則沒辦法調(diào)試太防,沒有的話需要到:https://developer.apple.com/programs/ios/申請(個人開發(fā)者$99每年)。

做好以上操作之后:

在Visual Studio的Tools->Options->Xamarin->iOS Settings->Mac build host->Configure->Configure Host Manually

輸入mac的ip地址酸员,等待mac設(shè)備顯示Ready

再點Connect按鈕連接設(shè)備

連接成功

連接成功之后可能會提示SDK更新蜒车,選擇更新即可,否則會提示版本不匹配無法連上mac

更新成功需要重新開啟vs

Xamarin.iOS的Visual Studio插件調(diào)試有兩種模式:

真機(jī)(iPhone):默認(rèn)幔嗦,需要把iPhone真機(jī)通過usb連到mac上

模擬器(iPhoneSimulator):模擬器調(diào)試

默認(rèn)情況下是iPhone酿愧,可以在Build->Configuration Manager的Platform進(jìn)行更改,否則沒有連接iPhone會顯示”No Devices Attached”邀泉。

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

然后就可以調(diào)試了,某些情況可能mtouch沒有運行權(quán)限汇恤,還需要通過chmod +x /Developer/MonoTouch/usr/bin/mtouch來賦予運行權(quán)限庞钢。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市因谎,隨后出現(xiàn)的幾起案子基括,更是在濱河造成了極大的恐慌,老刑警劉巖财岔,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件风皿,死亡現(xiàn)場離奇詭異,居然都是意外死亡匠璧,警方通過查閱死者的電腦和手機(jī)桐款,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來患朱,“玉大人鲁僚,你說我怎么就攤上這事。” “怎么了冰沙?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵侨艾,是天一觀的道長。 經(jīng)常有香客問我拓挥,道長唠梨,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任侥啤,我火速辦了婚禮当叭,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘盖灸。我一直安慰自己蚁鳖,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布赁炎。 她就那樣靜靜地躺著醉箕,像睡著了一般。 火紅的嫁衣襯著肌膚如雪徙垫。 梳的紋絲不亂的頭發(fā)上讥裤,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天,我揣著相機(jī)與錄音姻报,去河邊找鬼己英。 笑死,一個胖子當(dāng)著我的面吹牛吴旋,可吹牛的內(nèi)容都是我干的损肛。 我是一名探鬼主播,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼邮府,長吁一口氣:“原來是場噩夢啊……” “哼荧关!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起褂傀,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤忍啤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后仙辟,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體同波,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年叠国,在試婚紗的時候發(fā)現(xiàn)自己被綠了未檩。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡粟焊,死狀恐怖冤狡,靈堂內(nèi)的尸體忽然破棺而出孙蒙,到底是詐尸還是另有隱情,我是刑警寧澤悲雳,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布挎峦,位于F島的核電站,受9級特大地震影響合瓢,放射性物質(zhì)發(fā)生泄漏坦胶。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一晴楔、第九天 我趴在偏房一處隱蔽的房頂上張望顿苇。 院中可真熱鬧,春花似錦税弃、人聲如沸纪岁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蜂科。三九已至,卻和暖如春短条,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背才菠。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工茸时, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人赋访。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓可都,卻偏偏與公主長得像,于是被迫代替她去往敵國和親蚓耽。 傳聞我的和親對象是個殘疾皇子渠牲,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內(nèi)容