當開發人員在調試Android行動裝置上調試網頁時,經常遇到很多障礙.雖然Android開發指南中提供瞭解決方案,但這個方案非常複雜和麻煩.因此,許多Web開發人員還是經常在Firefox Debug或者Webkit’s Web Inspector上調試,因為這些工具都是功能強大,使用方便.然而,開發人員常常發現,當使用這些工具看到的效果跟最終行動裝置上看到的很多時候都相差甚遠.
我們決定建立自己的解決方案,由Adndroid團隊提出的標準解決方案中建立一個更容易使用的工具.我們稱之為RemoteJS,這是一個可以讓你的程式在Android裝置或者模擬器中運行,而在本地調試你的JavaScript代碼.
如何建立RemoteJS
構建應用程式是 一個相當簡單的過程.首先,確認你已經安裝了Qt Framework.然後從我們的Sencha Libs中下載Android版本的RemoteJS原始碼.構建傳統型應用程式如果下:
view source
print?1.
git clone <a href=
"git://github.com/senchalabs/android-tools.git"
>git://github.com/senchalabs/android-tools.git<;/a>
2.
cd android-tools/remotejs/src/desktop
3.
qmake && make
接下來,你需要做的是先準備安裝好了的Android SDK,插入您的Android裝置(或啟動你的模擬器)。這裡是該RemoteJS工具,一個Sencha Touch運行在模擬器上的例子:
該程式其實是自動在裝置上安裝了同名的包.用這一個工具來開啟你的網頁,而不是Android內建的瀏覽器.但由於兩個程式使用了相同的Web引擎組件,所以你不用擔心相容性的問題,兩個程式出來的效果將會是一模一樣的.如需瞭解更多詳情,請參考說明檔案.
要開啟一個指定的網址,只需在其控制台上輸入即可。如果你輸入的網址沒有包含協議(如:http),那麼只有以"www”"開頭的地址會被識別。如果你串連了多個裝置,那麼你將會得到一個列表以供選擇。同樣,它會檢測你的正在使用的設定是否已經斷開。然後它只會留下已串連的裝置。同樣,如果一個裝置新加進來,它也會被檢測到.
請注意,有時候為了得到一些實際的輸出,你需要使用console.log。
編寫遠端偵錯的指令碼
We thought that since the GUI version worked so well, we could write something similar that would run headlessly. The main goal was to automate page regression tests, taking full advantage of Python, the chosen implementation language. For that, an Android Debug Bridge (adb) Python module was written, which allows for very flexible scripting from your host. Naturally, a shell version of RemoteJS was also written on top of the adb module. It listens for JavaScript commands on stdin and output results to stdout. Here’s the tool in action, debugging another Sencha Touch example:
即將到來
原始碼是不斷在變化的,我們計劃擴充這些工具的功能。歡迎您以任何方式為以上功能作出貢獻.請繼續關注我們的android-tools資產庫中的工具和代碼.所有的這些都是以MIT的許可發布的.
英文原文:
http://www.sencha.com/blog/2010/11/05/remote-javascript-debugging-on-android/