측정항목
최근 업데이트 | 안정화 버전 | 출시 후보 버전 | 베타 버전 | 알파 버전 |
---|---|---|---|---|
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 변경사항
MetricsStateHolder
를 Holder(PerformanceMetricsState
내에서)로 이름을 바꿨습니다(I5a4d9, b/226565716, b/213499234).
버그 수정
- 이전 상태가 올바를 수 있었던 프레임이 처리되기 전에 상태를 새 값으로 대체할 수 있는 타이밍 문제를 수정했습니다(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와 프레임별 성능 추적 및 보고 기능을 결합하여 개발자가 애플리케이션에 성능 문제가 있는지가 아니라 성능 문제가 언제, 왜 발생하는지를 이해할 수 있도록 합니다.