Android Pie에서 시스템 추적을 로컬로 캡처하는 방법

추적은 개발자가 다양한 변경 사항이 시스템에 미치는 영향을 이해하고 문제의 근본 원인을 식별 할 수있는 단서를 제공 할 수있는 귀중한 도구입니다.

systrace 는 Android 장치에서 실행되는 프로세스에서 타이밍 정보를 수집하는 강력한 추적 도구 중 하나입니다. systrace 는 Google의 Android 성능 팀에서 Google Pixel 휴대 전화의 성능을 최적화하기 위해 광범위하게 사용되었습니다. 예를 들어 systrace 를 사용하여 커널 스케줄러 변경이 CPU에 대한 작업 배치에 미치는 영향을 검사하고 가능한 잔재의 원인을 식별했습니다. systrace 는 CPU 스케줄링, CPU 주파수, 디스크 I / O, 그래픽, 바인더 활동 등을 포함한 다양한 데이터를 캡처 할 수 있습니다. 정보는 Chrome에서 분석 할 수있는 보고서로 결합됩니다.

Android Pie 이전에는 systrace 를 사용하여 추적을 캡처하는 유일한 방법은 컴퓨터에 Android 장치를 연결하고 일반적으로 터미널에서 systrace를 실행하는 것입니다. 그러나 모든 사람이 컴퓨터에 지속적으로 액세스 할 수있는 것은 아니며 systrace를 실행할 지식과 자신감이 없습니다.

Android Pie가 출시됨에 따라 Android 전화에서 원시 추적 데이터를 직접 캡처하는 도구 인 Traceur 패키지가 도입되면서 이러한 불편 함이 해결되었습니다. Traceur는 설정 앱의 개발자 옵션에서 "시스템 추적"옵션으로 사용할 수 있으며 나중에 Traceur가 장치에서 캡처 한 원시 추적 데이터를 systrace 에서 HTML 보고서로 변환하여 분석 할 수 있습니다.

새로운 "시스템 추적"옵션을 통해 사용자는 컴퓨터에서 systrace 를 실행하는 방법을 실제로 몰라도 개발자가 추적을 쉽게 캡처하고 공유 할 수 있습니다. 개발자는 컴퓨터없이 트레이스를 캡처하고 나중에 편리하게 분석 할 수있는 기능을 활용할 수 있습니다. "시스템 추적"에 의해 수집 된 전체 원시 추적 데이터는 systrace 에 의해 생성 된 HTML 보고서보다 크기가 훨씬 작으므로 원시 추적 데이터를 다른 사용자와 저장 및 공유하기에 더 적합합니다.

안내서 : 시스템 수집 및 시스템 추적 분석

먼저 Android Pie를 실행하는 장치와 Python 2가 설치된 컴퓨터가 있는지 확인하십시오. 다음 지침은 최신 OxygenOS Android Pie 베타를 실행하는 OnePlus 6에서 수행되었습니다.

  1. 설정 앱에서 개발자 옵션을 활성화 한 다음 개발자 옵션의 "디버깅"섹션에있는 "시스템 추적"옵션에 액세스하십시오.

  2. 시스템 추적을 열면 시스템 추적을 활성화하고 추적 범주 및 추적의 버퍼 크기를 사용자 지정할 수있는 기능이 제공됩니다. 이 데모에서는 기본 범주가 사용되며 대부분의 경우 충분합니다. "빠른 설정 타일 표시"토글을 사용하면 빠른 설정을 통해 추적을 시작 / 중지 할 수 있습니다. 이 안내서에서이 기능을 활성화했습니다.

  3. 트레이스 캡처를 시작하려면 최근에 추가 한 "레코드 트레이스"빠른 설정 타일을 누릅니다.

  4. 테스트 사례 추적이 완료되면 알림 창에서 추적을 중지 할 수 있습니다.

  5. 큰! 원시 추적을 성공적으로 캡처했습니다. 원시 추적 파일을 공유하라는 알림이 표시됩니다. 장치에 저장하거나 온라인 저장소에 업로드하거나 다른 사람에게 전자 메일로 보내는 등의 작업을 수행 할 수 있어야합니다. 또는 ADB를 사용하여 장치에서 컴퓨터로 추적을 직접 끌어 올 수 있습니다 ( adb pull /data/local/traces/ ). 계속해서 추적 파일을 컴퓨터에 저장하십시오.

  6. 원시 추적 파일은 .ctrace 형식으로 구성되어 있습니다. 원시 형식으로 해석 할 수 없습니다. systrace 를 사용하여 원시 추적 파일에서보다 유용하고 이해하기 쉬운 대화식 HTML 보고서를 생성 할 수 있습니다.

  7. 우리는 투석기 프로젝트 저장소에서 최신 버전의 systrace 를 사용할 것입니다. 터미널 응용 프로그램에서 저장소를 복제하십시오 (git가 설치되어 있는지 확인하십시오).
     git clone //github.com/catapult-project/catapult.git 
  8. systrace를 사용하여 원시 추적 파일에서 HTML 보고서를 생성하려면 다음 명령을 입력하십시오.
     python2 catapult/systrace/bin/systrace --from-file= 

    원시 추적 파일과 이름이 같은 HTML 파일이 생성됩니다. 참고 : systrace는 작성시 Python 2 만 지원합니다.

  9. HTML 보고서를 보려면 Chrome 브라우저를 시작하고 "chrome : // tracing"URL에 액세스하십시오. HTML 보고서는 빈칸으로 표시되므로 Chrome에서 직접 열지 마십시오.

  10. "로드"를 클릭하고 팝업 대화 상자에서 HTML 보고서 파일을 엽니 다. 짜잔! 이제 추적 보고서를 검사 할 수 있습니다.

무엇 향후 계획?

이제 추적을 캡처하고 systrace 보고서를 생성 할 수 있으므로 보고서에 제시된 데이터를 읽고 해석하는 방법을 이해하는 것이 중요합니다. 시작 하려면 " Systrace 이해"를 읽고 "Android 성능 : 개요 (Google I / O '17)"및 " Systrace for Games"를보고 systrace 가 작동하는지 확인하는 것이 좋습니다.

이 글은 원래 Josh Choo (Recognized Developer joshuous라고도 함)가 작성한 게스트 게시물입니다. 게시물이 서식을 위해 약간 수정되었습니다.