混合应用开发: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的更多相关文章

  1. 【Hybrid App】一个产品经理眼中的PhoneGap Vs. AppCan

    首先在写这篇文章前,必须先申明一下,本人是技术出身,对HTML技术及手机客户端都有过编程经验,只是出于工作岗位的变动,便没有再具体代码工作,以下文章涉及的中间件的基本代码实现及前期的API使用,都是自 ...

  2. PhoneGap Vs AppCan

    首先在写这篇文章前,必须先申明一下,本人是技术出身,对HTML技术及手机客户端都有过编程经验,只是出于工作岗位的变动,便没有再具体代码工作,以下文章涉及的中间件的基本代码实现及前期的API使用,都是自 ...

  3. (转)Phonegap VS AppCan

    简介 Phonegap PhoneGap是一个用基于HTML,CSS和JavaScript的,创建移动跨平台移动应用程序的快速开发平台.它使开发者能够利用iPhone,Android,Palm,Sym ...

  4. iOS原生混合RN开发最佳实践

    iOS原生混合RN开发详解 做过原生iOS开发或者Android开发的同学们肯定也都了解Hybrid,有一些Hybrid的开发经验,目前我们企业开发中运用最广泛的Hybrid App技术就是原生与H5 ...

  5. ionic4 混合移动开发 (前世今生)

    ionic 从2016年初识,经历了 ionic2 ionic3.至今 ionic4,终于在2018年7月份发布了测试版. ionic Framework 可以说得上是最接近原生app的ui组件,漂亮 ...

  6. 混合app开发,h5页面调用ios原生APP的接口

    混合APP开发中,前端开发H5页面,不免会把兼容性拉进来,在做页面的兼容性同事,会与原生app产生一些数据交互: 混合APP开发,安卓的兼容性倒是好说,安卓使用是chrome浏览器核心,已经很好兼容H ...

  7. 跨平台移动开发phonegap/cordova 3.3全系列教程-目录

    目录(更新完成后会附上源码供参考) 第一章 android平台开发 phonegap/cordova简介 1.开发环境搭建 2.helloworld 3.启动画面 4.结合asp.net/jqmboi ...

  8. Qt混合Python开发技术:Python介绍、混合过程和Demo

    前言   Qt中混合Python开发,可调用Python命令与脚本.   Python   Python是一种跨平台的计算机程序设计语言. 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语 ...

  9. zx-editor 移动端(HTML5)富文本编辑器,可与原生App混合(hybrid)开发

    ZxEditor 移动端HTML文档(富文本)编辑器,支持图文混排.引用.大标题.无序列表,字体颜色.加粗.斜体. 可用于独立web项目开发,也可以用于与原生App混合(hybrid)开发. 源码地址 ...

随机推荐

  1. JavaScript实现StringBuffer

    function StringBuffer() { this._strings = new Array(); } StringBuffer.prototype.Append = function(_s ...

  2. shell命令修改文件内容

    有个 test.txt 文件内容为  hello tom,现在修改成 hello jerry,并保存到test2.txt sed 's/tom/jerry/g' test.txt >test2. ...

  3. [LeetCode]22. Generate Parentheses括号生成

    Given n pairs of parentheses, write a function to generate all combinations of well-formed parenthes ...

  4. 《Unity Shader入门精要》读书笔记(1)

    主要是对第二章的整理 渲染流水线:由一个三维场景出发,生成(渲染)一张二维图像. 渲染流程:应用阶段.几何阶段.光栅化阶段. 应用阶段: 1. 把数据加载到显存中 渲染所需数据从硬盘,到内存,再到显存 ...

  5. Implementation: Quick Sort 2014-08-19

    #include <stdio.h> void print(int *a, int start , int end); void quick_sort(int *a, int start, ...

  6. html5 填表 表单 input output 与表单验证

    1.<output>     Js计算结果 <form oninput="res.value = num1.valueAsNumber*num2.valueAsNumber ...

  7. C语言字符数组与字符串

    研究几个案例: 输出图案: #include <stdio.h> void main() { ][] = { {', ' ', ' '}, {', ' '}, {'}, {', ' '}, ...

  8. sqlServer拼结列字符串

    with table1(sessionID,message,createTime)as(select 1 ,'hello' ,'2014/5/6' union allselect 1 ,'word' ...

  9. matlab练习程序(随机直线采样)

    我只是感觉好玩,写了这样一段程序. 原理就是先随机生成两个点,然后根据这两个点画直线,最后在直线上的像素保留,没在直线上的像素丢弃就行了. 最后生成了一幅含有很多空洞的图像. 当然,对含有空洞的图像是 ...

  10. BIEE入门(四)展现层

    BIEE里最终面向最终用户(业务界面使用者的)叫做BIEE的Presentation Layer也即展现层,展现层的定义将是最终用户Web报表开发界面里能够看见的完全一样的样子,所以展现层一般将是以最 ...