명령줄에서 시스템 트레이스 캡처

systrace 명령어는 기기에서 실행 중인 모든 프로세스의 타이밍 정보를 시스템 수준에서 수집하고 검사할 수 있는 Systrace 도구를 호출합니다.

이 문서에서는 명령줄에서 Systrace 보고서를 생성하는 방법을 설명합니다. Android 9(API 수준 28) 이상을 실행하는 기기에서는 시스템 추적 시스템 앱을 사용하여 Systrace 보고서를 생성할 수도 있습니다.

systrace를 실행하려면 다음 단계를 완료하세요.

  1. Android 스튜디오에서 최신 Android SDK 도구를 다운로드하여 설치합니다.
  2. Python을 설치한 다음 워크스테이션의 PATH 환경 변수에 포함합니다.
  3. PATH 환경 변수에 android-sdk/platform-tools/를 추가합니다. 이 디렉터리에는 systrace 프로그램에서 호출되는 Android 디버그 브리지(adb) 바이너리가 포함됩니다.
  4. USB 디버깅 연결을 사용하여 Android 4.3(API 수준 18) 이상을 실행하는 기기를 개발용 컴퓨터에 연결합니다.

systrace 명령어는 Android SDK 도구 패키지에 제공되며 android-sdk/platform-tools/systrace/에 위치합니다.

문법

앱에 관한 HTML 보고서를 생성하려면 명령줄에서 다음 문법을 사용하여 systrace를 실행해야 합니다.

python systrace.py [options] [categories]

예를 들어 다음 명령어는 systrace를 호출하여 기기 활동을 기록하고 mynewtrace.html이라는 HTML 보고서를 생성합니다. 이 카테고리 목록은 대부분의 기기에 적합한 기본 목록입니다.

$ python systrace.py -o mynewtrace.html sched freq idle am wm gfx view \
    binder_driver hal dalvik camera input res memory

도움말: 트레이스 출력에 작업 이름을 표시하려면 sched 카테고리를 명령어 매개변수에 반드시 포함해야 합니다.

연결된 기기에서 지원하는 카테고리 목록을 보려면 다음 명령어를 실행하세요.

$ python systrace.py --list-categories

카테고리 또는 옵션을 지정하지 않으면 systrace에서 사용 가능한 모든 카테고리를 포함하고 기본 설정을 사용하는 보고서를 생성합니다. 사용 가능한 카테고리는 사용 중인 연결된 기기에 따라 다릅니다.

전역 옵션

전역 옵션 설명
-h | --help 도움말 메시지를 표시합니다.
-l | --list-categories 연결된 기기에 사용할 수 있는 추적 카테고리를 나열합니다.

명령어 및 명령어 옵션

명령어 및 옵션 설명
-o file 지정된 file에 HTML 트레이스 보고서를 작성합니다. 이 옵션을 지정하지 않으면 systrace가 보고서를 systrace.py와 동일한 디렉터리에 저장하고 이름을 trace.html로 지정합니다.
-t N | --time=N N초 동안 기기 활동을 추적합니다. 이 옵션을 지정하지 않으면 systrace가 명령줄에서 Enter 키를 눌러 트레이스를 종료하라는 메시지를 표시합니다.
-b N | --buf-size=N NKB의 트레이스 버퍼 크기를 사용합니다. 이 옵션을 사용하여 트레이스 중에 수집되는 총 데이터 크기를 제한할 수 있습니다.
-k functions
| --ktrace=functions
쉼표로 구분된 목록에 지정된 특정 커널 함수의 활동을 추적합니다.
-a app-name
| --app=app-name
쉼표로 구분된 프로세스 이름 목록에 지정된 앱의 추적을 사용 설정합니다. 앱에 Trace 클래스의 추적 계측 호출이 포함되어야 합니다. 앱을 프로파일링할 때마다 이 옵션을 지정해야 합니다. RecyclerView와 같은 많은 라이브러리에는 앱 수준의 추적을 사용 설정하는 경우에 유용한 정보를 제공하는 추적 계측 호출이 포함되어 있습니다. 자세한 내용은 맞춤 이벤트 정의를 참고하세요.

Android 9(API 수준 28) 이상을 실행하는 기기의 모든 앱을 추적하려면 와일드 카드 문자 "*"(따옴표 포함)를 전달합니다.

--from-file=file-path 실시간 트레이스를 실행하는 대신 원시 트레이스 데이터가 포함된 TXT 파일과 같은 파일에서 대화형 HTML 보고서를 만듭니다.
-e device-serial
| --serial=device-serial
기기 일련번호로 확인된 특정 연결된 기기에서 트레이스를 진행합니다.
categories 지정한 시스템 프로세스에 관한 추적 정보를 포함합니다(예: 그래픽을 렌더링하는 시스템 프로세스의 경우 gfx). systrace-l 명령어와 함께 실행하여 연결된 기기에서 사용할 수 있는 서비스의 목록을 볼 수 있습니다.