本文承接上篇《Cordova开发技巧》。html
以前的全部例子用到的平台主要是Android,本次详细说明一下在Cordova框架中开发Android应用的过程。它和通常的Android应用开发相似,若是是Android开发者基本能够跳过不看,另外须要在其余平台中开发暂请参考Cordova和相关平台开发的文档和参考资料。android
Google为Android开发者提供了一套强大的平台开发工具,虽然Cordova CLI包揽了大部分建立、管理、测试应用的工做,但调试应用遇到问题时,想要知道更多的信息仍是要借助ADT。下面说明如何配置ADT并用它测试和调试Cordova应用。若是只是使用CLI或者PhoneGap Build构建和测试应用,这部分就能够略过不看了。另外如今Google有自家的Android开发工具Android Studio,建议有条件仍是改用它吧。web
ADT附加在预配置的开源Eclipse上,用它能够编辑、编译、运行和调试Android的Java应用,能够在Android开发者网站(http://developer.android.com/sdk/index.html)上了解更多或者下载。若是已经在使用Eclispe开发,能够按照以下网址的说明添加ADT:http://developer.android.com/sdk/installing/installing-adt.html。注意ADT和Eclipse的兼容。框架
ADT也有命令行工具用来和设备或模拟器交互,它也是Cordova CLI用来和Android平台交互的工具之一。eclipse
打开Android SDK文件夹中的Eclipse文件夹的Eclipse就启动了ADT。截图以下:编辑器
有时在打开Cordova项目或向Eclispe安装插件时会出现IDE崩溃的状况。默认状况下,Eclipse配置使用有限的内存,崩溃有时就是由于没有足够的内存。工具
有几种方法增长Eclipse不一样部分的可用的内存。能够在Eclipse启动时以命令行选项的形式传递内存配置设置,或者简单的对eclipse.ini作一些改动。用后一种方法,打开eclipse.ini,修改以下几处内存设置。若是还有问题,试着增长直到问题消失。开发工具
... --launcher.XXMaxPermSize 256m ... -Xms512m -Xmx1024m
Android应用使用Java语言,ADT中也没有专门设计用来调试运行在Cordova容器中的Web应用的工具。所以也不能按步调试JavaScript代码、设置断点、配置监视表达式,这里最好仍是用上一篇讲到调试方法。但以后也会使用ADT的一些工具进行调试。测试
编辑Cordova应用的web内容有一些优秀的编辑器,若是要使用ADT编辑Cordova应用的内容就须要安装web编辑功能。具体方法是打开Help菜单,选择"New Software会显示安装向导,在其中的Work With下拉列表中选择Juno选项,选好后下面会显示一个选项列表,拖动找到Eclipse Web Developer Tools,选中后一路点击完成安装。网站
在导入Cordova项目以前使用prepare命令确保Web内容从www文件夹复制到Anroid项目文件夹中。打开ADT的File菜单,选择Import,显示导入向导。展开Android选项并选择Existing Android Code Into Workspace,点下一步。向导下一页指定Root Directory即项目根目录,向导自动添加Cordova项目到可用工程列表。截图以下:
导入后的项目结构包括原生的Java Android应用和在应用内执行的web内容,即默认的Android项目结构和Cordova www文件夹。
在Android项目的www文件夹中对web内容做修改并不会反映Cordova项目根目录的www文件夹中,Cordova并无这样一种同步机制。调试过程当中对web内容做了修改,须要手动复制。方便起见,能够添加一个外部工具用来处理向Cordova www文件夹中的复制工做。
导入后就能够运行项目了,ADT没有为Android应用设置默认的运行配置,须要自行添加。在ADT中,打开Run菜单,选择Run Configurations,在弹出的对话框中选择Android Applications,点击New按钮(如图中标识处),指定一个应用,设定一个或多个启动模拟器的参数,若是没有定义模拟器,点击Manage按钮打开Android虚拟设备(AVD)管理器建立和管理一个模拟器。
一个或多个运行配置定义完成后,点底部的Run按钮加载模拟器运行应用。也能够关闭对话框在Run菜单上选择或右键单击项目,选择Run As而后选择Android Application。ADT就会加载选中的模拟器,而后编译、打包和部署应用。
ADT有监视在模拟器或设备上活动的工具,即Console和Logcat视图。Logcat是IDE的一部分,但能够经过命令行运行或做为一个独立的工具运行。若是不当心关闭了Logcat能够在Window菜单的Show View中选择Other,ADT IDE会显示对话框,在列表中选择Logcat。
console窗口显示了由ADT在准备Cordova应用并部署到模拟器上时产生的信息。若是ADT在构建、打包和部署应用时遇到问题就经过console显示出来。
Logcat则直接同Android模拟器或设备交互,在模拟器完成启动过程后,同Android系统交互时Logcat窗口会显示大量消息。使用模拟器或设备运行应用遇到问题时能够在其中查找错误信息。
以前咱们讲过经过Cordova应用向console对象写信息;就Android来讲这些console对象消息显示在Logcat窗口中。
在Logcat窗口中能够按照消息类型过滤消息。以下图所示,注意右上角的debug按钮点击能够按消息级别筛选。
若是不想用ADT,能够在IDE外部运行ADT调试工具。独立的Logcat和相关工具能够在Android Debug Monitor(ADM)工具中找到,而ADM是由Android SDK Tools文件夹中的monitor.bat启动的。
ADM窗口以下图,提供许多有用的信息,其中就有Logcat窗口。
从模拟器或设备上抓屏虽然不是很要紧的功能但有时颇有用。上图ADM窗口中的左上角的Device区能够看见小相机图标。设备链接后能够点击它抓取屏幕。点击后会出现一个窗口,上面有refresh、rotate、save和copy按钮。它在写文档或支持工做时能提供快速简单的屏幕图像。
ADM也能够与物理设备交互,在应用发布前仍是应该在典型的样机上测试。首先要用USB线把设备和PC链接,记得打开设备上的USB调试,怎么打开因设备而异。一些设备中启用开发者选项只须要在Android的设置上选择。另外一些可能会复杂些请自行查找缘由。
在设备上测试前有时还要解决识别问题。像三星设备可能要求安装驱动;有时要在SDK模拟器上安装Google USB驱动。
接下来再说说PhoneGap buid。