来源:http://www.mamicode.com/info-detail-1129829.html

现在Hybrid app是一中非常火热的开发模式,在国内对应的开发工具也乱象丛生,有WeX5、crossApp、ExMobi、Appcan、apicloud、HBuilder等。

  其中WeX5只是在PhoneGap外面套了一层壳子,内部的UI都是通过大量的css,js实现的,页面切换也大量采用webapp模式,类似于JQuery Mobile中的框架,太过偏向于webapp,性能得不到较好的体验,而且缺少第三方功能SDK封装支持。

  crossapp是一款实用C++开发跨平台应用的工具,因为Android与IOS应用程序本身就是能够用C++来开发的,所以这也算是一种类原生方式开发,但是C++开发Android应用程序或者开发IOS应用程序很少见,会的人不多,缺少交流平台,自己开发插件比较困难,只能完全依赖官方提供,官方的第三方插件库资源不足,很难满足开发者变态的需求。

  ExMobi是烽火科技研发的一种内部使用的开发平台,当然也可以购买使用权,虽然也有免费版,但是在免费版连推送功能都不开放的情况下你还会选择吗?大量的功能需要购买不同的版本才会提供,对于小型开发团队来说不切实际。

  Appcan是国内最早一批研发Hybrid app开发模式中的一员,其存在时间之久,属目前国内Hybrid app开发平台之最,为什么它能够一直坚持下去?那肯定是有其优点所在。Appcan基于多webview来开发单Activity模式app,最近去除了ActivityGroup,采用Fragment来代替,优化了性能及体验,同时其合作商家广泛,第三方SDK应有尽有,能够很好地满足开发者的变态需求。

  apicloud的一种从Appcan脱离出来的技术,虽说其开发人员有很多是Appcan原来的技术人员,但是这是两种不同的设计方式,它也有大量的第三方SDK支持,并且其UI是令人看着比较舒服的(个人觉得)。

  HBuilder的webview处理方式与apicloud基本类似,其实这种用webview装载网页的技术都大同小异,网上也能找到,只是在于细节点处理方面不同而已。

  Appcan&apicloud&HBuiler

  • 最初使用Appcan的时候感觉其打开新窗口响应较慢,而且其内部UI完全是黑色的,比较难看,当初找相关技术人员,想让其提供能够选择UI主题的接口,但是最后不了了之,在apicloud出来之后,发现其UI效果很好,因此又去研究了一下,发现其窗口响应速度比Appcan要高
  • 现在Appcan引擎已全部开源,开发者能够完全自己Design,主题这些都不是问题,而且我再次测试了窗口响应速度,现在有了明显提高,与apicloud不想上下
  • HBuilder的webview最初一直不看好,因为没有采用硬件加速渲染,渲染比较慢,会出现空白,而他们官方提供的一种方式是预加载,当初我问他们技术,预加载不会过多消耗资源吗?他们技术脱口而出,只要不显示就不消耗资源,不用担心。而且好像还发表了一篇这样的文章介绍预加载的,我就在想,难道我这些年开发一直白学了,哪个程序创建个变量会不消耗资源?预加载你总要创建webview实例吧?这是忽悠谁呢?如果真的不消耗资源为什么你们右面又提供一种模板页构建的方式呢,所有二级页面只需预加载两个嵌套webview就可以。
  • 对于前段UI,Appcan有一套很全面的css与js框架,其完全采用自适应模式。。什么?不知道自适应?好吧一会介绍其区别。HBuilder也有一套UI,js和css比较全,apicloud没有专门的UI,需要用户自己DIY,对于个人来说,我反而倾向于apicloud,因为他们提供的UI中js与css太多而杂,Appcan中js引入了Zepto,Backbone、Underscore库,显得异常臃肿,导致网页加载js效率受影响;HBuilder中所有css与js都在一个文件中,大量不需要用到的样式无法删除,就算你这个页面只需要用到一个按钮样式,那么都需要引入整个css与js
  • 关于自适应,有很多人说,我前端就是自适应的啊,其实那并不能严格说是自适应,你们的布局只能说是根据设备大小进行自适应,而不是分辨率,apicloud和HBuilder的webview会根据设备的分辨率来进行放大或缩小(一般是放大),并不是网页原来的形态,这也就是为什么明明定义的1px的border在Android上看上去是2px或者1.5px的原因。而Appcan中1px就是1dp,其设备大小被修改成与分辨率相等,这就使得网页在webview中保留了原形态,没有放大缩小,其视觉体验非常好,图片等不会失真。其本质原因是Appcan是基于Android 4.4.2的API,也就是API19来开发的,其设置了viewport的支持,在viewport中设置target-densitydpi=device-dpi就可以实现高清晰效果,而apicloud是基于API20以上开发的,Android在4.4以后就不支持viewport属性了,因此在apicloud中设置viewport属性与否没有任何影响,在这点上HBuilder与Appcan类似,能够通过viewport属性来修改像素点,从而得到较好的视觉体验,当然也可以设置成与apicloud一样的情况,这种就具有较好的选择性,但是这种布局就要求有较强的能力了,Appcan中为不同分辨率定义了不同的字体大小,也就是em值对应的像素,在其中布局最好使用em来实现,不要使用px。而在apicloud中使用px能够在不同的手机上达到一样的效果,这就是不同分辨率的适配

跨平台APP----对Cordova,APPCan,DCloud,APICloud四大平台的分析

来源:http://blog.csdn.net/tangzenglei/article/details/50668914

前言:

移动开发是未来一个很重要的IT领域,而跨平台开发将是这一领域最重要的事情。         ----谷震平

一 兵器谱

在国外,最大的是Cordova(PhoneGap,2011年广泛流行),在2012年12月开源。

在国内,按时间顺序,有:

  • 2012年,AppCan
  • 2013年,DCloud
  • 2014年9月,APICloud

二 Cordova

Cordova是Apache软件基金会的一个产品。其前身是PhoneGap,由Nitobi开发,2011年10月,Adobe收够了Nitobi,并且PhoneGap项目也被贡献给Apache软件基金会。Apache在2012年12月,发布了Cordova,截止到2015年12月,最新版面是3.0。

该框架的目标用户群体是原生开发者,其设计初衷是希望用户群体能够通过跨平台开发的方法降低原生开发的成本。为此,开发人员需要安装原生开发环境,配置工程,使用HTML5CSS3js和原生SDK生成应用。

Cordova的优势很明显,可以使用的框架、原生接口、支持平台都很多。但是,外国人写的东西,公司使用后,出现的技术问题难以解决。同时,其在使用jQuery Mobile、Sencha Touch等前端框架的时候,有特效启动慢、页面切换慢、数据请求慢的特点。

三 APPCan

AppCan成立于2010年,2011年推出产品并测试,2012年正式推出品牌,2013年商业模式成型,2014年开发者注册约70w。AppCan不是开源平台,同时,企业版和部分插件是收费的。换句话说,AppCan只是一个卖软件的商业公司。我们认为:这会对其市场的占有率有着直接影响,闭源而没有垄断,所以前景不会太好。

四 DCloud

DCloud大部分产品开源,W3C会员单位,html5中国产业联盟的发起公司之一,在Html5这个行业有一定的江湖地位。旗下四款产品:HBuilder、5+ Runtime、MUI、流应用都是弥补并扩展HTML5特性的产品。该公司的理念就是解决HTML5的性能、工具、能力三方面的问题。MUI是一款不错的前端框架,性能比 jquery Mobile、Bootstrap好很多,主要区别:

  • 设计思路不同,MUI坚持用原生JS做,不依赖jQuery或者Angularjs。
  • MUI调用了5+ Runtime的底层原生加速,比不带原生加速的框架更快。

但是,DCloud毕竟是个新平台,发展才2年,新产品内部存在的Bug还需要很多的测试。在其官方社区中,不少开发者也在呼吁DCloud尽快完善文档和框架。

五 APICloud

APICloud提供原生应用的功能模块(设备访问,界面布局,开放SDK等),开发者可以通过JS调用。前端工程师负责页面布局,UI展现,及简单的交互,原生模块负责性能方面和功能实现,两者结合形成一个完整的应用。同时APICloud提供了云数据库的功能,前端不必了解PHPNode.js等后端语言,通过JS接口或Restful API实现数据库的增删改查。

但是APICloud的更新速度很快,版本不太稳定。而且,它是为不懂APP开发的人士准备的,不适合科技公司和程序员。

六 兵器谱PK

由上表可知,4个平台的定位是不同的,导致其产品的功能特性不一样。

七 优缺点对比

Appcan、apicloud、HBuilder 不同之处解析的更多相关文章

  1. uni-app,wex5,APPcan,ApiCloud几款国内webapp开发框架的选型对比

    框架列表. https://www.cnblogs.com/xiaxiaxia/articles/5705557.html 前言 近期,要开一个新的项目,APP类型.最重要的需求就是能够随时调整APP ...

  2. Spring源码解析之ConfigurationClassPostProcessor(二)

    上一个章节,笔者向大家介绍了spring是如何来过滤配置类的,下面我们来看看在过滤出配置类后,spring是如何来解析配置类的.首先过滤出来的配置类会存放在configCandidates列表, 在代 ...

  3. 站在移动互联时代的十字路口上_deviceone

    最近总能看到类似“App已死,服务永生”.“App必死,web永生” .“App已死,微信建站已生”这样的文章.不晓得这些网络写手到底是想代表某些公司的立场.还是想要表达怎么样的一个情结,文章中语气都 ...

  4. Deviceone:站在移动互联时代的十字路口上

    最近总能看到类似“App已死,服务永生”.“App必死,web永生” .“App已死,微信建站已生”这样的文章.不晓得这些网络写手到底是想代表某些公司的立场.还是想要表达怎么样的一个情结,文章中语气都 ...

  5. Atitit s2018.2 s2 doc list on home ntpc.docx  \Atiitt uke制度体系 法律 法规 规章 条例 国王诏书.docx \Atiitt 手写文字识别 讯飞科大 语音云.docx \Atitit 代码托管与虚拟主机.docx \Atitit 企业文化 每日心灵 鸡汤 值班 发布.docx \Atitit 几大研发体系对比 Stage-Gat

    Atitit s2018.2 s2 doc list on home ntpc.docx \Atiitt uke制度体系  法律 法规 规章 条例 国王诏书.docx \Atiitt 手写文字识别   ...

  6. sumdoc t411 dir.txt

    C:\Users\zhoufeiyue\Documents\sumdoc t411\(9+条消息)redis Jedis存取list对象和map - shenjianxz的博客 - CSDN博客.mh ...

  7. 去它的h5,我还是用js写原生跨平台app吧

    智能手机功能越来越强大,已经在逐渐替代电脑的作用.百度.腾讯.阿里的移动端日活数也在逐步的赶上甚至超越电脑端用户.叫喊着“mobile first”的公司越来越多,App开发者应运而生,且队伍日趋庞大 ...

  8. Hybrid框架UI重构之路:一、师其长技以自强

    这两年在支撑公司的Hybrid框架的运维发展,让人确认这种移动开发方式确实是一条不错的路.混合应用这种开发方式降低开发难度,极大的提高开发效率,最重要的一点效果可以接近原生应用.框架的本身是需要持续不 ...

  9. 移动web、webApp、混合APP、原生APP、androd H5混合开发 当无网络下,android怎么加载H5界面

    PhoneGap是一个采用HTML,CSS和JavaScript的技术,创建移动跨平台移动应用程序的快速开发平台.它使开发者能够在网页中调用IOS,Android,Palm,Symbian,WP7,W ...

随机推荐

  1. 20145336张子扬 《网络对抗》逆向及bof基础

    20145336张子扬 <网络对抗>逆向及bof基础 学习知识点 缓冲区溢出 缓冲区溢出 一种非常普遍.非常危险的漏洞,在各种操作系统.应用软件中广泛存在.利用缓冲区溢出攻击,可以导致程序 ...

  2. Javaworkers团队最终项目总结

    Javaworkers团队最终项目总结 小组成员 20145205武钰 20145222黄亚奇 20145235李涛 20145103冯文华 团队项目总结 案例提出及工程用时 本次项目由十一到十六周共 ...

  3. HashMap 遍历的两种方式及性能比较

    HashMap 是Java开发中经常使用的数据结构.相信HashMap 的基本用法你已经很熟悉了.那么我们该如何遍历HashMap 呢?哪种遍历方式的性能更好呢?本篇文章来为你解决这个疑惑. 一.Ha ...

  4. 第7章 调试和错误处理 7.1.1 VS中的调试

    VS有一个输出窗口,调用方法是 需要注意的是,这个窗口有两个模式,使用其中的下拉列表就可以选择这些模式.可以在Build和Debug模式之间切换.Build和Debug模式分别显示编译和运行期间的信息 ...

  5. [place recognition]NetVLAD: CNN architecture for weakly supervised place recognition 论文翻译及解析(转)

    https://blog.csdn.net/qq_32417287/article/details/80102466 abstract introduction method overview Dee ...

  6. Flask 3 程序的基本结构2

    NOTE 1.hello.py 通过修饰器的route方法添加动态路由: #!/usr/bin/env python from flask import Flask app = Flask(__nam ...

  7. CAP原则和BASE理论

    CAP原则 CAP原则又称CAP定理,是一个经典的分布式系统理论.CAP理论告诉我们:一个分布式系统不可能同时满足一致性(C:Consistency).可用性(A:Availability)和分区容错 ...

  8. Eclipse.导出可执行的jar(包含第3方jar)

    1.不包含 第三方jar 的情况: (1)项目右键--> Export... --> 选择"JAR file"(记得有看到有的博客上写的是选择"Runnabl ...

  9. 【SQL Server高可用性】数据库复制:SQL Server 2008R2中数据库复制

    经常在论坛中看到有人问数据同步的技术,如果只是同步少量的表,那么可以考虑使用链接服务器+触发器,来实现数据同步,但当要同步的数据表比较多,那么可以考虑用数据库复制技术,来实现数据的同步. 一.使用场景 ...

  10. mysql--------命令来操作表

    常用的通过mysql命令来更改表结构的一些sql语句,包括添加.删除.修改字段.调整字段顺序. 添加字段: alter table `user_movement_log` Add column Gat ...