phonegap开发经验谈之一命令行建立项目和准备工作
一安装与配置
安装命令行配置,这个可以参见网上的.3.0的最好用命令行配置。
大家在安装android sdk的时候,会发现里面自带了一个eclipse,并且继承了adt,直接用这个就好了。当然你已经有别的版本的eclipse并用了很长时间安装插件就可以了。
安装phonegap 3.x首先要安装的就是npm并配置环境变量,这样才能够保证获取到phonegap最新的代码,方便快捷,注意必须在联网的环境下进行操作.当然如果你熟悉git也可以从git上直接下载源码.
安装android sdk以后,ant也是必须安装的,这是构建项目必须的,当然jdk也是必须,都必须配置正确。如果不会去百度。
===================下面是例子=================
F:\>phonegap create f:\demo\demo org.demo Demo
[phonegap] created project at f:\demo\demo
F:\>cd demo
F:\demo>cd demo
F:\demo\demo>tree
文件夹 PATH 列表
卷序列号为 00000200 942D:D5B4
F:.
├─.cordova
│ └─hooks
│ ├─after_build
│ ├─after_compile
│ ├─after_docs
│ ├─after_emulate
│ ├─after_platform_add
│ ├─after_platform_ls
│ ├─after_platform_rm
│ ├─after_plugin_add
│ ├─after_plugin_ls
│ ├─after_plugin_rm
│ ├─after_prepare
│ ├─after_run
│ ├─before_build
│ ├─before_compile
│ ├─before_docs
│ ├─before_emulate
│ ├─before_platform_add
│ ├─before_platform_ls
│ ├─before_platform_rm
│ ├─before_plugin_add
│ ├─before_plugin_ls
│ ├─before_plugin_rm
│ ├─before_prepare
│ └─before_run
├─merges
├─platforms
├─plugins
└─www大家看这个目录很重要,这个目录就是整个应用项目的模版app,如果不用ide的话,直接编辑这里的网页并且用命令行编译也是可以的。不同的是用eclipse | 编译的时候在真机上的速度要比命令行快很多。
├─css
├─img
├─js
├─res
│ ├─icon
│ │ ├─android
│ │ ├─bada
│ │ ├─bada-wac
│ │ ├─blackberry
│ │ ├─ios
│ │ ├─tizen
│ │ ├─webos
│ │ └─windows-phone
│ └─screen
│ ├─android
│ ├─bada
│ ├─bada-wac
│ ├─blackberry
│ ├─ios
│ ├─tizen
│ ├─webos
│ └─windows-phone
└─spec
└─lib
└─jasmine-1.2.0
===================例子结束==================
大家看上面的目录结构,就是利用phonegap的cli命令生成的默认结构
配置完成后生成空白的phonegap项目,最好在这里定义图标,配置文件名
大家看这个目录很重要,这个目录就是整个应用项目的模版app,如果不用ide的话,直接编辑这里的网页并且用命令行编译也是可以的。不同的是用eclipse 编译的时候在真机上的速度要比命令行快很多。我们来看看这个目录.
F:\demo\demo>cd www
F:\demo\demo\www>dir
驱动器 F 中的卷没有标签。
卷的序列号是 942D-D5B4
F:\demo\demo\www 的目录
2014-01-08 09:09 <DIR> .
2014-01-08 09:09 <DIR> ..
2014-01-08 09:09 3,625 config.xml
2014-01-08 09:09 <DIR> css
2014-01-08 09:09 11,401 icon.png
2014-01-08 09:09 <DIR> img
2014-01-08 09:09 1,927 index.html
2014-01-08 09:09 <DIR> js
2014-01-08 09:09 <DIR> res
2014-01-08 09:09 <DIR> spec
2014-01-08 09:09 2,532 spec.html
4 个文件 19,485 字节
7 个目录 76,825,452,544 可用字节
这里面的config.xml就是最初的配置文件,这里面可以直接修改应用程序在手机里显示的名称.
icon.png其实就是项目的图标,128*128,系统会根据这个图标生成在android平台项目的res目录下的图标.注意到这里为止我们只是建立了模版,我们需要添加我们需要的平台,或者你直接build一下android程序都是可以的.直接build会直接生成android程序
F:\demo\demo>phonegap build android
[phonegap] detecting Android SDK environment..
[phonegap] using the local environment
[phonegap] adding the Android platform...
[phonegap] compiling Android...
[phonegap] successfully compiled Android app
可以看到,编译的时候首先寻找android sdk的环境,所以你必须首先配置好,不然build失败.我们再来看目录
F:\demo\demo>tree
文件夹 PATH 列表
卷序列号为 00000200 942D:D5B4
F:.
├─.cordova
│ └─hooks
│ ├─after_build
│ ├─after_compile
│ ├─after_docs
│ ├─after_emulate
│ ├─after_platform_add
│ ├─after_platform_ls
│ ├─after_platform_rm
│ ├─after_plugin_add
│ ├─after_plugin_ls
│ ├─after_plugin_rm
│ ├─after_prepare
│ ├─after_run
│ ├─before_build
│ ├─before_compile
│ ├─before_docs
│ ├─before_emulate
│ ├─before_platform_add
│ ├─before_platform_ls
│ ├─before_platform_rm
│ ├─before_plugin_add
│ ├─before_plugin_ls
│ ├─before_plugin_rm
│ ├─before_prepare
│ └─before_run
├─merges
│ └─android
├─platforms
│ └─android
│ ├─assets
│ │ └─www
│ │ ├─css
│ │ ├─img
│ │ ├─js
│ │ ├─res
│ │ │ ├─icon
│ │ │ │ ├─android
│ │ │ │ ├─bada
│ │ │ │ ├─bada-wac
│ │ │ │ ├─blackberry
│ │ │ │ ├─ios
│ │ │ │ ├─tizen
│ │ │ │ ├─webos
│ │ │ │ └─windows-phone
│ │ │ └─screen
│ │ │ ├─android
│ │ │ ├─bada
│ │ │ ├─bada-wac
│ │ │ ├─blackberry
│ │ │ ├─ios
│ │ │ ├─tizen
│ │ │ ├─webos
│ │ │ └─windows-phone
│ │ └─spec
│ │ └─lib
│ │ └─jasmine-1.2.0
│ ├─bin
│ │ ├─classes
│ │ │ └─org
│ │ │ └─demo
│ │ ├─dexedLibs
│ │ └─res
│ │ ├─drawable
│ │ ├─drawable-hdpi
│ │ ├─drawable-ldpi
│ │ ├─drawable-mdpi
│ │ └─drawable-xhdpi
│ ├─cordova
│ │ ├─lib
│ │ └─node_modules
│ │ ├─.bin
│ │ ├─q
│ │ │ └─benchmark
│ │ └─shelljs
│ │ ├─bin
│ │ ├─scripts
│ │ └─src
│ ├─CordovaLib
│ │ ├─bin
│ │ │ ├─classes
│ │ │ │ ├─com
│ │ │ │ │ └─squareup
│ │ │ │ │ └─okhttp
│ │ │ │ │ └─internal
│ │ │ │ │ ├─http
│ │ │ │ │ └─spdy
│ │ │ │ └─org
│ │ │ │ └─apache
│ │ │ │ └─cordova
│ │ │ ├─dexedLibs
│ │ │ └─res
│ │ ├─gen
│ │ │ └─org
│ │ │ └─apache
│ │ │ └─cordova
│ │ ├─libs
│ │ ├─res
│ │ └─src
│ │ ├─com
│ │ │ └─squareup
│ │ │ └─okhttp
│ │ │ └─internal
│ │ │ ├─http
│ │ │ └─spdy
│ │ └─org
│ │ └─apache
│ │ └─cordova
│ ├─gen
│ │ └─org
│ │ └─demo
│ ├─libs
│ ├─platform_www
│ ├─res
│ │ ├─drawable
│ │ ├─drawable-hdpi
│ │ ├─drawable-ldpi
│ │ ├─drawable-mdpi
│ │ ├─drawable-xhdpi
│ │ ├─values
│ │ └─xml
│ └─src
│ └─org
│ └─demo
├─plugins
└─www
├─css
├─img
├─js
├─res
│ ├─icon
│ │ ├─android
│ │ ├─bada
│ │ ├─bada-wac
│ │ ├─blackberry
│ │ ├─ios
│ │ ├─tizen
│ │ ├─webos
│ │ └─windows-phone
│ └─screen
│ ├─android
│ ├─bada
│ ├─bada-wac
│ ├─blackberry
│ ├─ios
│ ├─tizen
│ ├─webos
│ └─windows-phone
└─spec
└─lib
└─jasmine-1.2.0
你会注意到绿色的多了很多内容其中最重要的是platform下面的内容,这就是我们针对具体平台生成的代码,这个时候才可以说用phonegap开发android手机应用彻底准备完毕.这里有很多文件,感兴趣的可以自己去看.
还要注意的是phonegap的3.0分支,所有的api都是插件的形式,用的时候需要临时添加在命令行,具体可以参考文档.建议使用命令行添加和build程序,这样会自动将添加的插件插入到android代码的配置文件里.我用dw编辑一开始的www目录的文件,然后在命令行里编译,eclipse只是为了运行罢了.
要注意的是在命令行里编译后,eclipse可能会报错,是由于文件不同步的愿意,右键单击项目然后刷新就好了.
要注意到很多功能必须在真机上才能测试的,因为phonegap是针对移动平台的,很多事件浏览器是不支持的.
再比如pg的同源策略,跨域加载文件在真机里也是允许的,但是浏览器不支持.
附赠我的path,和开发无关的设置我都去掉了.
F:\demo\demo>path
PATH=F:\nodej
s\;F:\ant\bin;C:\Program Files\Java\jdk1.7.0_45\bin;C:\Program Files\Java\jdk1.7
.0_45\jre\bin;F:\adt\sdk\tools;F:\adt\sdk\platform-tools;F:\adt\sdk\build-tools;
C:\Users\Administrator\AppData\Roaming\npm;C:\Users\Administrator\AppData\Roamin
g\npm
可以看到java,npm,android sdk和ant都配置了,需要注意的是android adt需要配置三个,分别是:F:\adt\sdk\tools;F:\adt\sdk\platform-tools;F:\adt\sdk\build-tools;
最后是在adt里面利用已有的代码建立应用程序.
下一期是phonegap中加载web页面,并对web页面进行修改
phonegap开发经验谈之一命令行建立项目和准备工作的更多相关文章
- iOS系统提供开发环境下命令行编译工具:xcodebuild
iOS系统提供开发环境下命令行编译工具:xcodebuild[3] xcodebuild 在介绍xcodebuild之前,需要先弄清楚一些在XCode环境下的一些概念[4]: Workspace:简单 ...
- egret命令行编译项目时 版本不对应的问题
egret 命令行编译项目时 如使用 egret build -e 会出现版本不对应的问题 分析原因 A,B项目 A项目使用1.8的egret引擎, B项目使用2.5引擎 但本地引擎升级至2.5.5, ...
- cocos命令行生成项目
cocos命令行生成项目: cocos new GoodDay(项目名称) -p com.boleban.www(包名字) -l cpp(项目类型) -d D:\DevProject\cocos2dx ...
- Maven 命令行创建项目时 Could not find goal ‘create’ in plugin org.apache.maven.plugins:...
使用maven3.3.9 版本,进行命令行创建项目时输入以下命令创建失败 mvn archetype:create -DgroupId=com.zang.maven -DartifactId=sys ...
- [APP] Android 开发笔记 001-环境搭建与命令行创建项目
1. 安装JDK,SDK JDK http://www.oracle.com/technetwork/java/javase/downloads/index.html Android SDK http ...
- [Android] 基于 Linux 命令行构建 Android 应用(二):命令行管理项目
创建 Android 项目 在命令行创建 Android 项目需要用到 android 工具(该工具由 Android SDK 提供,位于 <sdk>/tools/ 目录下.).它能自动生 ...
- 【Nodejs】326- 从零开发一个node命令行工具
本文由 IMWeb 社区授权转载自腾讯内部 KM 论坛.点击阅读原文查看 IMWeb 社区更多精彩文章. 什么是命令行工具? 命令行工具(Cmmand Line Interface)简称cli,顾名思 ...
- Windows下搭建Android NDK开发环境及命令行编译
首先说明本文内的相关安装操作参考<Pro Android C++ with the NDK>一书. 安装 Windows搭建Android NDK开发环境需要安装如下部分(同时需要配置对应 ...
- 前端技术之:如何创建一个NodeJs命令行交互项目
方法一:通过原生的NodeJs API,方法如下: #!/usr/bin/env node # test.js var argv = process.argv; console.log(argv) ...
随机推荐
- Codeforces Round #350 (Div. 2) D2 二分
五一期间和然然打的团队赛..那时候用然然的号打一场掉一场...七出四..D1是个数据规模较小的题 写了一个暴力过了 面对数据如此大的D2无可奈何 现在回来看 一下子就知道解法了 二分就可以 二分能做多 ...
- A trip through the Graphics Pipeline 2011_07_Z/Stencil processing, 3 different ways
In this installment, I’ll be talking about the (early) Z pipeline and how it interacts with rasteriz ...
- ajax for in eval()知识点的应用
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- JavaScript 类式继承与原型继承
交叉着写Java和Javascript都有2年多了,今天来总结下自己所了解的Javascript类与继承. Javascript本身没有类似Java的面向对象的类与继承术语,但其基于原型对象的思想却可 ...
- pageX、pageY全兼容
pageX.pageY全兼容 var pos=function(o,x,y,event){var posX=0,posY=0;var e=event||window.event;if(e.posX|| ...
- 8 ways rich people view the world differently than the average person
Self-made millionaire Steve Siebold spent 26 years interviewing some of the wealthiest people in the ...
- 猿题库 iOS 客户端架构设计-唐巧
序 猿题库是一个拥有数千万用户的创业公司,从20013年题库项目起步到2015年,团队保持了极高的生产效率,使我们的产品完成了五个大版本和数十个小版本的高速迭代. 在如此快速的开发过程中,如何保证代码 ...
- ubuntu安装eclipse配置jdk环境
$ sudo mkdir /usr/local/java //在此目录下新建一个文件夹java $ sudo mv 下载/jdk-8u111-linux-i586.tar.gz /usr/local/ ...
- C# xml压缩包不解压的情况下解析xml内容
string sourceFilePath = @"E:\文件拷贝\xx\3773\3773.zip"; FileInfo fileInfo = new FileInfo(sour ...
- Android利用Java反射机制修改Android System Language
private void updateLanguage(Locale locale) { try { Object objIActMag, objActMagNative; Class clzIAct ...