2016-09-14 77 views
0

我正在嘗試使用命令行和腳本工具來調試Android應用程序(我有足夠的Android Studio在吃我的CPU)。你如何腳本adb jdwp + adb向前?

要連接到我的應用程序,我需要adb jdwp以獲得pid,然後adb forward tcp:8700 jdwp:<pid>能夠連接到應用程序。但我想更多地編寫這個腳本。

adb jdwp有兩個限制:1.它不返回,所以我必須用ctrl-c殺死adb,2.它只列出pid。如果有更多的pid,有沒有簡單的方法來看看我的應用程序。

有沒有辦法讓adb jdwp的行爲:讓它退出並返回applicationId以及pid?

+0

它通常有助於提供有關您的環境的更多細節(如使用的操作系統/腳本語言) –

回答

0

我設法用下面的腳本解決了這個問題(只要你的應用程序是作爲最後一個進程啓動的話就可以工作)。作爲未來的增強版,它可以與gradle任務轉輪集成,以更加簡化過程。

#!/bin/bash 

DEBUG_PORT=7777 
SOURCE_PATH=app/src/main/java 

FILE=/var/tmp/andebug-$(date +%s) 
adb jdwp > "$FILE" & 
sleep 1 
kill -9 $! 
JDWP_ID=$(tail -1 "$FILE") 
rm "$FILE" 
adb forward tcp:$DEBUG_PORT jdwp:$JDWP_ID 
jdb -sourcepath $SOURCE_PATH -attach localhost:$DEBUG_PORT