adb(android debug bridge)
- 여기에서 adb를 설치한다.
- 압축을 풀고, 해당 위치에서 cmd창을 연다.
- adb version : adb버전 확인
- adb –help : 명령어 도움말
디버깅 디바이스 연결
- 디바이스 원격 연결 방법 3가지
- adb tcpip “포트번호” : 해당 포트번호로 연결
- adb connect “디바이스의IP주소”:”포트번호” : 해당 IP의 디바이스의 포트로 연결, 또는 무선 디버깅 연결(Android 11 이상)
- 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 : 액티비티 백스택을 확인
도즈 모드 테스트
- 폰과 PC USB로 연결
- 화면 꺼야함
- adb shell dumpsys battery unplug
- 충전중이면 도즈모드 진입이 안된다.
- adb shell dumpsys deviceidle force-idle
- 또는 아래 명령어를 IDLE이 나올 때 까지 실행해 주면 된다.
- adb shell dumpsys deviceidle step
adb shell dumpsys battery reset로 배터리 충전 상태 리셋해 줘야 함