2 minute read

  1. 여기에서 adb를 설치한다.
  2. 압축을 풀고, 해당 위치에서 cmd창을 연다.
  • adb version : adb버전 확인
  • adb –help : 명령어 도움말



디버깅 디바이스 연결

  • 디바이스 원격 연결 방법 3가지
    1. adb tcpip “포트번호” : 해당 포트번호로 연결
    2. adb connect “디바이스의IP주소”:”포트번호” : 해당 IP의 디바이스의 포트로 연결, 또는 무선 디버깅 연결(Android 11 이상)
    3. adb pair “디바이스의IP주소”:”페어링 다이얼로그상 포트번호” : 페어링 코드로 무선 연결
      • IP주소 및 포트 연결할 때와 포트번호가 다르다.
  • adb devices [option] : 연결된 디바이스를 확인. -l : 연결된 디바이스의 기기 정보 출력

  • adb disconnect “디바이스의IP주소” : 해당 디바이스 연결 해제

  • adb kill-server : 디바이스 서버 종료

  • adb start-server : 디바이스 서버 시작

  • adb usb : USB로 연결

  • 다수의 디바이스가 연결돼 있을 때 특정 디바이스에 명령 실행하려면 아래 옵션을 사용한다.
    • [-s 시리얼넘버] : adb devices 커맨드의 결과로 특정 기기의 시리얼 넘버 검색
    • [-e] or [-d] : 다수의 기기가 연결돼있으나 에뮬레이터는 하나뿐일 때 or 하드웨어 디바이스는 하나뿐일 때 사용


디바이스에 apk 설치

  • adb install [-t] “apk파일”
    • [-t] : 테스트 apk라면 붙여야 함
  • adb forward tcp:6100 tcp:7100
    • 포트 포워딩(어따 쓰는지 잘 모르겠음)


파일 복사하기

  • adb pull “remote” “local” : 디바이스에서 파일 가져오기
  • adb push “local” “remote” : 디바이스에 파일 이동 ex) adb push foo.txt /sdcard/foo.txt



shell 명령어

  • 기기 명령어 사용하려면 adb [-s 시리얼넘버] shell 사용
  • 리눅스 커널기반이므로 어지간한 명령어는 사용할 수 있다.
  • 셸은 컨트롤d또는 exit명령어로 종료됨.

  • adb shell ls /system/bin : 사용가능한 명령어 목록

  • 참고 : 로그캣 커맨드라인 툴


am : 액티비티 매니저 호출

  • 문서
  • am start : 액티비티 시작
    • ex) am start -a android.intent.action.VIEW
  • am startservice : 서비스 시작
  • am broadcast : 브로드캐스트 호출
  • am force-stop “패키지” : 패키지 강제종료
  • am kill-all : 모든 백그라운드 프로세스 종료
  • am display-size “가로x세로” 또는 “reset”: 디스플레이 사이즈 조절
    • ex) am broadcast -a android.intent.action.BOOT_COMPLETED -n your.app.packagename/.YourReceiverClassName : 브로드캐스트 리시버 테스트(BOOT_COMPLETED action은 루팅된 기기나 Google Play가 설치되지 않은 에뮬레이터만 사용 가능)
  • am get-standby-bucket “앱 패키지명” : 앱이 앱 대기 버킷 어디에 위치해 있는지 확인


pm : 패키지 매니저 호출


dpm : 기기 정책관리자 호출

  • 문서
  • 키오스크처럼 기기 관리자용 앱 설정이 필요한 경우 사용하는 듯 함


기타 짜잘

  • screencap “스샷저장경로” : 스샷
  • screenrecord “영상저장경로” : 영상촬영
  • cmd package dump-profiles “package명” : 앱의 실행 프로필을 파일로 저장, 파일은 /data/misc/profman에 저장된다.
  • sqlite3 /data/data/”패키지명”/databases/”DB파일명” : sqlite3디비 접근
  • ps -ef : 실행중인 프로세스 출력
  • ps -T [PID] : 실행중인 스레드 출력



dumpsys : dump system

  • 문서
  • 시스템 관련 여러가지를 출력함
  • dumpsys -l : 출력할 수 있는 전체 서비스 목록
  • dumpsys input : 입력 컴포넌트 관련 출력
  • dumpsys gfxinfo “패키지명” : 기록 단계 중에 발생하는 애니메이션 프레임과 관련된 성능 정보 출력
  • dumpsys netstats : 네트워크 상태 출력
  • dumpsys batterystats : 배터리 상태 출력
  • dumpsys procstats : 일정 기간 동안의 메모리 사용량 출력
  • dumpsys meminfo “패키지명” : 패키지에 할당 된 메모리 스냅샷
  • dumpsys activity activities : 액티비티 백스택을 확인

도즈 모드 테스트

  1. 폰과 PC USB로 연결
  2. 화면 꺼야함
  3. adb shell dumpsys battery unplug
    • 충전중이면 도즈모드 진입이 안된다.
  4. adb shell dumpsys deviceidle force-idle
    • 또는 아래 명령어를 IDLE이 나올 때 까지 실행해 주면 된다.
    • adb shell dumpsys deviceidle step

adb shell dumpsys battery reset로 배터리 충전 상태 리셋해 줘야 함

Categories:

Updated: