真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Xamarin技術(shù)全解析-創(chuàng)新互聯(lián)

Xamarin 是一套基于C#語言的跨平臺(tái)移動(dòng)應(yīng)用開發(fā)工具,今年2月份微軟宣布收購(gòu)Xamarin,而后在4月份進(jìn)行的Build大會(huì)上微軟宣布將會(huì)在各個(gè)版本的Visual Studio中免費(fèi)提供Xamarin,并且宣布Xamarin SDK開源。

創(chuàng)新互聯(lián)是一家專注于做網(wǎng)站、成都網(wǎng)站建設(shè)與策劃設(shè)計(jì),南通網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十余年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:南通等地區(qū)。南通做網(wǎng)站價(jià)格咨詢:18980820575

本文主要闡述Xamarin是什么,它能做什么以及它是如何跨平臺(tái)的。

1. 什么是Xamarin

Xamarin 是一個(gè)跨平臺(tái)的移動(dòng)開發(fā)工具,由 Mono 發(fā)展而來。開發(fā)人員可以使用 C# 為iOS,Android, Mac以及Windows Phone開發(fā)原生應(yīng)用。

Xamarin 的跨平臺(tái)開發(fā)思路是:使用 C# 來完成所有平臺(tái)共用的,和平臺(tái)無關(guān)的 app 邏輯部分;由于各個(gè)平臺(tái)的 UI 和交互不同,再使用由 Xamarin 封裝好的 C# API 來訪問和操控 native 的控件,分別進(jìn)行不同平臺(tái)的 UI 開發(fā)。

如下圖:

Xamarin 技術(shù)全解析

另外Xamarin還提供了Xamarin.Forms UI工具包,Xamarin.Forms可以幫助開發(fā)人員快速的構(gòu)建跨平臺(tái)的UI,通過一次編碼,生成多個(gè)平臺(tái)的原生UI界面,稍后本文會(huì)講述Xamarin.Forms的使用方法以及實(shí)現(xiàn)原理。

2. Xamarin能做什么

Xamarin主要由Xamarin.iOS,Xamarin.Android以及Xamarin.Forms組成,主要功能也有著三部分組成:

2.1 使用Xamarin.iOS來構(gòu)建iOS原生應(yīng)用

下面會(huì)使用Mac OS X上的Xamarin Studio來演示如何構(gòu)建iOS應(yīng)用:

- 打開Xamarin Studio

- 新建一個(gè)項(xiàng)目,選擇iOS - App - Single View App

 Xamarin 技術(shù)全解析

- 點(diǎn)擊下一步,輸入App 名稱, 例如:FirstXamariniOS,一路點(diǎn)擊下一步,工程創(chuàng)建完成。

下面是生成的iOS工程結(jié)構(gòu)截圖:

Xamarin 技術(shù)全解析

如果有Xcode使用經(jīng)驗(yàn)的話會(huì)發(fā)現(xiàn),這個(gè)Xamarin iOS工程的項(xiàng)目結(jié)構(gòu)與Xcode的結(jié)構(gòu)很類似,都包含了AppDelegate類,默認(rèn)的ViewController以及Main StoryBoard文件,基本的類名稱都是一致的。

打開Main.storyboard 文件,可以從Toolbox上拖拽一些原生控件到View Controller上,與Xcode中使用方式一致,但是有一些功能沒有Xcode 強(qiáng)大,比如設(shè)置View的Auto layout等等,如下圖:

Xamarin 技術(shù)全解析

運(yùn)行上面的工程,就可以在模擬器中查看效果了。

從上面來看來說使用Xamarin進(jìn)行iOS編程需要有一定的iOS App開發(fā)知識(shí),需要熟悉iOS UI框架(Cocoa Touch)等等,即便使用Xamarin開發(fā)應(yīng)用,也繞不過原生底層的這些東西。

2.2 使用Xamarin.Android來構(gòu)建Android原生應(yīng)用

下面會(huì)使用Mac OS X上的Xamarin Studio來演示如何構(gòu)建iOS應(yīng)用:

- 打開Xamarin Studio

- 新建一個(gè)項(xiàng)目,選擇Android - App - Android App

 Xamarin 技術(shù)全解析

- 點(diǎn)擊下一步,輸入App 名稱, 例如:FirstXamarinAndroid,一路點(diǎn)擊下一步,工程創(chuàng)建完成。

下面是生成的Android工程結(jié)構(gòu)截圖:

 Xamarin 技術(shù)全解析

如果有Eclipse進(jìn)行Android編程經(jīng)驗(yàn)的話會(huì)發(fā)現(xiàn),這個(gè)Xamarin Android工程的項(xiàng)目結(jié)構(gòu)與Eclipse的結(jié)構(gòu)很類似,都包含了默認(rèn)的MainActivity以及布局文件,基本的類名稱都是一致的。

打開Main.axml文件,可以從Toolbox上拖拽一些原生控件到View Controller上,與Eclipse的體驗(yàn)類似,也可以通過編輯XML的方式更改界面。

同樣從上面來看來說使用Xamarin進(jìn)行Android編程需要有一定的Android App開發(fā)知識(shí),需要熟悉Android UI框架等等,原生底層的東西還是需要熟悉的。

2.3 使用Xamarin.Forms來構(gòu)建跨平臺(tái)的應(yīng)用

Xamarin.Forms 是一個(gè)創(chuàng)建跨平臺(tái)用戶界面的庫(kù),通過Xamarin.Forms 可以一次編碼生成基于各個(gè)移動(dòng)平臺(tái)(iOS, Android, Windows Phone)的應(yīng)用界面。

Xamarin.Forms提供了更高層次的一層UI組件抽象,這些組件在進(jìn)行最終呈現(xiàn)的時(shí)候,會(huì)以原生控件的方式表現(xiàn)出來,也就是說每一個(gè)Xmarin.Forms的控件最終會(huì)有多個(gè)平臺(tái)的原生呈現(xiàn)邏輯,如下圖中,Xamarin.Forms的Entry控件,對(duì)應(yīng)的原生呈現(xiàn)為:

 Xamarin 技術(shù)全解析

使用Xamarin.Forms構(gòu)建跨平臺(tái)應(yīng)用的一個(gè)缺陷就是只能使用Xamarin.Forms包中的控件,會(huì)有一些限制。

如果先了解更多關(guān)于如何使用Xamarin.Forms構(gòu)建跨平臺(tái)應(yīng)用,請(qǐng)參見文章:Xamarin.Forms入門-使用 Xamarin.Forms 來創(chuàng)建跨平臺(tái)的用戶界面。

3. Xamarin實(shí)現(xiàn)原理

3.1 Xamarin.Android 實(shí)現(xiàn)原理

在講述Xamarin.Android架構(gòu)之前,需要先了解一些Android應(yīng)用程序的背景知識(shí):

- Android應(yīng)用程序試運(yùn)行在Dalvik虛擬機(jī)中的,每一個(gè)應(yīng)用程序?qū)?yīng)一個(gè)單獨(dú)的虛擬機(jī)實(shí)例,其代碼在虛擬機(jī)的解釋下得以執(zhí)行。

- Dalvik主要是完成對(duì)象生命周期管理,堆棧管理,線程管理,安全和異常管理,以及垃圾回收等等重要功能。

- 不同于Java虛擬機(jī)運(yùn)行java字節(jié)碼,Dalvik虛擬機(jī)運(yùn)行的是其專有的文件格式

Xamarin.Android架構(gòu)圖(ART 是Android 虛擬機(jī)Dalvik):

Xamarin 技術(shù)全解析

Android Callable Wrappers(ACW)

使用C#開發(fā)的Android應(yīng)用程序在運(yùn)行的時(shí)候,C#代碼是在Mono虛擬機(jī)中執(zhí)行的,而Mono虛擬機(jī)是寄宿在Dalvik虛擬機(jī)中運(yùn)行的,所有的C#代碼都通過ACW的方式被調(diào)用。

由于需要打包Mono環(huán)境,使用C#開發(fā)的Android應(yīng)用的APK文件會(huì)比原生開發(fā)的大,執(zhí)行效率也會(huì)差一些。

Managed Callable Wrapper(MCW)

如果需要在C#中調(diào)用一些系統(tǒng)的功能或者Java實(shí)現(xiàn)的類庫(kù),該如何調(diào)用那? 答案就是MCW,MCW就是一個(gè)JNI橋梁,可以使用托管代碼調(diào)用Android的代碼。MCW將整個(gè)Android.* 以及相關(guān)的命名空間通過 jar綁定的方式暴露出來,是的C#可以調(diào)用。

3.2 Xamarin.iOS 實(shí)現(xiàn)原理

對(duì)于開發(fā)者來說,Xamarin.IOS相對(duì)于Xamarin.Android就要簡(jiǎn)單很多了,我們用C#開發(fā)的iOS應(yīng)用程序在被編譯成IL代碼之后,然后轉(zhuǎn)交給Apple complier直接編譯成iOS的本地機(jī)器碼,也就是說C#寫的iOS應(yīng)用程序和Objective-C 寫的是一樣的。

透過 Ahead-of-Time (AOT) 編譯程序,直接將Xamarin.iOS程序編譯為ARM的執(zhí)行檔。編譯封裝完成的應(yīng)用程序被直接編譯為原生的二進(jìn)制執(zhí)行文件。

 Xamarin 技術(shù)全解析

3.3 Xamarin.Forms實(shí)現(xiàn)原理

在Xamarin Studio中構(gòu)建Xamarin.Forms跨平臺(tái)的應(yīng)用的時(shí)候,會(huì)生成Android以及iOS單獨(dú)的項(xiàng)目工程,兩者共享業(yè)務(wù)邏輯以及一些UI界面,在打包生成App的時(shí)候,是分開進(jìn)行的,兩者互不影響。每個(gè)平臺(tái)的實(shí)現(xiàn)原理與上面講的是一樣的。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。


網(wǎng)站欄目:Xamarin技術(shù)全解析-創(chuàng)新互聯(lián)
鏈接分享:http://weahome.cn/article/jhocg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部