2016-09-14 2 views
0

명령 줄 도구와 스크립트 도구를 사용하여 Android 응용 프로그램을 디버깅하려고합니다. (내 CPU를 먹는 Android Studio가 충분했습니다.)adb jdwp + adb 스크립트는 어떻게 작성합니까?

내 앱에 연결하려면 adb jdwp을 사용하여 PID를 가져오고 adb forward tcp:8700 jdwp:<pid>을 앱에 연결할 수 있습니다. 그러나 나는 더 많은 것을 대본을 쓰고 싶습니다.

adb jdwp에는 다음과 같은 두 가지 제한 사항이 있습니다. 1. 반환하지 않으므로 adb을 ctrl-c와 함께 삭제해야합니다. 2. pids 만 나열합니다. pids가 더 많으면 내 앱이 어떤 것인지를 쉽게 알 수 없습니다.

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