Appcan、apicloud、HBuilder 不同之处解析
来源: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个平台的定位是不同的,导致其产品的功能特性不一样。
七 优缺点对比
Appcan、apicloud、HBuilder 不同之处解析的更多相关文章
- uni-app,wex5,APPcan,ApiCloud几款国内webapp开发框架的选型对比
框架列表. https://www.cnblogs.com/xiaxiaxia/articles/5705557.html 前言 近期,要开一个新的项目,APP类型.最重要的需求就是能够随时调整APP ...
- Spring源码解析之ConfigurationClassPostProcessor(二)
上一个章节,笔者向大家介绍了spring是如何来过滤配置类的,下面我们来看看在过滤出配置类后,spring是如何来解析配置类的.首先过滤出来的配置类会存放在configCandidates列表, 在代 ...
- 站在移动互联时代的十字路口上_deviceone
最近总能看到类似“App已死,服务永生”.“App必死,web永生” .“App已死,微信建站已生”这样的文章.不晓得这些网络写手到底是想代表某些公司的立场.还是想要表达怎么样的一个情结,文章中语气都 ...
- Deviceone:站在移动互联时代的十字路口上
最近总能看到类似“App已死,服务永生”.“App必死,web永生” .“App已死,微信建站已生”这样的文章.不晓得这些网络写手到底是想代表某些公司的立场.还是想要表达怎么样的一个情结,文章中语气都 ...
- 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 手写文字识别 ...
- sumdoc t411 dir.txt
C:\Users\zhoufeiyue\Documents\sumdoc t411\(9+条消息)redis Jedis存取list对象和map - shenjianxz的博客 - CSDN博客.mh ...
- 去它的h5,我还是用js写原生跨平台app吧
智能手机功能越来越强大,已经在逐渐替代电脑的作用.百度.腾讯.阿里的移动端日活数也在逐步的赶上甚至超越电脑端用户.叫喊着“mobile first”的公司越来越多,App开发者应运而生,且队伍日趋庞大 ...
- Hybrid框架UI重构之路:一、师其长技以自强
这两年在支撑公司的Hybrid框架的运维发展,让人确认这种移动开发方式确实是一条不错的路.混合应用这种开发方式降低开发难度,极大的提高开发效率,最重要的一点效果可以接近原生应用.框架的本身是需要持续不 ...
- 移动web、webApp、混合APP、原生APP、androd H5混合开发 当无网络下,android怎么加载H5界面
PhoneGap是一个采用HTML,CSS和JavaScript的技术,创建移动跨平台移动应用程序的快速开发平台.它使开发者能够在网页中调用IOS,Android,Palm,Symbian,WP7,W ...
随机推荐
- 20145301《网络对抗》shellcode注入&Return-to-libc攻击深入
20145301<网络对抗>shellcode注入&Return-to-libc攻击深入 Shellcode注入 shellcode是什么? Shellcode是指能完成特殊任务的 ...
- 20145314郑凯杰《网络对抗技术》实验5 MSF基础应用
20145314郑凯杰<网络对抗技术>实验5 MSF基础应用 1.0 MS08_067安全漏洞 1.1 实验目标 了解掌握metasploit平台的一些基本操作,能学会利用已知信息完成简单 ...
- HeyWeGo小组《Java程序设计》 2015—2016年学期团队项目总结
HeyWeGo小组<Java程序设计> 2015—2016年学期团队项目总结 题目简介 一个简单的扫雷小游戏,在12*12的方格盘上,首先可以设定雷的个数,然后点击开始程序就会随机布雷,开 ...
- 51nod 1179 最大的最大公约数 一种筛选的方法
1179 最大的最大公约数 题目来源: SGU 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 收藏 关注 给出N个正整数,找出N个数两两之间最大公约数的最大值 ...
- android 优秀框架整理
程序员界有个神奇的网站,那就是github,这个网站集合了一大批优秀的开源框架,极大地节省了开发者开发的时间,在这里我进行了一下整理,这样可以使我们在使用到时快速的查找到,希望对大家有所帮助! 1. ...
- Appium 自动化测试(6) -- 使用Appium操作YY语音例子
#!/usr/bin/env python # -*- coding: utf-8 -*- import os import unittest from appium import webdriver ...
- bzoj1078
题解: 一道思路题(话说在那个时候有多少人知道左偏树) 考虑最后一个加进来的点 必然满足 (1)从它到根一直是左链上去的 (2)没有左右子树 在这些点中寻找一个最浅的 然后删除 代码: #includ ...
- Java LRU的实现
最近在leetcode上做题的时,看到了一道有关LRU Cache的题目,正好我当初面试阿里巴巴的时候问到的.主要采用linkedHashMap来实现. package edu.test.algori ...
- vue.js 源代码学习笔记 ----- codegen.js
/* @flow */ import { genHandlers } from './events' import { baseWarn, pluckModuleFunction } from '.. ...
- SVN 定时 更新代码 Demo
1. 涉及技术: Winservice: 用system身份后台跑: Quartz:定时任务: SVN 2. 思路: Quartz定时调用cmd 程序,执行SVN update 命令,整个程序寄宿 ...