浅谈Cordova优缺点与环境部署(转载)
作者:苏华杰
简介
Cordova是一个用基于HTML、CSS和JavaScript的,用于创建跨平台移动应用程序的快速开发平台。它使开发者能够利用iPhone、Android、Palm、Symbian、WP7、Bada和Blackberry等智能手机的核心功能——包括地理定位、加速器、联系人、声音和振动等,此外Cordova拥有丰富的插件,可以调用。
优缺点
时下流行的移动Web应用可分为三种:原生应用、Web应用和混合型应用。
- 原生应用:通过各种应用市场安装,采用平台特定语言开发。
- Web应用:通过浏览器访问,采用Web技术开发。
- 混合型应用:通过各种应用市场安装,但采用Web技术开发。它虽然看上去是一个原生应用,但里面访问的实际上是一个Web应用。
原生应用的优势:
- 提供最佳的用户体验、最优质的用户界面和最华丽的交互;
- 针对不同平台提供不同体验;
- 可节省带宽成本;
- 可访问本地资源;
- 盈利模式明朗。
原生应用的劣势:
- 移植到不同平台上比较麻烦;
- 维护多个版本的成本比较高;
- 需要通过store或market确认;
- 盈利需要与第三方分成。
Web应用的优势如下:
- 开发成本低;
- 适配多种移动设备的成本低;
- 跨平台和终端;
- 迭代更新容易;
- 无需安装成本。
Web应用的劣势如下:
- 浏览体验短期内还无法超越原生应用;
- 不支持离线模式(HTML5将会解决这个问题);
- 消息推送不够及时;
- 调用本地文件系统的能力弱。
混合型应用可以说是为了弥补上面两种应用开发模式的缺陷而生,它是两者混合的产物,并且尽可能继承了双方的优势:
首先,它可以让众多Web开发人员几乎零成本地转型成移动应用开发者。
其次,相同的代码只需针对不同平台进行编译就能实现在多平台的分发,大大提高了多平台开发的效率。而相较于Web应用,开发者可以通过包装好的接口调用大部分常用的系统API。
作为本文所讲的Cordova,Cordova正是混合型框架中的佼佼者,它基于标准的Web技术——HTML、JavaScript和CSS,用JavaScript包装平台的API供开发者调用,具备强大的编译工具来为不同平台生成应用,同时拥有丰富的第三方资源和产业链。
PhoneGap在Web应用和设备之间搭建了一个通信的桥梁,封装了移动设备的平台差异,统一使用JavaScript接口访问设备本地API,以此提供了一个优秀的跨平台解决方案。
相信大家都对移动应用开发的框架使用已经有大概了解。接下来就讲述Cordova的环境部署。
用命令行的方式来部署Cordova:
1.安装 nodejs
下载:http://nodejs.org/download/.安装完毕后需要重启。
2.安装 cordova
打开cmd命令行,执行:npm install -g cordova
安装约10分钟。

3.安装 ant
下载ant包,解压到一个文件夹,如:D:\program files\apache-ant-1.9.4
配置该路径到环境变量中,此时若android sdk未配置环境变量的,一并配置。以防后面报错。
4.创建一个 cordova 工程
cordova create hello com.shj.helloworld helloapp |
其中,第一个 hello 是文件夹的名称;om.shj.helloworld 是app id,第二个 helloapp是工程的名称,也是应用的名称。
提示下载库,请等待。

下载完成。
5.进入工程文件夹
cd hello |
6.添加平台支持
有多种平台可选.命令如下:
$ cordova platform add ios |
此处选择cordova platform add android
在工程文件夹下输入该命令:

项目创建完毕。
7.添加插件支持
主要为系统硬件访问的插件,常见如照相机、媒体访问、设备访问、加速设备、定位设备等。可以动态的按需求去添加,譬如按以下方式添加,,更多插件请去cordova 官网查看。
基本设备资讯 (设备 API):
$ cordova plugin add org.apache.cordova.device |
网路连接和电池事件:
$ cordova plugin add org.apache.cordova.network-information |
相机、 媒体重播和捕获:
$ cordova plugin add org.apache.cordova.camera |
访问设备或网路 (档 API) 上的档:
$ cordova plugin add org.apache.cordova.file |
8.构建应用
cordova build

若上图出现此命令需更新ant版本

上图出现该提示,BUILD成功。即将 hello/www 下的内容,构建到添加的各平台内。如 android 平台,会构建到此目录:hello\platforms\android\assets\www。
9.测试应用
A)在模拟器上安装测试应用
如android平台,应先将 android 模拟器启动并打开。
cordova emulate android |
B)使用真机测试(推荐)
可使用如下命令:
cordova run android |
C)在浏览器中运行
cordova serve android |
D)使用 Ripple Emulator 调试
npm install -g ripple-emulator |
打包为发布的应用
打包android应用:借助 eclipse 来完成。
打开安装配置好 adt 插件的 eclipse ,使用向导导入一个 android 项目的方式,选择当前工程文件夹,此时会显示导入两个项目,导入即可。


项目成功导进来了。

接下来就可以把网页直接放到项目里面了。
先看PC直接打开网页的效果。



这是未修改配置的启动界面。也就是刚刚PC端打开的网页。网页就存在android项目asset目录下面。引用路径如上图所示file:///android_asset/www/index.html
通过360手机助手查看手机界面,可以看到刚刚的界面已经成功引导进去了。

在此Cordova的环境部署已经大功告成了。Web开发人员可以很轻易的开发移动应用了。更多详细的插件请查看官网,在此不一一细说了。
原文地址:http://express.ruanko.com/ruanko-express_74/technologyexchange6.html
浅谈Cordova优缺点与环境部署(转载)的更多相关文章
- 浅谈Cordova框架的一些理解
前言 因为工作原因,最近需要研究Cordova框架,看了其中的源码和实现方式,当场在看的时候马上能理解,但是事后再回去看相关源码时候却发现之前理解的内容又忘记了,又不得不重新开始看,所以总觉得需要记录 ...
- 浅谈命令查询职责分离(CQRS)模式---转载
在常用的三层架构中,通常都是通过数据访问层来修改或者查询数据,一般修改和查询使用的是相同的实体.在一些业务逻辑简单的系统中可能没有什么问题,但是随着系统逻辑变得复杂,用户增多,这种设计就会出现一些性能 ...
- 浅谈SharePoint 2013 站点模板开发 转载自http://www.cnblogs.com/jianyus/p/3511550.html
一直以来所接触的SharePoint开发,都是Designer配合Visual Studio,前者设计页面,后者开发功能,相互合作,完成SharePoint网站开发.直到SharePoint 2013 ...
- 浅谈Java中的equals和==(转载)
在初学Java时,可能会经常碰到下面的代码: 1 String str1 = new String("hello"); 2 String str2 = new String(&qu ...
- 浅谈 Python 的 with 语句 【转载】
引言 with 语句是从 Python 2.5 开始引入的一种与异常处理相关的功能(2.5 版本中要通过 from __future__ import with_statement 导入后才可以使用) ...
- 浅谈C#委托和事件(转载)
委托给了C#操作函数的灵活性,我们可使用委托像操作变量一样来操作函数,其实这个功能并不是C#的首创,早在C++时代就有函数指针这一说法,而在我看来委托就是C#的函数指针,首先先简要的介绍一下委托的基本 ...
- 浅谈IT人的发展(转载)
一个人如果能确定他喜欢的行业,他一生都会非常幸福. 相反,则往往痛苦,也许竟然会因此成为一个哲学家也说不定. 中国的贫穷决定了我们当中的大多数人不能根据自己的爱好来选择职业,而只是因为生活所迫,或者世 ...
- 浅谈mapreduce程序部署
尽管我们在虚拟机client上能非常快通过shell命令,进行运行一些已经封装好实例程序,可是在应用中还是是自己敲代码,然后部署到server中去,以下,我通过程序进行浅谈一个程序的部署过程. 在启动 ...
- 浅谈Windows环境下DOS及MS-DOS以及常见一些命令的介绍
浅谈Windows环境下DOS及MS-DOS以及常见一些命令的介绍 前记 自己是搞编程的,首先我是一个菜鸟,接触计算机这么久了,感觉很多计算机方面的技术和知识朦朦胧胧.模模糊糊,貌似有些贻笑大方了:所 ...
随机推荐
- 查看HDFS集群信息
clusterID:集群ID,必须保持一致 1)在NameNode上查看 cat $HADOOP_HOME/dfs/name/current/VERSION #Fri Apr 18 11:56:57 ...
- SuSE Linux上修改主机名
1) 临时修改主机名 临时修改使用hostname即可,格式为:hostname 新主机名.Hostname命令除可以临时修改主机名外,还可以用它来查看主机名,不带参数执行它,即为查看主机名. 2) ...
- 第05章 管理ElasticSearch
本章内容 如何选择正确的目录实现,使得ElasticSearch能够以高效的方式访问底层I/O系统. 如何配置发现模块来避免潜在的问题. 如何配置网关模块以适应我们的需求. 恢复模块能带来什么,以及如 ...
- [Selenium With C#基础教程] Lesson-06 单选按钮
作者:Surpassme 来源:http://www.jianshu.com/p/08ee1929875f 声明:本文为原创文章,如需转载请在文章页面明显位置给出原文链接,谢谢. 单选按钮通常用在需要 ...
- Python之模块一
1 >模块介绍: 模块,用一坨代码实现了某个功能的代码集合,类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的 重用性和代码间的吻合, ...
- .net core 使用redis 基于 StackExchange.Redis
一.添加引用包 StackExchange.Redis Microsoft.Extensions.Configuration 二.修改配置文件 appsettings.json { " ...
- Luckily general gradient for spherical harmonics is defined
http://web4.cs.ucl.ac.uk/staff/j.kautz/publications/gradientSH_RS04.pdf
- 使用 dlv 调试go 程序
目录 使用 dlv 调试smartraiden 一 正常启动 smartraiden 二 dlv 调试 三 dlv attach 使用 dlv 调试smartraiden by 白振轩 使用 dlv ...
- 二十、Node.js- WEB 服务器 (三)静态文件托管、 路 由
1.Nodejs 静态文件托管 上一讲的静态 web 服务器封装 项目结构: Web服务器封装成的模块:router.js代码: var http=require('http'); var fs=re ...
- Linux--多用户登录服务器端口抓包
以root身份登录1.新建用户组用命令groupadd test2.添加用户useradd -d /home/test/bei_1 -s /bin/sh -g test -m bei_1此命令新建了一 ...