自己写HTML用Cordova打包与用AppCan、Dcloud、WeX5、ApiCloud有何区别?
程序员文章站
2022-04-01 14:54:01
...
本人是一个移动开发/web开发入门者,想问一下,自己编写HTML用Cordova打包,和会用ApiCloud、AppCan、Dcloud、WeX5等工具有什么区别?
我自己写过简单的几种HTML网页(工程):
1)用纯HTML+js+jQuery写过;
2)用jQueryMobile写过;
3)用Phaser[dot]io写过;
这几种方式生成的网页,都用Cordova打包生成apk文件,方法非常非常简单,就是安装Android Studio + npm + cordova,因为Android Studio自动会提供Android SDK/JDK,Cordova就可以自动检测到了,根本不需要像网上以前的文章还要自己安装那么麻烦。而用Cordova的话,几个命令非常简单,再加上签名 keytool -genkey 和 jarsigner ,一分钟就可以讲一个HTML网页工程打包成 apk,并在自己的android手机上安装运行。
我发现,用jQueryMobile生成的APK很慢,使用效果很不舒服,也没深入研究过为什么。
我还发现,Phaser[dot]io生成APK效果非常差,兼容性非常差,不会再考虑碰它了。
我发现,用纯HTML+jQuery生成的APK,效果好极了,比在PC或者手机浏览器上打开对应的网页,速度快的多,感觉很棒。
我其实想知道,我是否只要学习Cordova就够了?因为它那么简单、那么方便快速,而且是本地生成的,不需要什么云端打包(将自己的代码上传到别人的云上,心理真的很不舒服,只有我一个这样吗?)。那么,为什么还需要Dclout(HBuilder), ApiCloud, AppCan, WeX5, 白鹭, Cocos2d-js等等那么多工具呢?这些工具是不是只是对Cordova的封装?还是各自有各自长处呢?
另外,现在网上人们所说的“Hybrid APP"开发,是不是就是指用Cordova开发呢?还是专门指用Dclout(HBuilder), ApiCloud, AppCan, WeX5, 白鹭, Cocos2d-js的开发呢?
Cordova的功能、性能与DCloud的系列产品组合相比,还是差很多的。
DCloud也一样支持本地打包。
前端框架是绝不能用jQueryMobile的,DCloud出品的开源框架mui的性能是目前已知的前端ui框架里效率最高的。 我用Cordova打包和那些框架还真没什么差别,都是混合模式的开发框架,Cordova相对还更开放和主流另外:WeX5就是基于Cordova的,可视化设计和打包向导都做的相当不错,还是免费开源的,强烈推荐
WeX5的打包工具适合所有的Cordova项目,自己做的页面也可以用WeX5打包,我现在都不用Cordova命令行打包了,还是有工具好使 没什么区别,都是做的一样的事情。
只在很早期用过appcan,如有错误可以指正。
cordova开源免费,插件github上找。
appcan企业版应该要几万块吧,部分插件也收费的样子。
不过呢,appcan毕竟面向国内开发者,云端打包,没有很复杂的环境配置和硬件需求,比较符合国情。
然后cordova的插件很多是外国人写的,虽然都是开源免费,但是在国内由于墙的原因有些插件不太好使,比如定位和gcm。 题主说的http://phaser.io不是一个html5 game engine 的官网么?又不是打包工具 个人感觉还是应该看自己的实际使用情况,如果就是自己的应用不复杂,并且自己还有些原生的开发能力,可以直接用Cordova就好了,一切自己搞定。不用依靠这些国内平台了。
但是如果应用比较复杂,要用到很多HTML之外的功能,还想做的体验好点,就要考虑使用这些国内的平台的产品了。总体而言,这些产品都不够完美和成熟,但是国外也没有更好的产品了。这些国内的平台起码还能适配国内的手机和支持国内的服务。更实际点。
本人11开始做移动应用开发,最开始搞IOS开发,后来做外包省成本就一直用AppCan,虽然有各种问题但一直也能齐活,现在做一个幼教类的产品正在尝试用APICloud,以下是本人的一些体会,供楼主参考:
AppCan:
优势:从12年开始一直用,出来的很早,感觉不错,工具、平台、服务都相对比较稳定,好像很多大的国企也在用.
缺点:现在更新和完善不是很及时,一般几个月出一个版本,一些新功能不及时能用。
ApiCloud:
优势:互联网公司,感觉挺草根的,但是推广的很猛,社区挺活跃,各种水平的开发者都有,学习的人分享的东西挺多,做出来的应用体验确实是所有中最好的,应该是内部执行引擎很牛。产品是云端一体(但没有用过他们的数据云),编码工具不是一个集成的工具,是未各个工具提供插件,而且这些插件都开源了,可以自己修改,像自定义代码提示。像我一直用Sublime,这一点就很好,这些扩展插件想真机同步,打Log都挺方便的。
缺点:更新的太快,API不太稳定,有的时候更新的模块出问题,每次他们升级玩都得把自己的应用测试下。在某些安卓手机上优化的有问题,没有AppCan稳定。
Dclout(HBuilder):
优势:Dclout的其他服务没具体用过,HBuilder用过,还是一个很不错的编辑器,整体体验还是不错,像代码提示很智能,基于Eclipse的二次开发能做出这样也挺厉害了。特别是对HTML语法支持浏览器兼容性很好。有个前端框架写CSS挺省事的。
缺点:HBuilder Size太大,而且还得联网使用,整体体验还是Eclipse风格,相比我还是推荐使用Sublime。主要是做出了的应用就是网页的体验,这个实在是不适合用来做应用。做个WebApp还行。
WeX5:没有用过,之前看过他们的一个视频,一个女的讲的,感觉是说照着搞念,一个语气下来,没太耐心看下去。不过推广做的好像也挺猛的,公司好像也是挺大的,但是做出来的应用体验如何没有具体测试过,不做具体评论。
白鹭, Cocos2d-js:这两个应该是做网页游戏的引擎,不是用来做应用的。
到底要用那个其实我感觉也很简单,他们的宣传上都有很多的案例,调几个有代表性的安装到几个手机上运行看看体验就行了。看他们的代码也很简单,用他们开发的应用的网页代码都是在ipa和apk安装包中放着的,把后缀名改成zip, 直接解压出来直接就能看代码了。很简单。 比较熟悉APICloud,答一下吧。
Cordova是把Webapp打包成可以独立安装的应用,推荐使用HTML5,JS,CSS完成应用,提供了一些跨平台的,HTML5或前端暂无法实现的接口。
受手机浏览器的影响,页面的切换和复杂点的交互跟原生应用体验差距明显。
APICloud弥补了一些Webapp的略势,一些用前端实现性能不佳的功能,采用原生语言(Object-C,JAVA)实现,比如最常用的页面切换是基于webview的原生语言实现的,每个页面都是独立的webview。此外还有大量的原生接口提供(设备访问,界面布局,开放SDK等),所有的接口都是以JS形式提供的,前端很容易上手。这种混合应用的形式也是当前比较合理的形式,前端处理比较擅长的页面布局,UI展现,及简单的交互,原生模块负责耗性能的,不易实现的功能实现,彼此联系起来形成一个完整的体验良好的应用。
同时APICloud也提供了云数据库的功能,前端不必了解PHP,Node.js等后端语言,自己通过JS接口或Restful API实现数据库的增删改查。
我自己写过简单的几种HTML网页(工程):
1)用纯HTML+js+jQuery写过;
2)用jQueryMobile写过;
3)用Phaser[dot]io写过;
这几种方式生成的网页,都用Cordova打包生成apk文件,方法非常非常简单,就是安装Android Studio + npm + cordova,因为Android Studio自动会提供Android SDK/JDK,Cordova就可以自动检测到了,根本不需要像网上以前的文章还要自己安装那么麻烦。而用Cordova的话,几个命令非常简单,再加上签名 keytool -genkey 和 jarsigner ,一分钟就可以讲一个HTML网页工程打包成 apk,并在自己的android手机上安装运行。
我发现,用jQueryMobile生成的APK很慢,使用效果很不舒服,也没深入研究过为什么。
我还发现,Phaser[dot]io生成APK效果非常差,兼容性非常差,不会再考虑碰它了。
我发现,用纯HTML+jQuery生成的APK,效果好极了,比在PC或者手机浏览器上打开对应的网页,速度快的多,感觉很棒。
我其实想知道,我是否只要学习Cordova就够了?因为它那么简单、那么方便快速,而且是本地生成的,不需要什么云端打包(将自己的代码上传到别人的云上,心理真的很不舒服,只有我一个这样吗?)。那么,为什么还需要Dclout(HBuilder), ApiCloud, AppCan, WeX5, 白鹭, Cocos2d-js等等那么多工具呢?这些工具是不是只是对Cordova的封装?还是各自有各自长处呢?
另外,现在网上人们所说的“Hybrid APP"开发,是不是就是指用Cordova开发呢?还是专门指用Dclout(HBuilder), ApiCloud, AppCan, WeX5, 白鹭, Cocos2d-js的开发呢?
回复内容:
其实这类的对比在DCloud网站上有,这篇文章写得比较详细:文档 - DCloud问答 。Cordova的功能、性能与DCloud的系列产品组合相比,还是差很多的。
DCloud也一样支持本地打包。
前端框架是绝不能用jQueryMobile的,DCloud出品的开源框架mui的性能是目前已知的前端ui框架里效率最高的。 我用Cordova打包和那些框架还真没什么差别,都是混合模式的开发框架,Cordova相对还更开放和主流另外:WeX5就是基于Cordova的,可视化设计和打包向导都做的相当不错,还是免费开源的,强烈推荐
WeX5的打包工具适合所有的Cordova项目,自己做的页面也可以用WeX5打包,我现在都不用Cordova命令行打包了,还是有工具好使 没什么区别,都是做的一样的事情。
只在很早期用过appcan,如有错误可以指正。
cordova开源免费,插件github上找。
appcan企业版应该要几万块吧,部分插件也收费的样子。
不过呢,appcan毕竟面向国内开发者,云端打包,没有很复杂的环境配置和硬件需求,比较符合国情。
然后cordova的插件很多是外国人写的,虽然都是开源免费,但是在国内由于墙的原因有些插件不太好使,比如定位和gcm。 题主说的http://phaser.io不是一个html5 game engine 的官网么?又不是打包工具 个人感觉还是应该看自己的实际使用情况,如果就是自己的应用不复杂,并且自己还有些原生的开发能力,可以直接用Cordova就好了,一切自己搞定。不用依靠这些国内平台了。
但是如果应用比较复杂,要用到很多HTML之外的功能,还想做的体验好点,就要考虑使用这些国内的平台的产品了。总体而言,这些产品都不够完美和成熟,但是国外也没有更好的产品了。这些国内的平台起码还能适配国内的手机和支持国内的服务。更实际点。
本人11开始做移动应用开发,最开始搞IOS开发,后来做外包省成本就一直用AppCan,虽然有各种问题但一直也能齐活,现在做一个幼教类的产品正在尝试用APICloud,以下是本人的一些体会,供楼主参考:
AppCan:
优势:从12年开始一直用,出来的很早,感觉不错,工具、平台、服务都相对比较稳定,好像很多大的国企也在用.
缺点:现在更新和完善不是很及时,一般几个月出一个版本,一些新功能不及时能用。
ApiCloud:
优势:互联网公司,感觉挺草根的,但是推广的很猛,社区挺活跃,各种水平的开发者都有,学习的人分享的东西挺多,做出来的应用体验确实是所有中最好的,应该是内部执行引擎很牛。产品是云端一体(但没有用过他们的数据云),编码工具不是一个集成的工具,是未各个工具提供插件,而且这些插件都开源了,可以自己修改,像自定义代码提示。像我一直用Sublime,这一点就很好,这些扩展插件想真机同步,打Log都挺方便的。
缺点:更新的太快,API不太稳定,有的时候更新的模块出问题,每次他们升级玩都得把自己的应用测试下。在某些安卓手机上优化的有问题,没有AppCan稳定。
Dclout(HBuilder):
优势:Dclout的其他服务没具体用过,HBuilder用过,还是一个很不错的编辑器,整体体验还是不错,像代码提示很智能,基于Eclipse的二次开发能做出这样也挺厉害了。特别是对HTML语法支持浏览器兼容性很好。有个前端框架写CSS挺省事的。
缺点:HBuilder Size太大,而且还得联网使用,整体体验还是Eclipse风格,相比我还是推荐使用Sublime。主要是做出了的应用就是网页的体验,这个实在是不适合用来做应用。做个WebApp还行。
WeX5:没有用过,之前看过他们的一个视频,一个女的讲的,感觉是说照着搞念,一个语气下来,没太耐心看下去。不过推广做的好像也挺猛的,公司好像也是挺大的,但是做出来的应用体验如何没有具体测试过,不做具体评论。
白鹭, Cocos2d-js:这两个应该是做网页游戏的引擎,不是用来做应用的。
到底要用那个其实我感觉也很简单,他们的宣传上都有很多的案例,调几个有代表性的安装到几个手机上运行看看体验就行了。看他们的代码也很简单,用他们开发的应用的网页代码都是在ipa和apk安装包中放着的,把后缀名改成zip, 直接解压出来直接就能看代码了。很简单。 比较熟悉APICloud,答一下吧。
Cordova是把Webapp打包成可以独立安装的应用,推荐使用HTML5,JS,CSS完成应用,提供了一些跨平台的,HTML5或前端暂无法实现的接口。
受手机浏览器的影响,页面的切换和复杂点的交互跟原生应用体验差距明显。
APICloud弥补了一些Webapp的略势,一些用前端实现性能不佳的功能,采用原生语言(Object-C,JAVA)实现,比如最常用的页面切换是基于webview的原生语言实现的,每个页面都是独立的webview。此外还有大量的原生接口提供(设备访问,界面布局,开放SDK等),所有的接口都是以JS形式提供的,前端很容易上手。这种混合应用的形式也是当前比较合理的形式,前端处理比较擅长的页面布局,UI展现,及简单的交互,原生模块负责耗性能的,不易实现的功能实现,彼此联系起来形成一个完整的体验良好的应用。
同时APICloud也提供了云数据库的功能,前端不必了解PHP,Node.js等后端语言,自己通过JS接口或Restful API实现数据库的增删改查。