Phonegap VS AppCan
簡介
Phonegap
PhoneGap是一個用基于HTML,CSS和JavaScript的,創(chuàng)建移動跨平臺移動應(yīng)用程序的快速開發(fā)平臺。它使開發(fā)者能夠利用iPhone,Android,Palm,Symbian,WP7,Bada和Blackberry智能手機的核心功能——包括地理定位,加速器,聯(lián)系人,聲音和振動等,此外PhoneGap擁有豐富的插件,可以以此擴展無限的功能。PhoneGap是免費的,但是它需要特定平臺提供的附加軟件,例如iPhone的iPhone SDK,Android的Android SDK等,也可以和DW5.5配套開發(fā)。使用PhoneGap只比為每個平臺分別建立應(yīng)用程序好一點點,因為雖然基本代碼是一樣的,但是你仍然需要為每個平臺分別編譯應(yīng)用程序。
AppCan
AppCan是國內(nèi)Hybrid App混合模式開發(fā)的倡導(dǎo)者,AppCan應(yīng)用引擎支持Hybrid App的開發(fā)和運行。并且著重解決了基于HTML5的移動應(yīng)用目前"不流暢"和"體驗差"的問題。使用AppCan應(yīng)用引擎提供的Naitve交互能力,可以讓HTML5開發(fā)的移動應(yīng)用基本接近Native App的體驗。
框架優(yōu)缺點
Phonegap
優(yōu)點
支持大部分系統(tǒng):Android,IOS ,Symbian, Windows Phone, Palm WebOS,
Bada , Symbian
開源,可以進行框架底層優(yōu)化
框架提供自定義控件,可以調(diào)用android原生功能
第三方插件豐富
安裝包體積偏小
文檔豐富
可在本地調(diào)試、發(fā)布
支持本地打包、云端打包
缺點
不同平臺需要搭建不同開發(fā)環(huán)境
框架沒有UI,需要使用第三方UI插件
框架僅提供基本API,擴展功能需要使用第三方插件
框架不支持自動加密,需要手動對HTML加密
框架未對UI進行優(yōu)化,應(yīng)用加載及UI相應(yīng)時較慢
由于第三方開發(fā)人員水平不同,插件質(zhì)量參差不齊
AppCan
優(yōu)點
支持四大主流系統(tǒng):Android,IOS,Symbian,Windows Phone
提供一體化解決方案,方便環(huán)境搭建、開發(fā)、調(diào)試、發(fā)布
框架自帶UI包,包含常用控件樣式
框架API豐富
支持本地打包、云端打包
基于密鑰的代碼加密
技術(shù)支持相應(yīng)及時
框架對UI、動畫渲染進行過優(yōu)化,反應(yīng)速度快
缺點
不開源,無法修改、優(yōu)化底層代碼
暫不支持自行開發(fā)控件/,無法調(diào)取android原生功能
框架自帶功能過多,導(dǎo)致應(yīng)用安裝包偏大。
文檔偏少
部分系統(tǒng)無法使用IDE進行調(diào)試
只能在服務(wù)器端發(fā)布,無法在本地發(fā)布
IOS發(fā)布,需要將證書上傳至服務(wù)器
詳細比較
基本情況
| Phonegap | AppCan |
框架目標(biāo) | PhoneGap的最終目的是終結(jié)現(xiàn)存目標(biāo)平臺間的差異 | 快速開發(fā)、多種平臺、解決基于HTML5的移動應(yīng)用目前"不流暢"和"體驗差"的問題,提供統(tǒng)一的解決方案 |
框架功能 | 簡單 | 豐富 |
支持平臺 | 大部分平臺 | 僅4種平臺 |
開發(fā)環(huán)境 | 不同平臺需要不同開發(fā)環(huán)境 | 只需一個IDE包 |
|
| Windows 7 X64 英文版、Windows 8 X64 英文版 無法進行模擬器調(diào)試 |
編譯器不支持的HTML標(biāo)簽 | 可以編譯、調(diào)試、發(fā)布 | 不能調(diào)試,只能生成apk包,安裝至手機 |
調(diào)試 | 可直接調(diào)試 | 本地發(fā)布的IOS包,必須部署在越獄的機器上 |
發(fā)布 | 在本地可以直接發(fā)布 | 必須將代碼上傳至服務(wù)器,才能發(fā)布 |
IOS 簽名管理 | 本地管理 | 需要上傳至服務(wù)器 |
代碼泄露風(fēng)險 | 低:僅在本地、svn保存代碼 | 高:需將代碼上傳至appcan服務(wù)器 |
中國化 | 弱 | 強:與新浪合作提供云服務(wù)等 |
多語言 | 插件支持 | 插件支持 |
安裝包大小 | 小 | 大 |
開發(fā)
| Phonegap | AppCan |
開發(fā)語言 | HTML 5 + js + CSS 3 | HTML 5 + js + CSS 3 |
開發(fā)環(huán)境 | 不同平臺需要不同開發(fā)環(huán)境 | Eclipse(IDE 內(nèi)置) |
UI | JQM等三方控件或自行設(shè)計 | AppCan.UI或第三方UI控件或自行設(shè)計 |
自定義控件 | 支持自定義控件(原生代碼),方便前臺調(diào)用 | 暫不支持調(diào)用自定義控件(原生代碼),2.0后將支持 |
官方API | 較少,功能比較單一 | 比較豐富 |
第三方控件 | 比較豐富 | 僅支持UI、JS控件 |
多線程 | 支持 | 支持 |
多窗口 | 需要使用插件 | 框架支持 |
Iframe | 不支持 | 不支持 |
后退 | 需要插件 | 框架自帶API |
Socket等 | 需要自行開發(fā)控件(已有第三方控件) | 官方API支持,暫無法保持socket連接 |
性能
| Phonegap | AppCan |
頁面加載 | 有明顯的延時 | 有明顯的延時 |
頁面切換 | 部分第三方控件會出現(xiàn)明顯的抖動 | 將亮度不為最暗時,加載新頁面,有明顯的變暗 |
| 會出現(xiàn)白屏,需要使用第三方控件屏蔽 | 不會出現(xiàn)白屏 |
動畫渲染 | 較差 | 較好 |
細粒度測試 | 較差 | 一般 |
初始化內(nèi)存 | 8.5MB | 11MB |
初始化Cpu使用量 | 一般 | 一般 |
UI刷新 | 每線程20毫秒刷新一次,4個線程開始出現(xiàn)刷新不及時 | 每線程20毫秒刷新一次,120個線程并無出現(xiàn)明顯刷新問題 |
|
| content頁面在離開后不會結(jié)束,可能會出現(xiàn)重疊 |
應(yīng)用加載速度 | 較快(不強制使用歡迎頁面、部分?jǐn)?shù)據(jù)初始化可在歡迎頁面完成) | 差(系統(tǒng)強制使用歡迎界面,數(shù)據(jù)初始化無災(zāi)歡迎頁面進行) |
頁面加載速度 | 較慢(不使用插件時直接跳轉(zhuǎn),但會出現(xiàn)白屏) | 一般(原頁面等待0.5-1.5秒后跳轉(zhuǎn)) |
其他
| Phonegap | AppCan |
退出確認 | 自行開發(fā) | 框架封裝 |
文檔 | 豐富 | 一般(逐漸增加) |
技術(shù)支持 | 一般 | 方便 |
提交問題渠道 | 論壇、Q群(民間)、官方郵箱 | 論壇、Q群(官方)、官方郵箱 |