안드로이드 ADB로 디버깅하기 – 커맨드 모음

ADB 커맨드 모음


ADB Logcat [option]
    -c : 전체 로그를 삭제
    -d : 로그를 스크린에 보여주고 종료
    -f <filename> : 지정한 파일에 로그를 출력
    -g : 로그 버퍼의 사이즈 출력
    -s : 기본 필터를 설정 (-s 대신에 *:S 가능)
    -v : 로그 메시지의 포맷을 설정


Log message level

    v : verbose        가장 낮은 순위
    d : debug
    i : information
    w : warning
    e : error
    f : fatal
    s : silent        가장 높은 순위 (Silent 이상만 출력, 웬만한 로그는 나오지 않음)

    adb logcat -d *:S dalvikvm:E 'usertag':V    – 따로 요구가 없는 로그태그는 숨김, dalvikvm 태그는 Error 수준 이상만 출력, usertag 태그는 모두 출력


Native 코드에서의 로그 사용

#include <android/log.h>
#define LOG_TAG "MyLogTag"
#define LOGE() \
            __android_log_print(ANDROID_LOG_ERROR, LOG_TAG, __VA_ARGS__)
#define LOGW() \
            __android_log_print(ANDROID_LOG_WARN, LOG_TAG, __VA_ARGS__)
#define LOGI() \
            __android_log_print(ANDROID_LOG_INFO, LOG_TAG, __VA_ARGS__)
#define LOGD() \
            __android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__)
#define LOGV() \
            __android_log_print(ANDROID_LOG_VERBOSE, LOG_TAG, __VA_ARGS__)


Bugreport
    – dumpsys(system data), dumpstate(state), logcat data 덤프 해줌
    – adb bugreport


Shell command
    adb shell cat /proc/meminfo : 메모리 정보
    adb shell cat /proc/stat : 시스템 상태 정보, CPU 통계, page fault 발생 횟수 등
    adb shell cat /proc/[pid]/maps : 해당 프로세스의 memory map 정보
        각 라이브러리 당 2개씩 표시 (라이브러리의 data 영역(변수)과 text 영역(프로그램))
    adb shell ps : 프로세스 정보
    adb shell procrank : 프로세스별 메모리 정보
        VSS(Virtual Set Size) : 프로세스와 관련된 Virtual memory 크기
        RSS(Resident Set Size) : 프로세스와 관련된 Physical pages 수 (공유 페이지 수 포함)
        USS(Unique Set Size) : 프로세스만의 고유한 페이지 수 (공유되지 않은 크기)
        PSS(Proportional Set Size) : USS + (공유페이지/공유 프로세스 수)
    adb dumpsys meminfo [pid] : 해당 프로세스의 메모리 상세 정보
    adb shell tcpdump : 실시간 패킷 모니터링
    adb shell dumpstate : 디바이스 상태정보
    adb shell crash : 앱이 크래쉬 될 때의 상태정보
    adb shell input tap [x] [y] : 터치 이벤트 생성 (Jelly bean 이후 가능)
    adb shell input keyevent [x] : 키 이벤트 발생
        KEYCODE_UNKNOWN : 0
        KEYCODE_MENU : 1
        KEYCODE_SOFT_RIGHT : 2
        KEYCODE_HOME : 3
        KEYCODE_BACK : 5
        KEYCODE_CALL : 5
        KEYCODE_ENDCALL : 6
        KEYCODE_0 : 7
        KEYCODE_1 : 8
        …
        KEYCODE_9 : 16
        KEYCODE_STAR : 17
        KEYCODE_PUND : 18
        KEYCODE_DPAD_UP : 19

Post Author: TORTUGA

TORTUGA
궁금하신 점은 새로 개편한 홈페이지의 QnA 게시판을 이용해주세요!!!!!!! http://www.hardcopyworld.com/gnuboard5/bbs/board.php?bo_table=qna

1 thought on “안드로이드 ADB로 디버깅하기 – 커맨드 모음

댓글 남기기

이메일은 공개되지 않습니다.