(转)Phonegap VS AppCan
简介
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性能完全不同,由于时间紧张,并未使用多终端进行测试。
(转)Phonegap VS AppCan的更多相关文章
- 【Hybrid App】一个产品经理眼中的PhoneGap Vs. AppCan
首先在写这篇文章前,必须先申明一下,本人是技术出身,对HTML技术及手机客户端都有过编程经验,只是出于工作岗位的变动,便没有再具体代码工作,以下文章涉及的中间件的基本代码实现及前期的API使用,都是自 ...
- PhoneGap Vs AppCan
首先在写这篇文章前,必须先申明一下,本人是技术出身,对HTML技术及手机客户端都有过编程经验,只是出于工作岗位的变动,便没有再具体代码工作,以下文章涉及的中间件的基本代码实现及前期的API使用,都是自 ...
- 混合应用开发:Phonegap VS AppCan
混合应用开发:Phonegap VS AppCan 简介 Phonegap PhoneGap是一个用基于HTML,CSS和JavaScript的,创建移动跨平台移动应用程序的快速开发平台.它使开发者能 ...
- AppCan试用体验
最近自己想开发一个基于Android平台的小应用,但不想使用JAVA开发,还要快速实现功能,学习成本低. 所以找了很多框架,最后基本锁定在phoneGap和AppCan,又看了AppCan与phone ...
- 开发node桌面级应用工具:apk转化epub
随着苹果ibooks对国内的开放,最近接了个麻烦的需求: 把现有的APK转化支持苹果ibooks电子书的epub格式 apk,基本都知道就是安卓的应用程序 epub,是ibooks支持的电子书格式 ( ...
- 基于.NET平台常用的框架整理(转)
自从学习.NET以来,优雅的编程风格,极度简单的可扩展性,足够强大开发工具,极小的 学习曲线,让我对这个平台产生了浓厚的兴趣,在工作和学习中也积累了一些开源的组件,就目前想到的先整理于此,如果再想到, ...
- Index
我主要在研究.NET/C# 实现 PC IMERP 和 Android IMERP ,目的在解决企业通信中遇到的各类自动化问题 分布式缓存框架: Microsoft Velocity:微软自家分布 ...
- 【转】基于.NET平台常用的框架整理
自从学习.NET以来,优雅的编程风格,极度简单的可扩展性,足够强大开发工具,极小的学习曲线,让我对这个平台产生了浓厚的兴趣,在工作和学习中也积累 了一些开源的组件,就目前想到的先整理于此,如果再想到, ...
- 基于.NET平台常用的框架整理
自从学习.NET以来,优雅的编程风格,极度简单的可扩展性,足够强大开发工具,极小的学习曲线,让我对这个平台产生了浓厚的兴趣,在工作和学习中也积累了一些开源的组件,就目前想到的先整理于此,如果再想到,就 ...
随机推荐
- URAL 1008 - Image Encoding(bfs坑爹题)
坑爹题,两种输入输出互相交换,裸bfs #include <stdio.h> #include <string.h> typedef struct { int x; int y ...
- Android的消息处理机制(Looper,Handler,Message)(转)
Handler Handler的定义: 主要接收子线程发送的数据,并用此数据配合主线程更新UI. 当应用程序启动时,Android首先会开启一个主线程(也就是UI线程),主线程为管理界面中的UI空间进 ...
- C#冒泡排序--详解
思路:以数组int[]a={55,42,15,3,66,52};为例. 每一轮排序都把最大的数放在最后 所以, 对应循环语句思路 这样就很清晰了. 代码如下: , , , , , , , }; ; i ...
- impdp/expdp 总结
impdp/expdp 1.创建DIRECTORY create directory dir_dp as '/tmp'; --建议将DIRECTORY 建在 /tmp 表下面,该目录肯定存 ...
- C# 配置文件读取与修改(转)
C# 配置文件读取与修改 配置文件在很多情况下都使用到, 配置文件分为两种 一种是应用程序的配置文件, 一种是web的配置文件. 两种配置文件最大的区别是web的配置文件更新之后会实时更新, 应用 ...
- jq 事件冒泡总结
什么是JS事件冒泡? 在一个对象上触发某类事件(比如单击onclick事件),如果此对象定义了此事件的处理程序,那么此事件就会调用这个处理程序,如果没有定义此事件处理程序或者事件返回true,那么这个 ...
- wordpress后台打开缓慢的临时解决方法
解决方法是添加下面的主题在目前的代码在functions.php: //禁用Open Sans class Disable_Google_Fonts { public function __const ...
- C#7.0
C#7.0中有哪些新特性? 以下将是 C# 7.0 中所有计划的语言特性的描述.随着 Visual Studio “15” Preview 4 版本的发布,这些特性中的大部分将活跃起来.现在是时候来展 ...
- Windows 批处理文件
窗口自动关闭:批处理文件执行完之后,窗口会自动关闭,若想执行完之后,窗口不自动关闭的话,在文件末尾添加1. 批处理文件执行完之后,窗口会自动关闭2. 若想执行完之后,窗口不自动关闭的话,在文件末尾添加 ...
- RMAN-06023: no backup or copy of datafile 6 found to restore
一:问题描述 我用指定备份集恢复时,报错: RMAN> run { 2> shutdown immediate; 3> startup mount; 4> allocate c ...