開發Android平臺的Cordova應用
本文承接上篇《Cordova開發技巧》。
之前的所有例子用到的平臺主要是Android,本次詳細說明一下在Cordova框架中開發Android應用的過程。它和一般的 Android應用開發類似,如果是Android開發者基本可以跳過不看,另外需要在其他平臺中開發暫請參考Cordova和相關平臺開發的文檔和參考 資料。
Google為Android開發者提供了一套強大的平臺開發工具,雖然Cordova CLI包攬了大部分創建、管理、測試應用的工作,但調試應用遇到問題時,想要知道更多的信息還是要借助ADT。下面說明如何配置ADT并用它測試和調試 Cordova應用。如果只是使用CLI或者PhoneGap Build構建和測試應用,這部分就可以略過不看了。另外現在Google有自家的Android開發工具Android Studio,建議有條件還是改用它吧。
用Android開發工具(ADT)開發
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平臺交互的工具之一。
使用ADT IDE
打開Android SDK文件夾中的Eclipse文件夾的Eclipse就啟動了ADT。截圖如下:
處理ADT IDE的內存問題
有時在打開Cordova項目或向Eclispe安裝插件時會出現IDE崩潰的情況。默認情況下,Eclipse配置使用有限的內存,崩潰有時就是因為沒有足夠的內存。
有幾種方法增加Eclipse不同部分的可用的內存。可以在Eclipse啟動時以命令行選項的形式傳遞內存配置設置,或者簡單的對 eclipse.ini做一些改動。用后一種方法,打開eclipse.ini,修改如下幾處內存設置。如果還有問題,試著增加直到問題消失。
... --launcher.XXMaxPermSize 256m ... -Xms512m -Xmx1024m
編輯Cordova應用內容文件
Android應用使用Java語言,ADT中也沒有專門設計用來調試運行在Cordova容器中的Web應用的工具。因此也不能按步調試JavaScript代碼、設置斷點、配置監視表達式,這里最好還是用上一篇講到調試方法。但之后也會使用ADT的一些工具進行調試。
編輯Cordova應用的web內容有一些優秀的編輯器,如果要使用ADT編輯Cordova應用的內容就需要安裝web編輯功能。具體方法是打開 Help 菜單,選擇" New Software 會顯示安裝向導,在其中的 Work With 下拉列表中選擇 Juno 選項,選好后下面會顯示一個選項列表,拖動找到 Eclipse Web Developer Tools ,選中后一路點擊完成安裝。
導入Cordova項目
在導入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文件夾中的復制工作。
運行Cordova應用
導入后就可以運行項目了,ADT沒有為Android應用設置默認的運行配置,需要自行添加。在ADT中,打開 Run 菜單,選擇 Run Configurations ,在彈出的對話框中選擇 Android Applications ,點擊 New 按鈕(如圖中標識處),指定一個應用,設定一個或多個啟動模擬器的參數,如果沒有定義模擬器,點擊 Manage 按鈕打開Android虛擬設備(AVD)管理器創建和管理一個模擬器。
一個或多個運行配置定義完成后,點底部的 Run 按鈕加載模擬器運行應用。也可以關閉對話框在 Run 菜單上選擇或右鍵單擊項目,選擇 Run As 然后選擇 Android Application 。ADT就會加載選中的模擬器,然后編譯、打包和部署應用。
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,可以在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。