來源:http://www.mamicode.com/info-detail-1129829.html
現在Hybrid app是一中非常火熱的開發模式,在國內對應的開發工具也亂象叢生,有WeX5、crossApp、ExMobi、Appcan、apicloud、HBuilder等。
其中WeX5只是在PhoneGap外面套了一層殼子,內部的UI都是通過大量的css,js實現的,頁面切換也大量采用webapp模式,類似於JQuery Mobile中的框架,太過偏向於webapp,性能得不到較好的體驗,而且缺少第三方功能SDK封裝支持。
crossapp是一款實用C++開發跨平台應用的工具,因為Android與IOS應用程序本身就是能夠用C++來開發的,所以這也算是一種類原生方式開發,但是C++開發Android應用程序或者開發IOS應用程序很少見,會的人不多,缺少交流平台,自己開發插件比較困難,只能完全依賴官方提供,官方的第三方插件庫資源不足,很難滿足開發者變態的需求。
ExMobi是烽火科技研發的一種內部使用的開發平台,當然也可以購買使用權,雖然也有免費版,但是在免費版連推送功能都不開放的情況下你還會選擇嗎?大量的功能需要購買不同的版本才會提供,對於小型開發團隊來說不切實際。
Appcan是國內最早一批研發Hybrid app開發模式中的一員,其存在時間之久,屬目前國內Hybrid app開發平台之最,為什么它能夠一直堅持下去?那肯定是有其優點所在。Appcan基於多webview來開發單Activity模式app,最近去除了ActivityGroup,采用Fragment來代替,優化了性能及體驗,同時其合作商家廣泛,第三方SDK應有盡有,能夠很好地滿足開發者的變態需求。
apicloud的一種從Appcan脫離出來的技術,雖說其開發人員有很多是Appcan原來的技術人員,但是這是兩種不同的設計方式,它也有大量的第三方SDK支持,並且其UI是令人看着比較舒服的(個人覺得)。
HBuilder的webview處理方式與apicloud基本類似,其實這種用webview裝載網頁的技術都大同小異,網上也能找到,只是在於細節點處理方面不同而已。
Appcan&apicloud&HBuiler
- 最初使用Appcan的時候感覺其打開新窗口響應較慢,而且其內部UI完全是黑色的,比較難看,當初找相關技術人員,想讓其提供能夠選擇UI主題的接口,但是最后不了了之,在apicloud出來之后,發現其UI效果很好,因此又去研究了一下,發現其窗口響應速度比Appcan要高
- 現在Appcan引擎已全部開源,開發者能夠完全自己Design,主題這些都不是問題,而且我再次測試了窗口響應速度,現在有了明顯提高,與apicloud不想上下
- HBuilder的webview最初一直不看好,因為沒有采用硬件加速渲染,渲染比較慢,會出現空白,而他們官方提供的一種方式是預加載,當初我問他們技術,預加載不會過多消耗資源嗎?他們技術脫口而出,只要不顯示就不消耗資源,不用擔心。而且好像還發表了一篇這樣的文章介紹預加載的,我就在想,難道我這些年開發一直白學了,哪個程序創建個變量會不消耗資源?預加載你總要創建webview實例吧?這是忽悠誰呢?如果真的不消耗資源為什么你們右面又提供一種模板頁構建的方式呢,所有二級頁面只需預加載兩個嵌套webview就可以。
- 對於前段UI,Appcan有一套很全面的css與js框架,其完全采用自適應模式。。什么?不知道自適應?好吧一會介紹其區別。HBuilder也有一套UI,js和css比較全,apicloud沒有專門的UI,需要用戶自己DIY,對於個人來說,我反而傾向於apicloud,因為他們提供的UI中js與css太多而雜,Appcan中js引入了Zepto,Backbone、Underscore庫,顯得異常臃腫,導致網頁加載js效率受影響;HBuilder中所有css與js都在一個文件中,大量不需要用到的樣式無法刪除,就算你這個頁面只需要用到一個按鈕樣式,那么都需要引入整個css與js
- 關於自適應,有很多人說,我前端就是自適應的啊,其實那並不能嚴格說是自適應,你們的布局只能說是根據設備大小進行自適應,而不是分辨率,apicloud和HBuilder的webview會根據設備的分辨率來進行放大或縮小(一般是放大),並不是網頁原來的形態,這也就是為什么明明定義的1px的border在Android上看上去是2px或者1.5px的原因。而Appcan中1px就是1dp,其設備大小被修改成與分辨率相等,這就使得網頁在webview中保留了原形態,沒有放大縮小,其視覺體驗非常好,圖片等不會失真。其本質原因是Appcan是基於Android 4.4.2的API,也就是API19來開發的,其設置了viewport的支持,在viewport中設置target-densitydpi=device-dpi就可以實現高清晰效果,而apicloud是基於API20以上開發的,Android在4.4以后就不支持viewport屬性了,因此在apicloud中設置viewport屬性與否沒有任何影響,在這點上HBuilder與Appcan類似,能夠通過viewport屬性來修改像素點,從而得到較好的視覺體驗,當然也可以設置成與apicloud一樣的情況,這種就具有較好的選擇性,但是這種布局就要求有較強的能力了,Appcan中為不同分辨率定義了不同的字體大小,也就是em值對應的像素,在其中布局最好使用em來實現,不要使用px。而在apicloud中使用px能夠在不同的手機上達到一樣的效果,這就是不同分辨率的適配
跨平台APP----對Cordova,APPCan,DCloud,APICloud四大平台的分析
來源:http://blog.csdn.net/tangzenglei/article/details/50668914
前言:
移動開發是未來一個很重要的IT領域,而跨平台開發將是這一領域最重要的事情。 ----谷震平
一 兵器譜
在國外,最大的是Cordova(PhoneGap,2011年廣泛流行),在2012年12月開源。
在國內,按時間順序,有:
- 2012年,AppCan
- 2013年,DCloud
- 2014年9月,APICloud
二 Cordova
Cordova是Apache軟件基金會的一個產品。其前身是PhoneGap,由Nitobi開發,2011年10月,Adobe收夠了Nitobi,並且PhoneGap項目也被貢獻給Apache軟件基金會。Apache在2012年12月,發布了Cordova,截止到2015年12月,最新版面是3.0。
該框架的目標用戶群體是原生開發者,其設計初衷是希望用戶群體能夠通過跨平台開發的方法降低原生開發的成本。為此,開發人員需要安裝原生開發環境,配置工程,使用HTML5、CSS3、js和原生SDK生成應用。
Cordova的優勢很明顯,可以使用的框架、原生接口、支持平台都很多。但是,外國人寫的東西,公司使用后,出現的技術問題難以解決。同時,其在使用jQuery Mobile、Sencha Touch等前端框架的時候,有特效啟動慢、頁面切換慢、數據請求慢的特點。
三 APPCan
AppCan成立於2010年,2011年推出產品並測試,2012年正式推出品牌,2013年商業模式成型,2014年開發者注冊約70w。AppCan不是開源平台,同時,企業版和部分插件是收費的。換句話說,AppCan只是一個賣軟件的商業公司。我們認為:這會對其市場的占有率有着直接影響,閉源而沒有壟斷,所以前景不會太好。
四 DCloud
DCloud大部分產品開源,W3C會員單位,html5中國產業聯盟的發起公司之一,在Html5這個行業有一定的江湖地位。旗下四款產品:HBuilder、5+ Runtime、MUI、流應用都是彌補並擴展HTML5特性的產品。該公司的理念就是解決HTML5的性能、工具、能力三方面的問題。MUI是一款不錯的前端框架,性能比 jquery Mobile、Bootstrap好很多,主要區別:
- 設計思路不同,MUI堅持用原生JS做,不依賴jQuery或者Angularjs。
- MUI調用了5+ Runtime的底層原生加速,比不帶原生加速的框架更快。
但是,DCloud畢竟是個新平台,發展才2年,新產品內部存在的Bug還需要很多的測試。在其官方社區中,不少開發者也在呼吁DCloud盡快完善文檔和框架。
五 APICloud
APICloud提供原生應用的功能模塊(設備訪問,界面布局,開放SDK等),開發者可以通過JS調用。前端工程師負責頁面布局,UI展現,及簡單的交互,原生模塊負責性能方面和功能實現,兩者結合形成一個完整的應用。同時APICloud提供了雲數據庫的功能,前端不必了解PHP,Node.js等后端語言,通過JS接口或Restful API實現數據庫的增刪改查。
但是APICloud的更新速度很快,版本不太穩定。而且,它是為不懂APP開發的人士准備的,不適合科技公司和程序員。
六 兵器譜PK
由上表可知,4個平台的定位是不同的,導致其產品的功能特性不一樣。