PhoneGap和Cordova的区别

[b]Cordova历史发展[/b]
[list][*]・2009年 通过iPhoneDevCamp之后,加拿大Nitobi开发了PhoneGap
[*]・2011年 7月28日PhoneGap 1.0.0发布
[*]・2011年 10月Adobe收购了Nitobi,并把PhoneGap的核心代码codebase捐给了Apache基金会,但保留了PhoneGap的商标所有权
[*]・2011年 Apache最开始孵化这项目时用的名是Apache Callback(PhoneGap 1.1.0)
[*]・2012年 PhoneGap更新到1.4版本后,用Nitobi旧址的街道名Cordova重新命名了这个项目,更广的用户和贡献者、管理透明、更好的文档;但是也产生了品牌歧义(Phonegap、Cordova)[/list]
[url=http://en.wikipedia.org/wiki/PhoneGap]http://en.wikipedia.org/wiki/PhoneGap[/url]

所以,可以把PhoneGap理解为Cordova的一个distribution,但它或多或少的和Cordova有所不同,当然很多不同也是因为要支持PhoneGap Build的。PhoneGap和Cordova的关系就如同Safari和WebKit的关系。

[size=medium][b]PhoneGap is a distribution of Apache Cordova.[/b][/size]

前提版本:
[quote]#cordova -v
3.4.1-0.1.0
#phonegap -v
3.4.0-0.19.21[/quote]

[b](1)CLI[/b]
从以下的依赖关系可以看出PhoneGap实际上内部就是使用了Cordova。
[quote]phonegap@4.2.0-0.24.2
├── pluralize@0.0.4
├── colors@0.6.0-1
├── semver@1.1.0
├── minimist@0.1.0
├── qrcode-terminal@0.9.4
├── shelljs@0.1.4
├── prompt@0.2.11 (revalidator@0.1.8, pkginfo@0.3.0, read@1.0.5, winston@0.6.
2, utile@0.2.1)
├── phonegap-build@0.9.1 (qrcode-terminal@0.8.0, optimist@0.3.7, shelljs@0.0.
9, phonegap-build-api@0.3.3)
├── connect-phonegap@0.14.8 (home-dir@0.1.2, connect-inject@0.3.2, ip@0.3.1,
ncp@0.6.0, findit@2.0.0, shelljs@0.2.6, request-progress@0.3.1, http-proxy@1.8.1
, useragent@2.0.8, gaze@0.4.3, tar@0.1.19, node-static@0.7.0, request@2.33.0, ar
chiver@0.10.1, localtunnel@1.3.0, connect@2.12.0, socket.io@1.0.4)
└── cordova@4.2.0 (underscore@1.7.0, q@1.0.1, nopt@3.0.1, cordova-lib@4.2.0)[/quote]

查看命令的说明:
[quote]#phonegap help
#cordova help[/quote]

官方说明:
[url=https://github.com/apache/cordova-cli]https://github.com/apache/cordova-cli[/url]
[url=https://github.com/phonegap/phonegap-cli]https://github.com/phonegap/phonegap-cli[/url]

最常用的命令都是相似的,Adobe给PhoneGap添加了一些Cordova没有的特性,比如remote build。

1)create命令

[quote]E:\projects>cordova create c1
Creating a new cordova project with name "HelloCordova" and id "io.cordova.hellocordova" at location "E:\projects\c1"[/quote]

[quote]E:\projects>phonegap create p1
[phonegap] the options E:\projects\p1 com.phonegap.helloworld HelloWorld
[phonegap] created project at E:\projects\p1[/quote]

phonegap cli命令中不能指定name和id,需要手动修改config.xml
参考:[url=https://github.com/phonegap/phonegap-cli/issues/263]https://github.com/phonegap/phonegap-cli/issues/263[/url]

2)build命令
phonegap build 统一了Cordova的以下命令:
[list][*]cordova platform add
[*]cordova prepare
[*]cordova compile[/list]

3)serve命令
[list][*]phonegap serve不需要添加平台直接使用,默认端口3000
[*]cordova serve需要添加平台后使用,默认端口8000[/list]

4)local/remote命令
“phonegap local *”
[list][*]build <platform> build a specific platform
[*]install <platform> install a specific platform
[*]run <platform> build and install a specific platform
[*]plugin <command> add, remove, and list plugins[/list]

“phonegap remote *”
[list][*]login login to PhoneGap/Build
[*]logout logout of PhoneGap/Build
[*]build <platform> build a specific platform
[*]install <platform> install a specific platform
[*]run <platform> build and install a specific platform[/list]

cordova emulate 等价于 phonegap local run。

cordova cli更像是Phonegap的local build。
https://github.com/phonegap/phonegap-cli/blob/master/lib/phonegap/util/platform.js
'local' => cordova-cli
'remote' => PhoneGap/Build

phonegap的project命令都会判断是否该工程下有.cordova文件夹。

Cordova判断的是www platforms config.xml

[b](2)Project[/b]

1)www/spec
jasmine的测试代码

2)www/res
phonegap build支持icon和splash

3)config.xml
文件位置
phonegap: /www/config.xml
cordova: /config.xml
***cordova也支持读取www下的config.xml

文件内容:
<icon src="" />
<gap:splash src="" />
<gap:plugin name="org.apache.cordova.camera" />

4)index.html

<script type="text/javascript" src="cordova.js"></script>
<script type="text/javascript" src="phonegap.js"></script>
cordova.js 和 phonegap.js的内容完全是一样的,而且phonegap的native工程里也有cordova.js。

[b](3)Plugin[/b]

phonegap plugin add 是用于phonegap local build的,phonegap remote build的plugin需要在config.xml中添加,互不相干。

[b](4)其他[/b]
[list][*]Phonegap独有功能:Phonegap Build、Phonegap Enterprise、Phonegap Developer App等。
[*]Phonegap使用Cordova,但是各自管理版本,一般Cordova先发布,Phonegap会随后才支持新版。
[*]Phonegap Build里只能使用Phonegap的插件,而Cordova可以导入任意插件。[/list]

参考:
[url=http://blog.tiger-workshop.com/difference-between-phonegap-and-cordova/]http://blog.tiger-workshop.com/difference-between-phonegap-and-cordova/[/url]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值