最早接触PhoneGap平台是在1年多之前,可以使用HTML、CSS和JavaScript跨平台来编写Android或者IOS设备程序。而且应用的核心代码不须要多少改动就行移植。确实让我感觉的到它应该是未来移动设备开发的趋势。

Web程序猿,特别是前端程序猿,可以轻松的通过Web技术来编写移动设备软件。

可是当时给我带来的感觉是应用的响应速度太慢,提供的API不全。可以实现的功能不多。PhoneGap经过1年多的沉淀。现在过头再来看PhoneGap,它又是什么样的呢?有哪些进步呢?

Cordova是什么?

Apache Cordova是PhoneGap贡献给Apache后的开源项目,是从PhoneGap中抽出的核心代码,是驱动PhoneGap的核心引擎。

Cordova是一个设备API的集合,它同意手机开发人员通过JavaScript去訪问设备原生功能,比如相机。重力感应等。

结合UI框架,比如jQuery Mobile,Dojo Mobile或者Sencha Touch。能够让开发人员通过HTML,CSS和JavaScript开发手机应用。

当使用Cordova的API时,应用能够在没有不论什么原生代码(Java。Object-C等)的情况下构建。而且,尽管使用着Web开发技术。可是该应用却是在本机执行,而不是远程的Web应用)。

而且由于提供的JavaScript的API在多个设备平台都保持一致性而且基于web标准,所以,应用能够在差点儿没有不论什么改动的情况下应用到各个不同的设备平台。

使用Cordova开发的应用仍然是使用平台的SDK打包,能够放置到每一个设备平台的应用商店中。

Cordova提供了一套统一的JavaScript库,其背后使用平台相应的代码来驱动设备。Cordova支持的平台有:IOS。Android,Blackberry。Windows Phone。Palm WebOS。Bada和Symbian。

怎样開始Cordova编程?

1.下载并安装node.js(假设你已经安装过,就不用了)

http://nodejs.org/

2.安装Cordova

1
sudo npm install -g cordova

3.创建应用程序

1
cordova create hello com.example.hello HelloWorld

4.加入应用平台

这里加入的是Android应用程序

你可能会得到例如以下信息:

Error: ERROR : executing command ‘ant’, make sure you have ant installed and added to your path.

说明你须要安装ant,方法例如以下:

1
2
brew update
brew install ant

然后加入应用平台

1
cd hello

首先进入到hello文件夹下

1
cordova platform add android

这里也能够删除一个应用平台

1
cordova platform rm android

通过ls命令

1
cordova platforms ls

能够查看你安装关于平台的信息,比如。我的是:

Installed platforms: android 3.3.0

Available platforms: blackberry10, firefoxos, ios

5.构建应用程序

在进行构建之前,先确保你的Android SDK配置好了。

须要下载Android的SDK,并设置Path到系统路径下。

安装Android SDK(Mac平台。下载解压缩即可)

配置SDK的Path到系统路径

1
touch ~/.bash_profile; open ~/.bash_profile

在profile文件里加一句话:

export PATH=${PATH}:/Users/twer/Downloads/adt-bundle-mac-x86_64-20131030/sdk/platform-tools:/Users/twer/Downloads/adt-bundle-mac-x86_64-20131030/sdk/tools

记得要指定你自己的路径。

最后还要运行profile将它更新到你的系统path下。

1
source ~/.bash_profile

然后你就能够開始构建了:

1
cordova build

当然你也能够正对某一个平台构建:

1
cordova build android

6.在模拟器上执行

1
cordova emulate android

此时,模拟器会启动。并自己主动安装应用,效果应该例如以下:

7.实体机上执行

将你的设备插到电脑上,然后执行命令:

1
cordova run android

应用程序将被安装到你的手机。

版权声明:本文博客原创文章,博客,未经同意,不得转载。

Cordova探险系列(一个)的更多相关文章

  1. Cordova探险系列(三)

    自从3.0之后.Cordova默认是关闭全部关于设备原生特性功能的,所以我们要通过加入插件来启动原生特性. 这里以Accelerometer(加速度感应器)为例,来学习怎样使用设备原生特性. 1.加入 ...

  2. Cordova入门系列(二)分析第一个helloworld项目 转发 https://www.cnblogs.com/lishuxue/p/6015420.html

    Cordova入门系列(二)分析第一个helloworld项目   版权声明:本文为博主原创文章,转载请注明出处 上一章我们介绍了如何创建一个cordova android项目,这章我们介绍一下创建的 ...

  3. Cordova入门系列(三)Cordova插件调用 转发 https://www.cnblogs.com/lishuxue/p/6018416.html

    Cordova入门系列(三)Cordova插件调用   版权声明:本文为博主原创文章,转载请注明出处 上一章我们介绍了cordova android项目是如何运行的,这一章我们介绍cordova的核心 ...

  4. Cordova入门系列(四)自定义Cordova插件--showToast

    前三篇Cordova入门系列,简单讲解了Cordova,以及如何调用Cordova插件,今天我们讲解一下如何自己做一个插件. 自定义插件,就是自己写一些安卓java代码,然后和js代码以及配置文件,封 ...

  5. Cordova入门系列(一)创建项目 转发 https://www.cnblogs.com/lishuxue/p/6008678.html

    版权声明:本文为博主原创文章,转载请注明出处 Cordova是什么? 初学Cordova的人,虽然了解一点点,知道Cordova是用来将html, css, js变成app的,但并不知道到底是怎么用的 ...

  6. Cordova入门系列(一)创建项目

    Cordova是什么? 初学Cordova的人,虽然了解一点点,知道Cordova是用来将html, css, js变成app的,但并不知道到底是怎么用的,原理是什么.经常会有这样的困惑: 它是一个可 ...

  7. Cordova入门系列(二)分析第一个helloworld项目

    版权声明:本文为博主原创文章,转载请注明出处 上一章我们介绍了如何创建一个cordova android项目,这章我们介绍一下创建的那个helloworld项目的代码,分析其运行. MainActiv ...

  8. Cordova入门系列(三)Cordova插件调用

    版权声明:本文为博主原创文章,转载请注明出处 上一章我们介绍了cordova android项目是如何运行的,这一章我们介绍cordova的核心内容,插件的调用.演示一个例子,通过cordova插件, ...

  9. MVC系列——一个异常消息传递引发的思考

    前言:最近在某个项目里面遇到一个有点纠结的小问题,经过半天时间的思索和尝试,问题得到解决.在此记录一下解决的过程,以及解决问题的过程中对.net里面MVC异常处理的思考.都是些老生常谈的问题,不多说, ...

随机推荐

  1. SE 2014年4月30日

    如图配置: SW1 SW2 SW3 SW4组成一环型网络 Sw2 和Sw4个存在两业务vlan(vlan 10 和vlan 20) 1.Smart Link 组1 的引用实例1(绑定VLAN 10 ) ...

  2. SQL Server 2008备份数据库失败,拒绝访问的原因

    原文:SQL Server 2008备份数据库失败,拒绝访问的原因 备份数据到特定目录是出现拒绝访问,然后测试备份到C盘根目录正常. 查了下原因: 是因为那个目录没有Authenticated Use ...

  3. URAL 1297 后缀数组:求最长回文子串

    思路:这题下午搞了然后一直WA,后面就看了Discuss,里面有个数组:ABCDEFDCBA,这个我输出ABCD,所以错了. 然后才知道自己写的后缀数组对这个回文子串有bug,然后就不知道怎么改了. ...

  4. poj 2992 Divisors 整数分解

    设m=C(n,k)=n!/((n-k)!*k!) 问题:求m的因数的个数 将m分解质因数得到 p1有a1个 p2有a2个 .... 因为每一个质因数能够取0~ai个(所有取0就是1,所有取ai就是m) ...

  5. LeetCode: Valid Palindrome [125]

    [题目] Given a string, determine if it is a palindrome, considering only alphanumeric characters and i ...

  6. Windows Phone开发(40):漫谈关键帧动画之中篇

    原文:Windows Phone开发(40):漫谈关键帧动画之中篇 一.DiscreteDoubleKeyFrame 离散型关键帧动画,重点,我们理解一下"离散"的意思,其实你查一 ...

  7. 飘逸的python - 发送带各种类型附件的邮件

    上一篇博文演示了如何发送简单的邮件,这一篇将演示如何发送各种类型的附件. 基本思路就是,使用MIMEMultipart来标示这个邮件是多个部分组成的,然后attach各个部分.如果是附件,则add_h ...

  8. Yii/Yii2:查询返回以某特定列为索引(键)的数组

    在Yii1.x中,要想查询语句返回以特定列为键(key)的数组数据,代码例如以下(下述样例以表主键为返回数组索引): $users = User::model()->findAll(array( ...

  9. TextView 使用自定义的字体和亮点

    尊重原创:http://blog.csdn.net/yuanzeyao/article/details/40478815 如今非常多应用中喜欢使用自己定义字体,今天我就来实如今TextView中使用自 ...

  10. Date()创建日期

    哎. .这些人变得懒惰个月...经过以上撰写博客的工作 上周五测试报告的问题.上述日期的计算是有问题.两个日期之间的差异原创1天,然而,系统将计算的差31天. (就在那一天2014年10月31日本 星 ...