一些平臺(tái)今年似乎正刮一陣Hybrid開(kāi)發(fā)風(fēng),這里說(shuō)說(shuō)三款不同的Hybrid開(kāi)發(fā)框架, Native.js , AppCan , Intel XDK,各自有不同的思路和實(shí)現(xiàn),給Web開(kāi)發(fā)者們提供了不同的App開(kāi)發(fā)平臺(tái)和能力,那就一個(gè)個(gè)分別說(shuō)說(shuō)。 教程索引:(持續(xù)更新)
轉(zhuǎn)載請(qǐng)注明出處:http://www./2015/03/31/2015_hybrid_app/ Native_js實(shí)質(zhì)上屬于 HTML5+ 規(guī)范和HBuilder的結(jié)合實(shí)現(xiàn),HTML5+就沒(méi)什么好說(shuō)的,據(jù)說(shuō)是國(guó)內(nèi)組織搞的(不太清楚,感覺(jué)就是DCloud牽頭搞的),應(yīng)用上跟PhoneGap類似。Native.js屬于HTML5+規(guī)范未實(shí)現(xiàn)的原生API部分的Proxy,是不是可以理解為那些規(guī)范里的實(shí)現(xiàn)都是通過(guò)Native.js實(shí)現(xiàn)的,就是暴露了原生API封裝實(shí)現(xiàn)給了開(kāi)發(fā)者,看難度好像有點(diǎn)大,需要根據(jù)不同平臺(tái)調(diào)用原生API。那就要求開(kāi)發(fā)者理解那些原生API,思路上跟Titanium的Widget類似,但是實(shí)現(xiàn)上選擇了JS Bridge方式,我認(rèn)為不是很好的一個(gè)方向,有點(diǎn)噱頭的意思。那在它的平臺(tái)上就只能希望HTML5+規(guī)范的部分能實(shí)現(xiàn)的更加完整和全面。 關(guān)于Native.js的實(shí)現(xiàn),我的猜測(cè)是大量的使用了反射來(lái)將JS轉(zhuǎn)為Java或者Objective-C,性能上是很大的考驗(yàn)。 另外,HBuilder是基于Aptana開(kāi)發(fā)的,更加傾向于小清新,會(huì)場(chǎng)上也真的已經(jīng)有了不少實(shí)際用戶,讓我大吃一驚。 關(guān)于HBuilder的介紹參看: 《近匠》HBuilder:如何用JS調(diào)用幾十萬(wàn)原生API? Dcloud.io官網(wǎng)上有關(guān)于Native.js的 PDF文檔 AppCan國(guó)內(nèi)比較成熟的Hybrid開(kāi)發(fā)平臺(tái),開(kāi)發(fā)框架涵蓋了豐富的自定義API,商業(yè)模式也比較清晰,但是,相對(duì)來(lái)說(shuō)比較封閉,更加適合政府部門,我猜的。 具體的就不予置評(píng)了,請(qǐng)參看 AppCan官網(wǎng) Intel_XDKIntel XDK框架真是第一次聽(tīng)說(shuō),之前孤陋寡聞了。Intel居然也加入了Hybrid開(kāi)發(fā)陣營(yíng),可能真的是像他們的老大張海立所說(shuō)的這款產(chǎn)品之前一直是國(guó)外團(tuán)隊(duì)在開(kāi)發(fā),國(guó)外團(tuán)隊(duì)也剛開(kāi)始接手不久。 張海立的演講很精彩,搜了一下,復(fù)旦畢業(yè),言語(yǔ)真的很像上海人,還真有點(diǎn)想投奔他的感覺(jué),哈哈。 至于Intel XDK這款產(chǎn)品,那就是站在開(kāi)源產(chǎn)品之上集大成,相較于前兩位更加開(kāi)放、新潮,集成了包括 Cordova , Ripple , Brackets ,V8,還有一些開(kāi)源的UI框架和開(kāi)放的Service服務(wù),將設(shè)計(jì)、開(kāi)發(fā)、測(cè)試、編譯、分發(fā)集成設(shè)計(jì)出一套完整的開(kāi)發(fā)方案,IDE級(jí)別。 出彩的 Crosswalk ,看了下官網(wǎng)介紹,似乎是Cordova升級(jí)版,以至于每次出現(xiàn)XDK必出現(xiàn)Crosswalk,躲都躲不過(guò)。 Crosswalk前面說(shuō)了這么多,主要是想引出Crosswalk 這個(gè)東東。首先呢, crosswalk 只是針對(duì)安卓平臺(tái)的。那么我們?yōu)槭裁匆褂?crosswalk 呢.因?yàn)榈陀赼ndroid 4.4 的webview 是一個(gè)蹩腳的Android WebKit瀏覽器內(nèi)核(android版本越低性能就越差,android 4.4以上已經(jīng)使用了Chromium ),所以英特爾公司發(fā)布了 Crosswalk引擎,可以讓 Android 4.0-4.3 的手機(jī)上的應(yīng)用打包 Chromium 引擎而不是 Android WebKit。雖說(shuō)未來(lái) Android 4.4 會(huì)占據(jù)更多市場(chǎng)份額,但目前主流的 Android 手機(jī)的系統(tǒng)版本畢竟還是 4.1、4.2(4以下的就不說(shuō)了…)。 cordova 和 crosswalk 的一些差異 安裝包的大小【cordova,一個(gè)純html5的 apk 僅有1.5M左右(不涉及原生功能),涉及到一些原生功能,比如相機(jī)、文件系統(tǒng)、推送等因?yàn)樾枰尤氩寮?一般 apk 在 5M 左右】,而【crosswalk,一個(gè)純html的 apk 就達(dá)到了19M左右,如果需要加入雜七雜八的插件,那就是奔著25M去了】,天朝流量還是很貴的….(用戶一看app這么大,算了不下了…) 開(kāi)發(fā)的簡(jiǎn)便性【我是一個(gè)專職 cordova 開(kāi)發(fā)者,所以cordova已經(jīng)用習(xí)慣,這一條可能不夠客觀,僅供參考】.首先【cordova 3.0+ 的版本開(kāi)發(fā)起來(lái)都很方便了,命令行命令行你的應(yīng)用就搞定了 - -! 】,而【crosswalk集成比較麻煩,也許是我沒(méi)找到門道…..手動(dòng)集成導(dǎo)入包什么的總覺(jué)得好麻煩啊…..然后我默默的去下載了一個(gè) intelxdk ,因?yàn)樗苤苯哟虬?crosswalk 的應(yīng)用,但是點(diǎn)了打包之后,發(fā)了一個(gè)郵件給你讓你去下載,這…這….這……我總覺(jué)得云打包需要上傳代碼是不是不太合適啊….】 插件生態(tài)圈crosswalk 雖然能兼容 cordova plugin 但并不是完全一致的,而且并不是所有的cordova plugin 都能用在crosswalk 上 流暢度大家最關(guān)心的應(yīng)該在這里了…首先我說(shuō)一下我是用的 App Framework 這個(gè)前端框架的,這個(gè)現(xiàn)在也是intel的 - -),我測(cè)試的手機(jī)是 華為 g510 android 4.1.1 的手機(jī),性能并不強(qiáng),在滾動(dòng)流暢度和整理流暢度上 crosswalk 不得不承認(rèn)確實(shí)有明顯提升,但是個(gè)人覺(jué)得cordova在安卓上的流暢度也在可以接受的范圍之內(nèi)。【其實(shí)說(shuō)白了,cordova性能確實(shí)差一些,但是可以通過(guò)一些手段優(yōu)化來(lái)提升性能,或者犧牲一下用戶體驗(yàn),關(guān)閉一些沒(méi)必要的切換動(dòng)畫(huà)什么的來(lái)提升】 最后說(shuō)一下用cordova不就是為了跨平臺(tái), 而 crosswalk 是只針對(duì)安卓平臺(tái)的,所以如果你的應(yīng)用主打ios平臺(tái)的話,用不用就隨意了(我只是這么一說(shuō),安卓端的客戶還是不能丟的)… Crosswalk有何優(yōu)勢(shì)Crosswalk采用Chromium內(nèi)核并不斷地快速演進(jìn)(六周一次更新),使基于Crosswalk的Web應(yīng)用充分享有Chromium的功能與性能優(yōu)勢(shì),以及較好的平臺(tái)一致性。同時(shí),Crosswalk支持最新的HTML5 API,包括WebGL,WebAudio,WebRTC,Gamepad,WebSocket等等。一個(gè)展示基于Crosswalk的web應(yīng)用的很好的例子是這款名為HexGL的3D游戲,我們?cè)谠杏螒颍?a target="_blank" rel="external">http://hexgl.bkcore.com)基礎(chǔ)上做了一些改進(jìn)(https://github.com/hmin/HexGL),如圖1所示。它是一款用純web技術(shù)開(kāi)發(fā)的游戲,使用了WebGL,WebAudio,Gamepad,Presentation等HTML5 API,支持4.0之后的所有Andorid平臺(tái),并且在低端的Android設(shè)備上也能流暢運(yùn)行,諸如紅米手機(jī)。 ionic添加Crosswalk幸運(yùn)的是ionic支持配置瀏覽器內(nèi)核,通過(guò)下面的命令可以列出支持的瀏覽器內(nèi)核:
下面的命令可以為ionic安裝對(duì)應(yīng)android平臺(tái)的crosswalk,對(duì)應(yīng)Chromium 37 (Crosswalk 8.37.189.12 version).
移除平臺(tái)的瀏覽器:
謝謝!轉(zhuǎn)載請(qǐng)注明出處:http://www./2015/03/31/2015_hybrid_app/ 有問(wèn)題請(qǐng)留言。 請(qǐng)叫我皓眸哥(^_^) |
|
來(lái)自: 看見(jiàn)就非常 > 《tip》