中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Xamarin有哪些優點

發布時間:2021-10-15 11:48:42 來源:億速云 閱讀:148 作者:iii 欄目:編程語言

這篇文章主要講解了“Xamarin有哪些優點”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Xamarin有哪些優點”吧!

    Xamarin是一項跨平臺開發技術,之前是收費的,而且據說收費不菲,所以使用的人數比較少,在國內幾乎無人問津。后來Xamarin被微軟收購,現已免費開放,相信今后國內的使用人群會大幅地增長,一方面是因為免費的東西總是受人歡迎的,另一方面是Xamarin確實提供了一種比較強大的技術來支持跨平臺開發(這里所指主要是Android和iOS上的開發,但其實不止于此)。

    如今市面上號稱可以提供跨平臺開發的方案很多,比如React Native、PhoneGap、IONIC等,這些方面大多數都是基于HTML和JavaScript等技術實現的跨平臺開發,在開發效率上自然是沒話說,但是這些技術在性能上則遜色于原生的開發技術,而這恰恰是Xamarin得以生存的空間。

    Xamarin聲稱可以獲得不差于原生技術的性能,甚至在某些方面還有可能超越原生,我想這指的應該在是Android方面。我個人分析,原因可能是這樣的。Xamarin使用C#進行開發(好像用F#也可以,不過我沒有試過,據說F#也是一門非常不錯,以后有時間會學習學習),C#默認方法是非虛的,即在子類中要重寫方法,必須在父類中聲明為virtual,而java默認所有方法都是虛方法,所以C#可以減少這方面的開銷。其次的話,可能是微軟畢竟也是老牌的IT公司,在系統軟件方面的優化能力不容小覷,手里的黑科技也是不少,敢說這話應該是有底氣的。當然這不是最重要的,只要能夠在大多數情況獲得近似于原生的性能,便已是非常不錯了。

    Xamarin主要有這么幾項技術,Xamarin.Android、Xamarin.iOS和Xamarin.Forms,此外還有Xamarin.UWP、Xamarin.Windows、Xamarin.WinPhone等,但鑒于目前的市場占有率,后面幾項可以暫時不去理會。

    無論是Xamarin.Android還是Xamarin.iOS,本質都是對原生API做了一層C#的封裝,因此在使用上與原生API會十分相似。這種封裝會結合一些C#的語法特性,讓開發者可以享受C#的語法糖。其中Xamarin.iOS是直接編譯成ARM的二進制代碼,因此執行效率肯定是非常高的。與此不同,Xamarin.Android被編譯成中間語言,Xamarin在APK安裝包中會包含一個mono的運行時,代碼是在mono運行時和安卓本地的運行時上完成工作的,可想而知,這中間需要付出一些開銷,而且會使安裝包體積增大許多,但是考慮到設備的運行空間和存儲空間都在高速增長,這也不能算是一個特別致命的缺點。

    而Xamarin最為關鍵的技術還不是上面的兩項,而是Xamarin.Forms。這項技術把IOS、android、UWP等平臺的GUI進行了一統地抽象,開發者只需要寫一套代碼,編譯器會在編譯時將界面映射到原先控件上,從而獲得原生平臺的外觀和性能。這種做法對于開發者應該是最喜聞樂見的,至少我是如此,相比于那種運行的虛擬層上的跨平臺方式,這種做法性能損耗最少。當然,損耗小并不代表沒有,官方也表示,Xamarin.Forms不適合用于開發圖形界面操作特別復雜且頻繁的應用。遇到這種情況,我們可以用Xamarin.IOS或Xamarin.Android來解決,也就是說Xamarin.Forms可以與Xamarin.IOS或Xamarin.Android在同一個項目結合使用。就以我準備使用Xamarin做輸入法為例,根據Xamarin的特點,我用Xamarin.Forms來做輸入法的設置界面,節省重復開發一套界面和業務邏輯的精力;而用Xamarin.IOS和Xamarin.Android來做輸入法界面,以發揮最大的性能。目前從我實驗的結果看,這個想法是可行的。雖然我最開始的想法是連輸入法界面也用Forms來做,但發現在輸入法界面無法使用Forms編寫的界面(根據我的實驗,Forms的界面應該只能用于制作Activity的界面,而不能做Service的界面,也可能是我不知道應該怎么實現),所以只好退而求其次,不過現在這個結果也是不錯的,畢竟輸入法界面本身對性能的要求就比較高,使用更接近原先代碼的技術自然要好一些。

    至此,我使用Xamarin的意圖已經很明顯了,就是想要用于它實現一個跨平臺的移動輸入法,具體的說是歲寒輸入法。現在首先準備做的是IOS版的,然后再反過來重寫Android版本,如果日后WindowPhone能有起色,并且開放第三放輸入法的權限,那么基于這些代碼實現一個WindowPhone就不會是一件再起爐灶又大費周章的事情。而如果使用原生語言開發的話,那每個平臺都得重寫一套代碼,代價實在太大了,尤其對于個人開發者而言,不堪重負,這也是為什么Xamarin對我來說特別有吸引力的原因。

    跨平臺有跨平臺的方便,自然也有跨平臺的難處,Xamarin也僅僅提供了一種跨平臺開發的手段而已,想要將這個手段發揮好,最大限度地實現對代碼的重用,則需要更高的技巧和更多的思考。因此我不推薦初入開發門道的人選擇Xamarin,在此之前,最好對其中一個平臺及其開發過程有較深的理解。

    Xamarin現在免費開放,顯然這是微軟的移動戰略的一部分,由于自身操作系統在生態環境上的欠缺,迫使微軟去推動跨平臺技術的發展,以希望從其它平臺上借勢,從而反哺自身。在我看來,微軟的移動操作系統不太可能會有轉機,但這不意味著Xamarin作為一項技術沒有希望。“有心栽花花不開,無心插柳柳成蔭”的事情從不鮮見,只要抓住開發者這幫猢猻,微軟這棵大樹便不會倒,相信微軟明白這個道理,作為開發者也不必過于擔心微軟過河拆橋。

感謝各位的閱讀,以上就是“Xamarin有哪些優點”的內容了,經過本文的學習后,相信大家對Xamarin有哪些優點這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

普定县| 呈贡县| 商水县| 二手房| 五莲县| 昌邑市| 乌海市| 浠水县| 雷州市| 广东省| 嘉荫县| 桃园市| 喀喇| 若羌县| 灵台县| 兴宁市| 洪洞县| 达孜县| 齐齐哈尔市| 中山市| 井陉县| 北海市| 和田县| 乐平市| 平乐县| 荃湾区| 平陆县| 阳信县| 安化县| 泾阳县| 东乡| 黄浦区| 金华市| 岳阳县| 深圳市| 郁南县| 宁乡县| 铜陵市| 全南县| 故城县| 梓潼县|