2014-04-07 2 views
0

안드로이드의 DVM은 JDWP 프로토콜 위에 DDM 프로토콜을 사용합니다. 문서와 예제에서 ADB는 brige로 필요합니다 (실제로 ADB는 Android 디버깅 브리지입니다).ADB없이 실제 장치에서 JDWP를 사용할 수 있습니까?

내 질문은 : 실제 장치에서 응용 프로그램을 추적하기 위해 모든 DDM 또는 JDWP 프로토콜로 APK를 개발할 수 있습니까? 아니면 어떤 보호 장치가 있습니까?

답변

1

Android 앱은 JDWP 연결을 위해 ADB 데몬과 통신하도록 구성됩니다. DDMS는 ADB 데몬을 쿼리하여 디버깅 가능한 프로세스 목록을 가져옵니다.

Dalvik이 TCP 소켓을 수신 대기하도록 구성된 경우 adb forward을 사용하여 포트 전달을 설정하고 TCP를 통해 직접 디버거를 연결할 수 있습니다 (예 : adb jdwp). 개발은 DDMS가 존재하기 전에 아주 초기에 이런 방식으로 수행되었습니다.

(바로 4185 줄에 ActivityThread이 있음을 알 수 있습니다. 포트 8100에서 대기 중임을 알리는 메시지가 표시됩니다. 방문한 사용자는 DDMS design doc의 '연결 설정'섹션을 찾을 수도 있습니다.

Dalvik VM은 ADB를 통한 연결 만 수신하므로 JDWP 기반 디버거를 다른 방식으로 앱에 연결할 수 없습니다.

+0

이 모든 정보는 유용한 정보이지만 모두 공개됩니다. JDWP에 접속할 수있는 방법은 없습니까? 현재 에뮬레이터에서 나는 앞으로 나아갈 수 있고 JDWP 핸드 셰이크를 만들 수있는 APK를 가지고있다. 이것이 실제 장치에서 작동하는지 모르겠다. 어쩌면 디버그 USB를 사용할 수 있습니까? 잘 나는 2 o 3 일 안에 나를 자동 응답 할 것이다라고 생각한다. :) 그러나 탱크 – Marc

+1

"ADB를 위장한"이라는 말이 무슨 뜻인지 이해하지 못합니다. 실제 기기에 ADB가 있는데, 왜 위조해야합니까? – fadden

+0

아마 가짜가 내가 찾는 단어가 아닙니다. 나는 ADB 클라이언트 역할을하지만 장치 내부에 있다고 말하려고했습니다. 어쩌면 가장? 나도 몰라.하지만 JDWP 채널을 열기 위해 ADB 서버를 "말하고있다"는 생각이 들었다. – Marc

관련 문제