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) ...
随机推荐
- python logging 配置
python logging 配置 在python中,logging由logger,handler,filter,formater四个部分组成,logger是提供我们记录日志的方法:handler是让 ...
- 20145218&20145240 《信息安全系统设计基础》实验一 开发环境的熟悉
20145218&20145240 <信息安全系统设计基础>实验一 开发环境的熟悉 课程:信息安全系统设计基础 班级:1452 姓名:(按贡献大小排名)刘士嘉 张晓涵 学号:(按贡 ...
- SqlServer 不是主键 如何自增
SqlServer 不是主键 如何自增:INSERT INTO dbo.表 VALUES('14-19周',0,(select COUNT(1) from dbo.表)+1) (select COUN ...
- [转]如何将SQL Server表驻留内存和检测
注意这个功能在SQL2005后已经废弃,因为SQL2005会自动管理哪些表常驻内存. 将SQL Server数据表驻留内存是SQL Server提供的一项功能,在一般小型系统的开发过程中估计很少会涉及 ...
- 如何让VMware低版本运行VMware高版本创建的虚拟机
如何让VMware低版本运行VMware高版本创建的虚拟机 问题描述: 本机安装的VMware Workstation是10版本,之前VMware Workstation 11版本创建的虚拟机,在运行 ...
- synchronized同步块和volatile同步变量
Java语言包含两种内在的同步机制:同步块(或方法)和 volatile 变量.这两种机制的提出都是为了实现代码线程的安全性.其中 Volatile 变量的同步性较差(但有时它更简单并且开销更低),而 ...
- 利用tween,使用原生js实现模块回弹动画效果
最近有一个需求,就是当屏幕往下一定像素时,下方会有一个隐藏的模块马上显现出来,向上运动后带有回弹效果.然后屏幕滚回去时这个模块能够原路返回 其实这个效果css3就可以很轻松实现,但是公司要求最低兼容i ...
- 如何安装mysql服务
我刚开始安装mysql的时候,在windows的服务里面可以看到,但是装了以后有一段时间没有用它了,我在准备从windows的服务里面启动mysql服务的时候,发现没有mysql的服务了,那我的解决办 ...
- DuiLib事件分析(一)——鼠标事件响应
最近在处理DuiLib中自定义列表行元素事件,因为处理方案得不到较好的效果,于是只好一层一层的去剥离DuiLib事件是怎么来的,看能否在某一层截取消息,自己重写. 我这里使用CListContaine ...
- ios--时间格式化(cell业务逻辑处理)
一.点击更多按钮 1.项目需求 点击更多按钮,从底部弹出一个框 2.怎么从底部弹出一个框? 两种方法: 一种用 UIActionShee ...