측정항목

  
애플리케이션의 다양한 런타임 측정항목 추적 및 보고
최근 업데이트 안정화 버전 출시 후보 버전 베타 버전 알파 버전
2024년 1월 10일 - - 1.0.0-beta01 -

종속 항목 선언

Metrics의 종속 항목을 추가하려면 프로젝트에 Google Maven 저장소를 추가해야 합니다. 자세한 내용은 Google Maven 저장소를 읽어보세요.

다음과 같이 앱 또는 모듈의 build.gradle 파일에 필요한 아티팩트의 종속 항목을 추가합니다.

Groovy

dependencies {
    implementation "androidx.metrics:metrics-performance:1.0.0-beta01"
}

Kotlin

dependencies {
    implementation("androidx.metrics:metrics-performance:1.0.0-beta01")
}

종속 항목에 관한 자세한 내용은 빌드 종속 항목 추가를 참고하세요.

의견

제출하신 의견은 Jetpack을 개선하는 데 도움이 됩니다. 새로운 문제를 발견하거나 라이브러리 개선을 위한 아이디어가 있다면 Google에 알려 주세요. 새 문제를 제출하기 전에 이 라이브러리의 기존 문제를 살펴보시기 바랍니다. 별표 버튼을 클릭하여 기존 문제에 투표할 수 있습니다.

새로운 문제 제출하기

자세한 내용은 Issue Tracker 문서를 참고하세요.

버전 1.0.0

버전 1.0.0-beta01

2024년 1월 10일

이 라이브러리의 API 및 기능은 한동안 안정적이었습니다. 이 출시에서는 단순히 라이브러리를 베타로 푸시합니다.

androidx.metrics:metrics-performance:1.0.0-beta01가 출시되었습니다. 버전 1.0.0-beta01에 포함된 커밋을 확인하세요.

버전 1.0.0-alpha04

2023년 4월 5일

이 출시에서는 JankStats가 더 정확하고 포괄적인 타이밍 정보를 포함하는 최신 수정으로 업데이트됩니다.

androidx.metrics:metrics-performance:1.0.0-alpha04가 출시되었습니다. 버전 1.0.0-alpha04에 포함된 커밋을 확인하세요.

API 변경사항

  • cpuDuration가 이제 더 정확해졌으며 API31에서는 새로운 totalDuration도 새로 추가되었습니다. (I59ce8, b/243694893)

버전 1.0.0-alpha03

2022년 7월 27일

androidx.metrics:metrics-performance:1.0.0-alpha03가 출시되었습니다. 버전 1.0.0-alpha03에 포함된 커밋을 확인하세요.

  • 라이브러리가 베타 버전에 가까워짐에 따라 이 출시 버전에는 사소한 API 수정 사항이 포함되었습니다. API 변경사항 중 하나에서는 JankStats 객체를 만드는 createAndTrack() 팩토리 메서드에서 Executor가 삭제되었습니다. OnFrameListener 리스너는 이제 프레임당 데이터를 JankStats에 전달하는 스레드(API 24 이전 버전에서는 기본/UI 스레드, API 24 및 이후 버전에서는 FrameMetrics 스레드)에서 호출되므로 이 호출에 영향을 줍니다. 또한 리스너에 전달된 FrameData 객체는 이제 모든 프레임에서 재사용되므로, 이 객체는 리스너가 반환되자마자 더 이상 사용되지 않는 것으로 간주되어야 하므로 콜백 중에 다른 곳에서 복사 및 캐시되어야 합니다.

  • 동시 실행 문제를 포함한 몇 가지 버그도 수정되었습니다.

  • 마지막으로, (위에서 언급한) FrameData 재사용 수정사항에 따라 이제 프레임 측정항목 전송으로 인해 프레임당 할당이 0이 됩니다. 이전에도 할당이 많이 않아지만, 새로운 접근 방식에서는 앱에서 프레임당 GC 오버헤드를 발생시키지 않고도 JankStats를 사용할 수 있습니다.

API 변경사항

  • PerformanceMetricsState의 메서드 및 매개변수 이름이 업데이트되어 이제 호출의 결과가 더 명확해졌습니다. (I56da5, b/233421985)
  • 할당을 추적하기 위한 벤치마크 테스트가 추가되고, 상태 관리 및 보고와 관련된 몇 가지 내부 할당이 삭제되었습니다. 리스너에 전달되던 FrameData는 이제 휘발성으로 간주됩니다. 이 구조는 다음번 프레임에서 재사용되며 리스너는 반환될 때까지만 믿을 수 있습니다.
  • JankStats의 생성자에서 실행자가 삭제되었습니다. 이제 내부 데이터가 수신된 스레드에서 리스너가 호출됩니다. (I12743)

버그 수정

  • OnFrameMetricsAvailableListener를 두 번 삭제하여 발생하는 비정상 종료 문제를 해결했습니다. (I44094, b/239457413)
  • 보다 일관되고 예측 가능한 프레임 타이밍을 위해 큐 앞에 OnPreDrawListener 메시지를 게시하는 기존 로직으로 복귀했습니다. (I05a43, b/233358407)
  • 리스너 대리자 목록이 프레임별 데이터 전송을 위해 반복되는 동안 동시에 수정되던 ConcurrentModificationException 버그가 수정되었습니다. (Ib7693, b/236612357)

버전 1.0.0-alpha02

2022년 6월 29일

androidx.metrics:metrics-performance:1.0.0-alpha02가 출시되었습니다. 버전 1.0.0-alpha02에 포함된 커밋을 확인하세요.

API 변경사항

버그 수정

  • 이전 상태가 올바를 수 있었던 프레임이 처리되기 전에 상태를 새 값으로 대체할 수 있는 타이밍 문제를 수정했습니다(aosp/2061892, b/213499234).
  • 리스너 추가/삭제 시 동시 수정 예외 문제를 수정했습니다(aosp/2092714, b/213499234).
  • startTime 계산의 정확도를 개선했습니다(aosp/2027704, b/213245198).
  • FrameData.equals() 구현에서 버그를 수정했습니다(aosp/2025866, b/218296544).

버전 1.0.0-alpha01

2022년 2월 9일

androidx.metrics:metrics-performance:1.0.0-alpha01가 출시되었습니다. 버전 1.0.0-alpha01에 포함된 커밋을 확인하세요.

새로운 기능

  • JankStats 라이브러리가 실제 성능 문제를 찾는 데 도움이 되도록 런타임에 애플리케이션에서 콜백을 계측하고 수신하는 기능을 제공합니다.
  • JankStats가 UI 상태 정보를 쉽게 삽입할 수 있는 API와 프레임별 성능 추적 및 보고 기능을 결합하여 개발자가 애플리케이션에 성능 문제가 있는지가 아니라 성능 문제가 언제, 왜 발생하는지를 이해할 수 있도록 합니다.