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