Android上超级好用的前端调试方法(adb reverse)
首先,這篇文章要說的不是大名鼎鼎的Inspector。
作為一名偶爾串客寫寫前端代碼,但對前端又非常不熟練的Android終端開發,經常需要改兩行代碼就要看看頁面效果對不對。如果是兼容桌面瀏覽器的頁面還好辦,在本地啟動服務,寫兩句代碼refresh一下就可以看到效果了,但是更多的時候,我寫的頁面是必須在APP中加載,用到APP提供的JsApi的,桌面瀏覽器根本沒法使用頁面的功能。
怎樣方便的調試呢?
- 手機和電腦連到同一網段?公司網絡環境不允許!
- 電腦插一個隨身Wifi開一個熱點?公司安全策略不允許!
- 發布到遠程Server上去?要瘋掉!
想起來之前寫ReactNative代碼時,手機用USB連電腦,手機就可以直接訪問電腦啟動的NodeJS服務,恍然大悟,原來可以這樣!
首先,電腦要有ADB,作為一名Android終端開發,這個是必備的。
然后,終端中輸入執行一下adb,列出的幫助文檔中,有這樣一段:
| 1234567891011121314151617181920212223242526272829 | adb forward --list?????????? - list all forward socket connections.???????????????????????????????? the format is a list of lines with the following format:????????????????????????????????????<serial> " " <local> " " <remote> "\n"??adb forward <local> <remote> - forward socket connections???????????????????????????????? forward specs are one of:?????????????????????????????????? tcp:<port>?????????????????????????????????? localabstract:<unix domain socket name>?????????????????????????????????? localreserved:<unix domain socket name>?????????????????????????????????? localfilesystem:<unix domain socket name>?????????????????????????????????? dev:<character device name>?????????????????????????????????? jdwp:<process pid> (remote only)??adb forward --no-rebind <local> <remote>?????????????????????????????? - same as 'adb forward <local> <remote>' but fails???????????????????????????????? if <local> is already forwarded??adb forward --remove <local> - remove a specific forward socket connection??adb forward --remove-all???? - remove all forward socket connections??adb reverse --list?????????? - list all reverse socket connections from device??adb reverse <remote> <local> - reverse socket connections???????????????????????????????? reverse specs are one of:?????????????????????????????????? tcp:<port>?????????????????????????????????? localabstract:<unix domain socket name>?????????????????????????????????? localreserved:<unix domain socket name>?????????????????????????????????? localfilesystem:<unix domain socket name>??adb reverse --no-rebind <remote> <local>?????????????????????????????? - same as 'adb reverse <remote> <local>' but fails???????????????????????????????? if <remote> is already reversed.??adb reverse --remove <remote>?????????????????????????????? - remove a specific reversed socket connection??adb reverse --remove-all???? - remove all reversed socket connections from device |
原來,Android允許我們通過ADB,把Android上的某個端口映射到電腦(adb forward),或者把電腦的某個端口映射到Android系統(adb reverse)。
假設電腦上開啟的服務,監聽的端口為8000。Android手機通過USB連接電腦后,執行?adb?reversetcp:8000?tcp:8000,然后在手機中訪問127.0.0.1:8000,就可以訪問到電腦上啟動的服務了,完美解決寫兩句代碼就要看效果的問題!
http://blog.xiaoyu.im/post_678.html
總結
以上是生活随笔為你收集整理的Android上超级好用的前端调试方法(adb reverse)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ANDROID: 超级好用的ADB FO
- 下一篇: Android智能指针