커맨드 창과 에디터로 안드로이드 프로그래밍 해보기 - 부록

2023. 3. 6. 19:06모바일프로그래밍/안드로이드

728x90

스크립트

#!/bin/bash
#adb kill-server
#sleep 1
#adb start-server
adb wait-for-device
cmd="adb -d shell am start -e debug true -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -n com.thirdwhale/com.thirdwhale.activity.SplashActivity";
echo $cmd;
exec $cmd &
app_debug_port=$(adb jdwp | tail -1);
echo "app_debug_port: $app_debug_port";
cmd0="adb -d forward tcp:29882 jdwp:$app_debug_port";
echo $cmd0;
exec $cmd0 &
cmd1="jdb -J-Duser.home=. -connect com.sun.jdi.SocketAttach:hostname=localhost,port=29882 -sourcepath C:/workspaces/android/3rdWhale_import2/src/main/java";
cmd2="jdb -J-Duser.home=. -attach asantoso_xpl:29882";
echo $cmd1;
exec $cmd1;
 

jdb.ini 샘플:

stop in com.thirdwhale.activity.SplashActivity.onResume()stop in com.thirdwhale.activity.NewsActivity.onResume()stop in com.thirdwhale.activity.WhatsAround.onResume()
 
 

 

notes:

try killing standalone ddms and eclipse adt ddms

 

방법 2: 이클림스에서 디버깅 특징 사용하기 ( ADT 없이)

 

  1. 디버그 다이얼로그 실행.
  2. "원격자바 애플리케이션-Remote Java Application" 환경 생성.
  3. 소스 경로 설정 - source path
  4. 연결 유형 - Connection type: Socket attach
  5. host를 localhost로 설정.
  6. 자신의 특정 포워딩 포트 설정한다. (예: 29882)
  7. 디버깅 환경 저장.
  8. 중단점 생성.
  9. 프로젝트 컴파일 및 기기에 apk 설치.
  10. 이클립스 디버그 perspective 오픈.
  11. device shell로 가서, and ActivityManager(am) 를 “-e debug true” 옵션을 사용해서 파라메터와 함께 activity를 실행한다. (위 스크립트를 사용 하도 jdb 는 주석처리 한다)
  12. 이클립스에서 디버그 환경을 실행한다.(이클립스는 특정 포트 29982로 연결을 설정 할 것이다)

 

이상.

 

728x90