简介
Phonegap
PhoneGap是一个用基于HTML,CSS和JavaScript的,创建移动跨平台移动应用程序的快速开发平台。它使开发者能够利用iPhone,Android,Palm,Symbian,WP7,Bada和Blackberry智能手机的核心功能——包括地理定位,加速器,联系人,声音和振动等,此外PhoneGap拥有丰富的插件,可以以此扩展无限的功能。PhoneGap是免费的,但是它需要特定平台提供的附加软件,例如iPhone的iPhone SDK,Android的Android SDK等,也可以和DW5.5配套开发。使用PhoneGap只比为每个平台分别建立应用程序好一点点,因为虽然基本代码是一样的,但是你仍然需要为每个平台分别编译应用程序。
AppCan
AppCan是国内Hybrid App混合模式开发的倡导者,AppCan应用引擎支持Hybrid App的开发和运行。并且着重解决了基于HTML5的移动应用目前"不流畅"和"体验差"的问题。使用AppCan应用引擎提供的Naitve交互能力,可以让HTML5开发的移动应用基本接近Native App的体验。
框架优缺点
Phonegap
优点
支持大部分系统:Android,IOS ,Symbian, Windows Phone, Palm WebOS,
Bada , Symbian
开源,可以进行框架底层优化
框架提供自定义控件,可以调用android原生功能
第三方插件丰富
安装包体积偏小
文档丰富
可在本地调试、发布
支持本地打包、云端打包
缺点
不同平台需要搭建不同开发环境
框架没有UI,需要使用第三方UI插件
框架仅提供基本API,扩展功能需要使用第三方插件
框架不支持自动加密,需要手动对HTML加密
框架未对UI进行优化,应用加载及UI相应时较慢
由于第三方开发人员水平不同,插件质量参差不齐
AppCan
优点
支持四大主流系统:Android,IOS,Symbian,Windows Phone
提供一体化解决方案,方便环境搭建、开发、调试、发布
框架自带UI包,包含常用控件样式
框架API丰富
支持本地打包、云端打包
基于密钥的代码加密
技术支持相应及时
框架对UI、动画渲染进行过优化,反应速度快
缺点
不开源,无法修改、优化底层代码
暂不支持自行开发控件/,无法调取android原生功能
框架自带功能过多,导致应用安装包偏大。
文档偏少
部分系统无法使用IDE进行调试
只能在服务器端发布,无法在本地发布
IOS发布,需要将证书上传至服务器
详细比较
基本情况
| Phonegap | AppCan |
框架目标 | PhoneGap的最终目的是终结现存目标平台间的差异 | 快速开发、多种平台、解决基于HTML5的移动应用目前"不流畅"和"体验差"的问题,提供统一的解决方案 |
框架功能 | 简单 | 丰富 |
支持平台 | 大部分平台 | 仅4种平台 |
开发环境 | 不同平台需要不同开发环境 | 只需一个IDE包 |
|
| Windows 7 X64 英文版、Windows 8 X64 英文版 无法进行模拟器调试 |
编译器不支持的HTML标签 | 可以编译、调试、发布 | 不能调试,只能生成apk包,安装至手机 |
调试 | 可直接调试 | 本地发布的IOS包,必须部署在越狱的机器上 |
发布 | 在本地可以直接发布 | 必须将代码上传至服务器,才能发布 |
IOS 签名管理 | 本地管理 | 需要上传至服务器 |
代码泄露风险 | 低:仅在本地、svn保存代码 | 高:需将代码上传至appcan服务器 |
中国化 | 弱 | 强:与新浪合作提供云服务等 |
多语言 | 插件支持 | 插件支持 |
安装包大小 | 小 | 大 |
开发
| Phonegap | AppCan |
开发语言 | HTML 5 + js + CSS 3 | HTML 5 + js + CSS 3 |
开发环境 | 不同平台需要不同开发环境 | Eclipse(IDE 内置) |
UI | JQM等三方控件或自行设计 | AppCan.UI或第三方UI控件或自行设计 |
自定义控件 | 支持自定义控件(原生代码),方便前台调用 | 暂不支持调用自定义控件(原生代码),2.0后将支持 |
官方API | 较少,功能比较单一 | 比较丰富 |
第三方控件 | 比较丰富 | 仅支持UI、JS控件 |
多线程 | 支持 | 支持 |
多窗口 | 需要使用插件 | 框架支持 |
Iframe | 不支持 | 不支持 |
后退 | 需要插件 | 框架自带API |
Socket等 | 需要自行开发控件(已有第三方控件) | 官方API支持,暂无法保持socket连接 |
性能
| Phonegap | AppCan |
页面加载 | 有明显的延时 | 有明显的延时 |
页面切换 | 部分第三方控件会出现明显的抖动 | 将亮度不为最暗时,加载新页面,有明显的变暗 |
| 会出现白屏,需要使用第三方控件屏蔽 | 不会出现白屏 |
动画渲染 | 较差 | 较好 |
细粒度测试 | 较差 | 一般 |
初始化内存 | 8.5MB | 11MB |
初始化Cpu使用量 | 一般 | 一般 |
UI刷新 | 每线程20毫秒刷新一次,4个线程开始出现刷新不及时 | 每线程20毫秒刷新一次,120个线程并无出现明显刷新问题 |
|
| content页面在离开后不会结束,可能会出现重叠 |
应用加载速度 | 较快(不强制使用欢迎页面、部分数据初始化可在欢迎页面完成) | 差(系统强制使用欢迎界面,数据初始化无灾欢迎页面进行) |
页面加载速度 | 较慢(不使用插件时直接跳转,但会出现白屏) | 一般(原页面等待0.5-1.5秒后跳转) |
其他
| Phonegap | AppCan |
退出确认 | 自行开发 | 框架封装 |
文档 | 丰富 | 一般(逐渐增加) |
技术支持 | 一般 | 方便 |
提交问题渠道 | 论坛、Q群(民间)、官方邮箱 | 论坛、Q群(官方)、官方邮箱 |
附1
Content 页面导致重叠效果
备注:
以上测试系统为:HUAWEI C8812
不同型号手机,Phonegap性能完全不同,由于时间紧张,并未使用多终端进行测试。