2016-09-14 5 views
0

私はコマンドラインとスクリプトツールを使用してAndroidアプリケーションをデバッグしようとしています(私は十分なAndroidスタジオでCPUを食べていました)。adb jdwp + adbをどのようにスクリプトしますか?

私のアプリに接続するには、adb jdwpを使ってpidを取得し、次にadb forward tcp:8700 jdwp:<pid>をアプリに接続できるようにします。しかし、私はこれ以上スクリプトを作成したいと思います。

adb jdwpには2つの制限があります。1.返さないので、adbをctrl-cでkillする必要があります。2. pidのみをリストします。より多くのpidがある場合、どのアプリが私のアプリであるかを簡単に確認する方法はありません。

adb jdwpを動作させる方法はありますか?終了し、pidとともにapplicationIdを返しますか?

+0

通常、環境に関する詳細(使用するOS /スクリプト言語など) –

答えて

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 
関連する問題