本文承接上篇《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。