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