phonegap android篇

最近在使用phonegap 经过各方摸索和阅读各种资料碰到的问题都一一解决了,在这里写个总结方便大家和自己以后查阅,第13步以后可以不用理会前面就足以生成并发布APP了

升级项目cordova ,现在是3.5.0版本

D:\projectName>cordova platform update android

  1. Phonegap的安装,每一步都有相应的命令去检查到底有没有正确安装 ,如果没有后面编译的时候也有足够的提示信息提示哪里没有安装正确

环境 : WIN系统,JDK,Android,Eclipse,Ant,Git,PhoneGap3.x (Cordova)

1. 安装JRE,设置JAVA_HOME,比如JAVA_HOME=C:\program\Java\jre6\bin, 具体如何设置可以查看JDK的设置

检查:打java -version可查看java版本 如果确定装了JDK 但是打java出现找不到命令 那就是PATH没设置好了 在win7的环境变量里面设置 把JDK安装目录下的bin目录 复制进去

2. Cordova支持Android 2.2, 2.3, and 4.x.

下载安装SDK: http://developer.android.com/sdk/index.html

安装Android SDK,比如安装在c:\android-sdk\,需要把c:\android-sdk\tools和platform-tools添加到系统PATH环境变量中。

要不出后面第8步出错误:

[Error: The command `android` failed. Make sure you have the latest Android SDK installed, and the `android` command (inside the tools/ folder) added to your path. Output: ‘android’......   ]

3. 安装Eclipse,要能支持Android项目。http://www.eclipse.org/downloads/

4. 安装ant,并将ant.bat所在目录加到path环境变量,如c:\apache-ant\bin\,http://ant.apache.org  .

5. 安装Node.js,安装成功后,可在命令行输入命令:node 或 npm .   http://nodejs.org/  。

(注:以下所有命令都在nodejs命令行窗口中输入的)

6. 安装PhoneGap工具集: 打开命令行,运行:npm install -g phonegap

7. 把盘符转到想要创建项目的目录,比如 c:\。

8.  创建App,运行:phonegap/cordova create hello com.vmeitime.hello HelloWorld

将在c:\hello下创建名为HelloWorld的项目,HTML5文件在C:\hello\www目录里。

第一个参数hello表示项目文件夹名,在此文件夹下会生成www子目录作为主页面存入目录,包括有css,js和img资源。 其中config.xml包括了重要的资源描述和项目配置信息.

第2个参数是可选的,com.vmeitime.hello表示项目包名; 第3个参数:HelloWord表示显示的文本;

也可用-i 和-n 命令选项: c:\> phonegap create hello -n HelloWorld -i com.vmeitime.hello

c:\> phonegap create hello --name HelloWorld --id com.vmeitime.hello

当然,命令执行后,以上信息也可在后续开发中修改comfig.xml中的相应值。

9.  后续操作都要在创建的项目目录下进行:cd hello

10. 运行build命令,输入不同平台标识,生成不同平台下的相应文件。如下以android设备为例:

c:\hello> phonegap build android ,如果要build release 版本 :cordova build android –release(这里必须用cordova, 用phonegap无法生成release 版本)

要查看详细(verbose)执行过程,可增加命令参数-V :

c:\hello> phonegap -V build android

之后可以看到C:\hello\platforms\android里出现Android项目。

11. 在模块器或移动设备上测试App: c:\hello>phonegap install android

d:\projectName\platforms\android\ant-build>phonegap run android

也可用参数e专门指定运行在模块器上: c:\hello>phonegap -e install android

12. build和运行(相当于上面build和install两步骤操作):c:\hello>phonegap run android

也可用参数e专门指定运行在模块器上:c:\hello>phonegap -e run android

13 对release版本进行签名,首先你要先生成一个Keystore

这条命令是对release版本进行签名 这样才能发布到google play上去

d:\projectName \platforms\android\ant-build  >jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore xx.keystore  xx.apk  mykey -storepass xx

storepass 是你keystore的密码,mykey是你keystore的alias

可以用keytool -list -keystore myname.keystore 查看你keystore的具体信息

14签名完后 你要发布到google play去 会提示你没有进行zipalign

d:

cd D:\Enviroment\Android Software\SDK\sdk\tools

zipalign -f -v 4 "D:\ projectName\platforms\android\ant-build\project-release.apk" "D:\ projectName\platforms\android\ant-build\project.apk"

这样终于可以生成一个可以发布到google play 的apk了

15 调试有3种方法

  • 直接用命令phonegap run android
  • 用AVDmanger
  • 真机调试,可以把APK放到DROPBOX里然后直接安装就可以了

Icon 和splashscreen

在3.5版本 config.xml要放在最上层的文件夹里 d:/project/config.xml

然后在config.xml加入这段

<platform name="android">

<icon src="res/android/icon.png" density="ldpi" />

<icon src="res/android/icon.png" density="mdpi" />

<icon src="res/android/icon.png" density="hdpi" />

<icon src="res/android/icon.png" density="xhdpi" />

</platform>

Splahscreen 要直接 去d:\projectNam\platforms\android\res 里面设置

__________________________________________________________________________________________

16. 打开Eclispe,导入项目C:\hello\platforms\android,HelloWorld。

17. 可能项目有一些错误,把Android Project Build Target设置为最高等级的API Level一般就能解决。

18. 然后就可以用Eclipse启动项目了。

19. 可以用命令phonegap emulate android在模拟器里启动项目,不过感觉比Eclipse麻烦,总是启动一个新的模拟器。

用这个方法还要注意Android虚拟设备的版本,似乎至少是API Level 10,因为自动生成的AndroidManifest.xml里:

<uses-sdk android:minSdkVersion="10" android:targetSdkVersion="17" />

20. 可以用命令phonegap run android在真实设备上运行App。

21. 添加插件(需要先安装git工具 https://help.github.com/articles/set-up-git):

PhoneGap 3.0 最需要关注的是完全的插件体系结构,所有的功能特性包括摄像头等都是使用插件方式提供。也就是说新建项目后很多功能是无法使用的,你必须将其对应的插件添加到项目中。

例如在 cordova 中添加插件的方法是:

cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-camera.git

而通过 phonegap 命令行工具的方法是:

phonegap local plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-camera.git

这意味着在开始 PhoneGap 项目时你要先考虑项目需要什么功能,然后通过命令行来添加这些功能。

1). 添加的插件都将放在C:\hello\plugins目录下.

2). 同时会在所有平台下的config.xml文件中增加feature插件配置,如:C:\hello\platforms\<平台>\res\xml\config.xml)

3). 增加相应的插件java文件:C:\hello\platforms\android\src

4). 增加相应的插件js文件:C:\hello\platforms\android\assets\www\plugins

下面是完整的插件列表,我直接拷贝过来,可能会有变化:

Basic device information (Device API):

$ phonegap local plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-device.git

Network Connection and Battery Events:

$ phonegap local plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-network-information.git

$ phonegap local plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-battery-status.git

Accelerometer, Compass, and Geolocation:

$ phonegap local plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-device-motion.git

$ phonegap local plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-device-orientation.git

$ phonegap local plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-geolocation.git

Camera, Media playback and Capture:

$ phonegap local plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-camera.git

$ phonegap local plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-media-capture.git

$ phonegap local plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-media.git

Access files on device or network (File API):

$ phonegap local plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-file.git

$ phonegap local plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-file-transfer.git

Notification via dialog box or vibration:

$ phonegap local plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-dialogs.git

$ phonegap local plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-vibration.git

Contacts:

$ phonegap local plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-contacts.git

Globalization:

$ phonegap local plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-globalization.git

Splashscreen:

$ phonegap local plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-splashscreen.git

Open new browser windows (InAppBrowser):

$ phonegap local plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-inappbrowser.git

Debug console:

$ phonegap local plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-console.git

查看当前已安装的插件: $ phonegap local plugin list

删除指定的插件: $ phonegap local plugin remove org.apache.cordova.core.console

22自定义各平台资源(merges):

在www/merges/目录下创建各平台不同的资源文件,如css,js,图片等,引用相应的文件路径时,不需要写各平台路径。如:

在www/index.html文件中添加自定义的css文件overrides.css如下:

<link rel="stylesheet" type="text/css" href="css/overrides.css" />

在www/merges/android/目录下创建针对于android平台的overrides.css,(如果是ios,由是www/merges/ios/overrides.css文件。)

overrides.css文件中添加如下内容,覆盖www/css/index.css文件中默认的12px文字大小样式:

body { font-size:14px; }

这样,在android平台下,显示的文件是14px,其他平台下显示的文字是12px;

也可添加各平台自定义的图片资源,如 merges/ios/img/back_button.png, 在www/index.html页面引用的写法是img/back_button.png.

23. 远程编译:

默认情况下,是编译本地安装SDK环境的相应平台,生成目标在platforms。 但也可通过远程编译本地没有安装SDK(或已安装SDK)的相应平台。也可远程测试。

1). 首先,你要在PhoneGap Build网站(https://build.phonegap.com/) 上注册账号,并使用login命令登录操作。

$ phonegap remote login -u [email protected] -p mYpASSw0RD

$ phonegap remote login --username [email protected] --password mYpASSw0RD

使用loginout命令退出登录phonegap build.

$ phonegap remote logout

2). 远程编译:$ phonegap remote build ios

3). 要使用插件,你必须先添加插件到本地,然后再远程编译。如:

$ phonegap local plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-network-information.git

$ phonegap remote build ios

4) $ phonegap remote install ios

# ...or...

$ phonegap remote run ios

5) 默认情况下是local本地编译,如下两命令是一样效果:

$ phonegap local build ios

$ phonegap build ios

24. 更新phonegap到最新版本命令:c:\> npm update -g phonegap

22. 查看phonegap版本命令:

$ phonegap version

$ phonegap -v

25. 查看phonegap详细信息命令:

$ npm info phonegap

26。安装指定版本的phonegap命令:

c:\> npm install -g [email protected]

phonegap android篇

时间: 2024-09-30 19:17:59

phonegap android篇的相关文章

使用Intellij Idea 搭建PhoneGap Android开发环境

看这里:使用Intellij Idea 搭建PhoneGap Android开发环境 最近几天在学习使用phonegap进行android应用的开发,首先当然是phonegap android开发环境的搭建,网上的资料比较乱,cordova和phonegap也有点分不清,个人参考了很多资料,也试验了很多次,一直在摸索,总算小有心得,这里简单的整理一下,使用Intellij Idea 搭建PhoneGap Android开发环境. 首先需要理清楚phonegap和cordova的关系,以下内容引自

HTML5移动开发之路(24)—— PhoneGap Android开发环境搭建

本文为 兄弟连IT教育 机构官方 HTML5培训 教程,主要介绍:HTML5移动开发之路(24)-- PhoneGap Android开发环境搭建 有关JDK及Android开发环境的搭建请看我前面的博文:http://blog.csdn.net/dawanganban/article/details/9748497 一.下载PhoneGap 下载地址:http://phonegap.com/install/  我下载的是最新的PhoneGap 2.9.1 将下载好的PhoneGap解压缩,可以

Cocos2d-x 3.0 编译 eclipse+Win7+Android 篇

文档 Eclipse --> Windows--> Preferences ... 3. Set up Variables: 1. Path Variable `COCOS2DX`: * Eclipse->Preferences->General->Workspace->**Linked Resources** * Click **New** button to add a Path Variable `COCOS2DX` pointing to the root co

[android篇]textview中片段响应点击事件(SpannableString)

项目需求 点击textView中的一小段文字,弹一个dialog框 失败解决方案 刚开始是用了两个textView水平布局,可想而知,当第一个textView快占满一行,还未换行时,第二个textView很可能出现换行排版问题 用spannableString的问题 小段文字有下划线 点击textView中的小段文字时,系统会当做url处理,给点击部分的text加一个蓝色的背景 解决方案 public class TouchableSpan extends ClickableSpan { pri

大叔也说Xamarin~Android篇~ListView里的Click事件并获取本行的其它元素

原文:大叔也说Xamarin~Android篇~ListView里的Click事件并获取本行的其它元素 我原创,我贡献,我是仓储大叔 本篇大叔原创,本着对技术的热爱去研究它,把成果分享给国人!大叔始终相信一句话:你只有选择一个感兴趣的工作,你才能更好的发挥你的潜力,而这一切都建立在你不断研究,不断钻研的前提下. Xamarin文章在网上比较少,而ListView相关的信息更好,有限的那么几个还都说的不清楚,只是告诉大家如何去完成按钮的事件,而在事件里,如何获取当前行的其它元素信息则没有说明,在网

大叔也说Xamarin~Android篇~监听返回键,单击返回某个webView,双击退出

原文:大叔也说Xamarin~Android篇~监听返回键,单击返回某个webView,双击退出 这个操作在原生android里是很容易实现的,在xamarin里也不难,在activity里有方法OnKeyDown,我们只需要重写一下就可以了,然后通过webView重新加载到要返回的页面即可,当然操作有些死板,但还是有着不错的效果! 实现的原理就是在activity里设置一个时间,单击后把这个时间赋值并与当前时间进行比较,如果在2秒内,就认为是双击操作,当然这个时间间隔你可以自己设置,在认为是双

大叔也说Xamarin~Android篇~原生登陆与WebView的网站如何共享Session

原文:大叔也说Xamarin~Android篇~原生登陆与WebView的网站如何共享Session 事情是这样的,我们最近开了一个APP,主要使用xamarin做了一个登陆,它与服务器API进行数据通讯,当用户名密码正确去,跳转到新的activity,并在webview控件中打开服务端的Html5页面,而h5页面有些需要进行授权才能访问,如用户中心,我的订单,我的商品等等,而我们的登陆是在原生的activity里实现的,在登陆成功后服务端会向它分配一个SessionID,并存储在客户端,以做为

Android基于ksoap2调用WCF服务(二):Android篇

上一篇通过一个非常简单的例子,完成了一个WCF的服务.接下来介绍一下Android端. Android端调用WCF,采用基于ksoap2包来实现. 下载地址(这个需要fan qiang访问,你们懂的):https://code.google.com/p/ksoap2-android/ 我用的3.3.0版本,我传到csdn上,上面地址如果不能访问,可以用这个地址:http://download.csdn.net/detail/cnryc/7695437 程序的源代码下载地址:http://down

[android篇]android 4.4 短信适配

andorid 4.4(KITKAT)对系统很多方面做了改动,在目前的项目中,对短信有直接的影响.我们看一下下面这段文档说明: Advice for SMS backup & restore apps Because the ability to write to the SMSProvider is restricted to the app the user selects as the default SMS app, anyexisting app designed purely to