浅谈Cordova优缺点与环境部署(转载)

浅谈Cordova优缺点与环境部署

作者:苏华杰

简介

Cordova是一个用基于HTML、CSS和JavaScript的,用于创建跨平台移动应用程序的快速开发平台。它使开发者能够利用iPhone、Android、Palm、Symbian、WP7、Bada和Blackberry等智能手机的核心功能——包括地理定位、加速器、联系人、声音和振动等,此外Cordova拥有丰富的插件,可以调用。

优缺点

时下流行的移动Web应用可分为三种:原生应用、Web应用和混合型应用。

  • 原生应用:通过各种应用市场安装,采用平台特定语言开发。
  • Web应用:通过浏览器访问,采用Web技术开发。
  • 混合型应用:通过各种应用市场安装,但采用Web技术开发。它虽然看上去是一个原生应用,但里面访问的实际上是一个Web应用。

原生应用的优势:

  1. 提供最佳的用户体验、最优质的用户界面和最华丽的交互;
  2. 针对不同平台提供不同体验;
  3. 可节省带宽成本;
  4. 可访问本地资源;
  5. 盈利模式明朗。

原生应用的劣势:

  1. 移植到不同平台上比较麻烦;
  2. 维护多个版本的成本比较高;
  3. 需要通过store或market确认;
  4. 盈利需要与第三方分成。

Web应用的优势如下:

  1. 开发成本低;
  2. 适配多种移动设备的成本低;
  3. 跨平台和终端;
  4. 迭代更新容易;
  5. 无需安装成本。

Web应用的劣势如下:

  1. 浏览体验短期内还无法超越原生应用;
  2. 不支持离线模式(HTML5将会解决这个问题);
  3. 消息推送不够及时;
  4. 调用本地文件系统的能力弱。

混合型应用可以说是为了弥补上面两种应用开发模式的缺陷而生,它是两者混合的产物,并且尽可能继承了双方的优势:

首先,它可以让众多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 amazon-fireos
$ cordova platform add android
$ cordova platform add blackberry10
$ cordova platform add firefoxos
$ cordova platform add wp7
$ cordova platform add wp8
$ cordova platform add windows8

此处选择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.battery-status

相机、 媒体重播和捕获:

$ cordova plugin add org.apache.cordova.camera
$ cordova plugin add org.apache.cordova.media-capture
$ cordova plugin add org.apache.cordova.media

访问设备或网路 (档 API) 上的档:

$ cordova plugin add org.apache.cordova.file
$ cordova plugin add org.apache.cordova.file-transfer

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
ripple emulate

打包为发布的应用

打包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

时间: 2024-08-29 03:54:54

浅谈Cordova优缺点与环境部署(转载)的相关文章

Cordova优缺点与环境部署

Cordova优缺点与环境部署

浅谈Java中的equals和==(转载)

在初学Java时,可能会经常碰到下面的代码: 1 String str1 = new String("hello"); 2 String str2 = new String("hello"); 3 4 System.out.println(str1==str2); 5 System.out.println(str1.equals(str2)); 为什么第4行和第5行的输出结果不一样?==和equals方法之间的区别是什么?如果在初学Java的时候这个问题不弄清楚,就

浅谈C#委托和事件(转载)

委托给了C#操作函数的灵活性,我们可使用委托像操作变量一样来操作函数,其实这个功能并不是C#的首创,早在C++时代就有函数指针这一说法,而在我看来委托就是C#的函数指针,首先先简要的介绍一下委托的基本知识: 委托的定义委托的声明原型是 delegate <函数返回类型> <委托名> (<函数参数>)例子:public delegate void CheckDelegate(int number);//定义了一个委托CheckDelegate,它可以注册返回void类型且

辛星浅谈Linux中的环境变量

全局变量和本地环境变量: bash  shell使用一种称为环境变量的特性来存储关于shell会话和工作环境的信息,这也是环境变量的名字的由来.该特性还允许我们把数据存储在内存中,以便于在shell中运行的程序或者脚本中访问它们.bash  shell中共有两种类型的环境变量:全局变量和本地变量. 全局环境变量在shell会话和该shell产生的任何子进程中都可见.而本地变量则只在创建它们的shell中可见.在产生需要父进程信息的子进程的应用程序中,这便体现了全局变量的重要作用.系统环境变量使用

浅谈IT人的发展(转载)

一个人如果能确定他喜欢的行业,他一生都会非常幸福. 相反,则往往痛苦,也许竟然会因此成为一个哲学家也说不定. 中国的贫穷决定了我们当中的大多数人不能根据自己的爱好来选择职业,而只是因为生活所迫,或者世风所迫——当这个社会只 崇尚有钱者有权者的时候,当周围的人不断地向我们灌输这种价值观的时候,我们除非是圣人,要不然都会为之所动的,这就是众所周知的三人成虎,或者鲁迅先生 说的人言可畏. 所以,中国IT行业的从业者当中,有很大一部分做着自己不喜欢的工作.做着不喜欢的工作,倘若这种工作在另外一个方面还有

浅谈mapreduce程序部署

尽管我们在虚拟机client上能非常快通过shell命令,进行运行一些已经封装好实例程序,可是在应用中还是是自己敲代码,然后部署到server中去,以下,我通过程序进行浅谈一个程序的部署过程. 在启动Hadoop之后,然后把程序达成可运行的jar包,并把对应的第三方jar包 包括进去.运行hadoop    jar   XXX. +驱动名称. package com.mapred; import java.io.IOException; import java.io.PrintStream; i

C语言中的位拷贝与值拷贝浅谈(转载)

注:C语言实现的PHP变量的赋值过程中,就涉及到了 深拷贝和浅拷贝 位拷贝拷贝的是地址(也叫浅拷贝),而值拷贝则拷贝的是内容(深拷贝).深拷贝和浅拷贝可以简单理解为:如果一个类拥有资源,当这个类的对象发生复制过程的时候,资源重新分配,这个过程就是深拷贝,反之,没有重新分配资源,就是浅拷贝. 位拷贝,及"bitwise assignment"是指将一个对象的内存映像按位原封不动的复制给另一个对象,所谓值拷贝就是指,将原对象的值复制一份给新对象. 在用"bitwise assig

浅谈C++多态性(转载)

转载:http://blog.csdn.net/hackbuteer1/article/details/7475622 C++编程语言是一款应用广泛,支持多种程序设计的计算机编程语言.我们今天就会为大家详细介绍其中C++多态性的一些基本知识,以方便大家在学习过程中对此能够有一个充分的掌握. 多态性可以简单地概括为“一个接口,多种方法”,程序在运行时才决定调用的函数,它是面向对象编程领域的核心概念.多态(polymorphisn),字面意思多种形状. C++多态性是通过虚函数来实现的,虚函数允许子

浅谈C语言中的联合体(转载)

联合体union 当多个数据需要共享内存或者多个数据每次只取其一时,可以利用联合体(union).在C Programming Language 一书中对于联合体是这么描述的: 1)联合体是一个结构: 2)它的所有成员相对于基地址的偏移量都为0: 3)此结构空间要大到足够容纳最"宽"的成员: 4)其对齐方式要适合其中所有的成员: 下面解释这四条描述: 由于联合体中的所有成员是共享一段内存的,因此每个成员的存放首地址相对于于联合体变量的基地址的偏移量为0,即所有成员的首地址都是一样的.为