성능을 검사하여 앱에서 발생하는 상황을 이해하고 기대치를 충족하는지 확인할 수 있습니다.
Android에서는 앱 성능을 검사하는 데 사용할 수 있는 여러 도구를 제공합니다. 처음에는 검사를 진행할 때 한 번에 한 가지 영역에 집중하는 것이 좋습니다. 이러한 영역에는 다음이 포함될 수 있습니다.
- 앱 시작
- 느린 렌더링(버벅거림)
- 화면 전환 및 탐색 이벤트
- 장기 실행 작업
- 백그라운드에서 진행되는 작업(I/O, 네트워킹 등)
앱 워크플로의 중요한 사용자 여정을 검사하는 방법도 있습니다. 이를 통해 어느 부분에서 성능과 예상이 일치하지 않는지 종합적으로 파악할 수 있습니다.
성능을 검사할 때는 수동 검사와 자동 검사, 이렇게 두 가지 방법을 사용할 수 있습니다. 새로운 영역을 검사할 때는 수동 디버깅으로 시작하는 경우가 많습니다.
수동 검사
앱의 어느 영역을 검사할지 정했으면 다양한 도구를 사용하여 정확히 어떤 일이 일어나고 있는지 알아볼 수 있습니다.
Android 9 이상을 실행하는 기기에서 성능을 검사하는 가장 포괄적인 도구는 Perfetto입니다. Perfetto는 추적 정보의 가능한 가장 자세한 정보를 제공합니다. 강력한 필터를 사용하면 필요에 따라 세부정보 수준을 조정할 수 있습니다. Android 기기에서 트레이스를 캡처하는 방법에 관한 자세한 내용은 빠른 시작: Android에서 트레이스 기록 가이드를 참고하세요.
Android 스튜디오에 내장된 Android 프로파일러는 세부정보 수준을 앱으로 제한할 수 있으며 Android 9보다 낮은 기기에서 실행할 때 앱의 성능에 관한 유용한 정보를 제공할 수도 있습니다.
자세한 내용은 시스템 추적 개요를 참고하거나 성능 디버깅에 관한 심층 시리즈를 시청하세요.
자동 테스트
수동 검사 외에도 자동 테스트를 설정하여 성능 데이터를 수집하고 집계할 수 있습니다. 이렇게 하면 사용자가 실제로 보게 되는 내용과 회귀가 발생할 수 있는 경우를 파악하는 데 도움이 됩니다. 앱의 자동 성능 테스트를 설정하는 방법에 관한 자세한 내용은 앱 벤치마크를 참고하세요.
앱 시작 성능
성능을 검사하고 모니터링하여 앱을 개선하는 데 사용할 수 있는 도구는 다양합니다.
벤치마크 라이브러리를 사용하여 로컬에서 성능 이해
- Macrobenchmark 라이브러리를 사용하면 시작, UI 상호작용, 애니메이션과 같이 더 큰 최종 사용자 상호작용을 측정할 수 있습니다.
- Microbenchmark 라이브러리를 사용하면 보다 세분화된 앱별 상황에 관한 성능을 분석할 수 있습니다.
프로덕션의 성능 이해
- Android vitals를 사용하면 다양한 성능 측정항목이 사전에 결정된 기준점을 초과할 때 알림을 수신하여 앱 성능을 개선할 수 있습니다.
- Firebase 성능 SDK는 앱 성능에 관한 다양한 측정항목을 수집합니다. 예를 들어 사용자가 앱을 여는 시점과 앱이 반응하는 시점 사이의 시간을 측정하는 데 SDK를 사용함으로써 잠재적인 시작 병목 현상을 파악할 수 있습니다.
Android 스튜디오를 사용하여 로컬에서 프로파일링
- Android 스튜디오를 사용하여 시스템 트레이스 또는 스택 샘플링 트레이스를 기록하고 확인합니다.
- Android 스튜디오를 사용하여 트레이스를 기록합니다. 자세한 내용은 성능 디버깅 동영상 시리즈를 참고하세요.
- Android용 네이티브 스택 샘플링 도구인 Simpleperf를 사용하여 Android 앱과 Android에서 실행되는 네이티브 프로세스를 모두 프로파일링합니다. Android에서 Java 코드와 C++ 코드를 모두 프로파일링할 수 있습니다.
고급 프로파일링 도구: Perfetto 추적
- Perfetto: Android 10(API 수준 29) 이상에서 사용할 수 있는 플랫폼 차원의 추적 도구입니다. 자세한 내용은 Perfetto 트레이스 개요를 참고하세요.
adb
를 사용하여 Perfetto 실행:perfetto
명령줄 도구를 실행하여 트레이스를 캡처하는 방법을 설명합니다.- cmdline을 통해 트레이스 기록:
perfetto
명령줄 도구를 빌드하고 실행하여 트레이스를 캡처하는 방법을 설명합니다. - Perfetto 웹 기반 트레이스 뷰어: Perfetto 트레이스를 열고 전체 보고서를 표시합니다. 기존 UI 옵션을 사용하여 이 뷰어에서 Systrace 트레이스를 열 수도 있습니다.