Appcan、apicloud、HBuilder 不同之處解析

來源:互聯網
上載者:User

標籤:

現在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是烽火科技研發的一種內部使用的開發平台,當然也可以購買使用權,雖然也有免費版,但是在免費版連推送功能都不開放的情況下你還會選擇嗎?大量的功能需要購買不同的版本才會提供,對於小型Team Dev來說不切實際。

  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能夠在不同的手機上達到一樣的效果,這就是不同解析度的適配

Appcan、apicloud、HBuilder 不同之處解析

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.