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性能完全不同,由于时间紧张,并未使用多终端进行测试。
出处:http://www.cnblogs.com/comsokey
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。来自:http://www.cnblogs.com/comsokey
Phonegap VS AppCan相关推荐
- AppCan VS PhoneGap - 对比两大移动开发平台
http://my.oschina.net/liux/blog/65119 要说hybrid app 框架的典范,Phonegap和AppCan无疑是最受大家关注的.先说明,本人是App的开发者,对手 ...
- 正益无线赵庆华:AppCan助力开发者轻装前行
大谈特谈HTML5技术的厂商不在少数,而真的能够静下心,遵循HTML5的轨迹,扬HTML5之长,避HTML5之短,持之以恒为开发者谋求创新创业出路的厂商却乏陈可善.在前几日的iweb峰会上,正益无线赵 ...
- 【AppCan 开发者故事】Samlee:西北青年的移动开发梦
在AppCan 2000人的大群里,总有那么几个熟悉的名字,一闪一闪的像小星星,精力充沛.热心无偿地帮助大家解决问题.可能你也会好奇,他是谁,他来自哪,在论坛之外,他有怎样的生活.现在我们为大家搭建一 ...
- 【AppCan 开发者第一期】Samlee:西北青年的移动开发梦
Samlee是位来自西北的汉子,他评价自己是牛脾气一个,我却认为他"英雄不怕出身太单薄,有志气高哪天也骄傲". 中专毕业,16岁开始兼职赚钱,满18岁后的第10天正式踏上社会.22 ...
- 基于.NET平台常用的框架整理(转)
分布式缓存框架: Microsoft Velocity:微软自家分布式缓存服务框架. Memcahed:一套分布式的高速缓存系统,目前被许多网站使用以提升网站的访问速度. Redis:是一个高性能的K ...
- .NET平台常用的开发组件
工欲善其事,必先利其器.学习.NET也10年有余,其优雅的编程风格,高效率的开发速度,极度简单的可扩展性,足够强大开发类库,较小的学习曲线,让我对这个平台产生了浓厚的兴趣,在工作和学习中也积累了一些开 ...
- 我的2015羊年总结
上一年这个时候,在一家小公司实习,做完了那个项目然后就走人回家过年了(不知算是辞职还是炒了),毕竟我还是想要最后一个寒假的人. 毕业设计 年后回到学校,却没有继续找工作,想努力把毕业设计的作品做好,那 ...
- asp.net(mvc) 框架
1.NFine mvc+ef 2.Grove orm架构 3.NHibernate orm 4.NBear 5.petshop 6.Membership 7.Brnshop 网上商城 8.cms快速开 ...
- 什么是 Native、Web App、Hybrid、React Native和Weex?
一句话概要 Native.Web App.Hybrid.React Native(后面以RN简称).Weex 间的异同点,后期同步小程序和PWA. App常用开发模式简介 此处App为应用,appli ...
最新文章
- [zt]petshop4.0 详解之八(PetShop表示层设计)
- django框架使用mysql报错,及两种解决方法
- python爬虫案例-Python爬虫案例集合
- Visual Subst - 简单将任意文件夹挂载模拟成驱动器盘符硬盘分区的小工具
- 中国大数据企业排行榜V6.0- 5 年后再去看看中几个大数据公司的发展状况
- java发送和接收文件_Java通过套接字发送和接收文件(byte [])
- TFLearn MNIST
- vscode编辑器 装JavaScript Standard Style 遇到不检测代码问题
- Python基础-佛祖镇楼
- app接口制作简单流程
- office插件开发_OneKeyTools:强大PPT插件
- 鸿蒙系统如何添加桌面小程序,微信Windows版更新至3.0:批量管理联系人,小程序可添加至桌面...
- Android图形图像处理,主流app开发工具
- 我是怎么画架构图的?
- RepVGG: Making VGG-style ConvNets Great Again
- 【记录贴】AD21将元素复制到KeepOutLayer层的方法
- 【SpringBoot】12.SpringBoot整合Dubbo+Zookeeper
- 「雕爷学编程」Arduino动手做(34)——三色LED交通灯模块
- 造物数藏:以数字藏品为契机 不断完善应用场景探索
- elasticsearch 下载 kibana 下载 云盘
热门文章
- linux查看was jvm内存溢出,was manage内存溢出
- 【Spring第三篇】什么是Bean?
- ❤️《大前端—Babel》
- Kerberos安装及拖管Ambari 2.7
- Linux 设置 LD_LIBRARY_PATH
- php curl post登录与带cookie模拟登录随笔
- MySQL数据库操作指令
- mysql停止更新时间_我如何更新这个MySQL查询以获取从开始、停止、暂停和恢复事件经过的总时间...
- java hashtable 数据结构_java Hashtable底层原理是怎样的?数据结构包括什么?
- jQuery Event.delegateTarget 属性详解