現在做客戶端開發的公司都會面臨一個巨大的問題,那么就是跨平臺。對于目前上市面上的移動設備來說。Android、IOS、WindowsPhone、BlackBattery等等移動設備系統,讓我們在開發適配上都很頭痛。
目前的App跨平臺解決方案主要有基于Html5的網頁App方案和使用第三方語言進行映射的方案。
一、基于瀏覽器Webview的跨平臺
基于WebView的跨平臺解決方案相信大家已經很熟悉了,而使用Web開發對于一個Web開發工程師也是一個輕而一舉的事情。
HTML5方案的主要不足則在于功能和性能方面,這主要是因為HTML5應用的能力嚴重依賴于系統自帶的Web引擎:iOS的UIWebview、Android的Webview等,此類組件的HTML5能力相比Safari for iOS、Chrome for Android都要差一截。
而且,對于原生系統的新能優化,如垃圾回收機制、ListView的復用機制等等,系統級別的優化,對于使用WebView來實現的邏輯,往往很難做到。
另外在Android平臺上,由于系統碎片化比較嚴重,不同Android版本的Webview的HTML5能力也有較大差異,導致相應的HTML5應用一致性難以保證。
當時,目前還是存在業界的幾家公司提供的解決方案如下:
React.js
Fackbook的開源框架,相對于其他的JS框架來說,react js提出了一個極為重要的概念。那就是 Virtual DOM。
在Web開發中,我們總需要將變化的數據實時反應到UI上,這時就需要對DOM進行操作。而復雜或頻繁的DOM操作通常是性能瓶頸產生的原因(如何進行高性能的復雜DOM操作通常是衡量一個前端開發人員技能的重要指標)。React為此引入了虛擬DOM(Virtual DOM)的機制:在瀏覽器端用Javascript實現了一套DOM API。
JqueryMobile
jQuery Mobile是jQuery 在手機上和平板設備上的版本。jQuery Mobile 不僅會給主流移動平臺帶來jQuery核心庫,而且會發布一個完整統一的jQuery移動UI框架。支持全球主流的移動平臺?,F在類似的框架還有:jQTouch、 Sencha Touch 等等。
對于FE來說,JQuery無疑是一個極為好用的js框架。多數開發者使用JQuery Mobile的主要原因是由于,熟悉JQuery,能夠上手快。
PhoneGap/Cordova/AppCan/…
這類的框架,或者具體說已改算一個整套解決方案。他們是通過針對js的封裝,向web開發者,提供給一些原生功能的API。通過這組API,移動應用能夠以JavaScript訪問原生的設備功能,如攝像頭、麥克風等。
這些廠商往往還將它們做成了一整套的解決方案。API/在線編譯/編譯器/等。這些規則制定的廠商都不是一線的大公司,作為小公司而言,這些工具就變得商業目的特別濃厚。
二、基于交叉編譯的跨平臺
我們都知道,無論事IOS系統還是Android系統。他們的底層運行的都是以Unix為核心的系統,而且都對C/C++支持性良好。這就讓我們能夠通過使用底層的方案,配合OPEN GL來實現自己的App系統架構。
Cocos2dX/CrossApp
Cocos2d不用多說,在圈子內的名氣非常大。是一個著名的跨平臺游戲引擎,多是用作開發游戲。當年最著名的撲魚達人,就是使用了Cocos2d-X作為游戲引擎開發。Cocos2D基于OpenGL ES進行圖形渲染,從而讓移動設備的GPU性能發揮到極致。畢竟Cocos2d是游戲引擎,很多開發方式上與開發應用程序都不一樣。所以國內就有另一個開源項目,CrossApp。
CrossApp是抽取了cocos2d-x的渲染驅動模式。若直接使用游戲引擎,程序生命周期中,在不斷重繪,渲染驅動模式的缺點就是CPU占用高因此耗電。顯而易見,這種不斷的重繪方式對于游戲可能影響不大,但對于APP來說太浪費了。因此,我們針對應用程序的特性,將渲染機制改為事件驅動模式。這種模式的渲染要有外界觸發才會重繪,在沒有外界觸發的時候畫面靜止,渲染停止,以達到節能的效果。
Xamarin
Xamarin始創于2011年,旨在使移動開發變得難以置信地迅捷和簡單。Xamarin的產品簡化了針對多種平臺的應用開發,包括iOS、Android、Windows Phone和Mac App。Xamarin由許多著名的開源社區開發者創立和參與,而且也是Mono項目的主導者——C#與·NET框架的開源、跨平臺實現。
三、Hybrid開發混合App
就是混合開發的App。Andorid+Html5 or IOS + Html5。理論上來說,混合開發的App算不上跨平臺開發(我們可以簡單的認為,就是使用原生的開發)。那么問題是,既然兩者都有好處,那么我們就將一些體驗、操作、權限要求不高的頁面,使用Web來開發。其他的地方,我們還是使用原生的SDK進行研發。
APICloud-專業APP開發、app定制服務商,提供一站式移動應用解決方案,滿足您的各類需求,歡迎免費評估需求和獲取報價。
立即免費在線制作一個APP,新手注冊即送開發大禮包
提交app定制需求,免費獲取報價和周期:
電腦請點擊https://app.apicloud.com/index?uzchannel=500
手機請點擊http://www.cvrender.com/m/customizedservice