来源: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。

该框架的目标用户群体是原生开发者,其设计初衷是希望用户群体能够通过跨平台开发的方法降低原生开发的成本。为此,开发人员需要安装原生开发环境,配置工程,使用HTML5、CSS3、js和原生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提供了云数据库的功能,前端不必了解PHP,Node.js等后端语言,通过JS接口或Restful API实现数据库的增删改查。

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

六 兵器谱PK

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

七 优缺点对比

转载于:https://www.cnblogs.com/zouhao/p/7145937.html

Appcan、apicloud、HBuilder 不同之处解析相关推荐

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

    框架列表. 前言 近期,要开一个新的项目,APP类型.最重要的需求就是能够随时调整APP的绝大部分内容,所以,打算使用webapp的方式开发.在这个大前提下,开始了前期技术选型的工作. 看了uni-a ...

  2. APP开发工具Appcan、apicloud、HBuilder 剖析

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

  3. 小程序使用vant-dialog组件内容出不来_微信官方小程序同构新方案Kbone全解析

    导语 | 本文是Kbone作者june在云加社区微信群中的分享整理总结而成(编辑:尾尾).同时,june将出席11月16日的TWeb腾讯前端技术大会,欢迎现场交流. 大家好,我是来自腾讯微信小程序团队 ...

  4. 如何在Java 8中使用LocalDateTime格式化/解析日期-示例教程

    Java项目中的常见任务之一是将日期格式化或解析为String,反之亦然. 解析日期表示您有一个表示日期的字符串,例如" 2017-08-3",并且要将其转换为表示Java中日期的 ...

  5. ELF文件——DWARF源码解析

    前言 此前LEF文件--栈回溯中只描述了通过exidx进行栈回溯的过程,本文将描述根据eh_frame进行栈回溯的原理及过程. 原理说明 dwarf的核心是一张表格,该表格根据函数的压栈过程获取,以一 ...

  6. Retrofit2深度解析

    Retrofit2深度解析 〇.简介 本文基于implementation 'com.squareup.retrofit2:retrofit:2.5.0' 编写而成. Retrofit是很好的开源项目 ...

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

    最近总能看到类似"App已死,服务永生"."App必死,web永生" ."App已死,微信建站已生"这样的文章.不晓得这些网络写手到底是想代 ...

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

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

  9. 会php会javascript,javascript – 只会php和js但不会java,能做手机应用开发吗?

    有php和js,当然也有html.mysql.css等一系列相关的开发基础,也有linux服务器搭建的基础. 但是对java一窍不通(我也不想学) 能做手机应用的开发吗?ios或者android. 我 ...

最新文章

  1. PAT甲级1053 Path of Equal Weight (30分) :[C++题解]dfs求树的路径长度、邻接表
  2. 牛客多校10 - Identical Trees(dp+二分图最小权匹配)
  3. C语言实现寻找极值点,九之再续:教你一步一步用c语言实现sift算法、上
  4. POJ - 3278 Catch That Cow 简单搜索
  5. HDOJ 1176 免费馅饼 -- 动态规划
  6. Qt之QAbstractItemView视图项拖拽(二)
  7. Hive安装报错:Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient的解决办法
  8. C++文件操作(打开、关闭、文件读取数据存入数组)
  9. 电商管理系统源码_Dubbo/SSM/Elasticsearch/Redis/MySQL搭建分布式电商购物商城
  10. 中国银行业协会首席信息官高峰:银行函证区块链服务平台具备六大优势
  11. ArcGIS Server 开发系列(二)--Web ADF 编程
  12. AS5040磁编码器使用笔记
  13. 软件测试 | 试用期总结万能模板
  14. vue通过for循环生成的checkbox点击一个选中全部的问题
  15. 《MFC如何添加子对话框》
  16. 做一个有志青年,人生才有意义
  17. verification和validation的区别
  18. 时间字符串转Timestamp时间戳
  19. 大数据计算,如何优化SQL?
  20. RS485 配套选型

热门文章

  1. linux安装cd dev ls,linux 第一节 安装
  2. 父元素浮动子元素会浮动吗_为什么quot;overflow:hiddenquot;能清除浮动的影响
  3. java 深拷贝 序列化_java 之 利用序列化实现深拷贝
  4. java追加到文件末尾_Java追加到文件
  5. Android RecyclerView DiffUtil
  6. junit5 动态测试_JUnit 5动态测试– @ TestFactory,DynamicTest
  7. floyd算法 每一层循环_链接列表循环检测– Floyd的循环查找算法
  8. maven之打包插件(maven-assembly-plugin,maven-shade-plugin与maven-assembly-plugin)
  9. [Spring-cloud-eureka]使用 gradle, spring boot,Spring cloud Eureka 搭建服务注册中心
  10. CA服务器的简单搭建