Wear OS에서 성능은 앱의 필수 고려사항입니다. 많은 Wear OS 기기가 더 큰 휴대기기에 비해 CPU 및 GPU 리소스가 제한되어 있기 때문입니다. Material 3 Expressive에 더 풍부한 애니메이션과 동적 효과가 도입됨에 따라 앱의 주요 워크플로 성능을 검증하고 개선해야 합니다.
Jetpack Compose 성능 가이드를 사용하여 Jetpack Compose를 통해 최적의 성능을 내도록 앱을 구성하고 개발하세요. 이 문서에서는 해당 가이드에 설명된 기법 중 일부를 중점적으로 설명합니다.
성능 측정 전략을 만들어 앱에서 이러한 기술이 예상대로 작동하는지 확인합니다.
필수 성능 개선 기법
기준 프로필(시작 프로필 포함)과 R8 코드 최적화 도구와 같이 가장 효과적인 성능 도구 유형부터 시작하세요.
Compose 종속 항목을 버전 1.8 이상으로 업데이트합니다. 이 버전에서는 여러 가지 중요한 새 기능이 도입되었으며 라이브러리의 전반적인 안정성이 개선되었습니다. 업데이트 방법은 종속 항목 선언의 안내를 참고하세요. 자세한 내용은 1.8 출시에 관한 블로그와 Compose의 새로운 기능 I/O 강연을 참고하세요.
기준 프로필
앱 성능을 개선하려면 기준 프로필을 사용하세요. 기준 프로필을 사용하여 시스템에서 사전 컴파일할 수 있는 앱의 주요 워크플로를 나타내는 클래스와 메서드를 그룹화합니다. 이렇게 하면 시작 시간이 단축되고 버벅거리는 프레임이 줄며 성능이 추가로 개선될 수 있습니다.
각 Jetpack Compose 라이브러리는 자체 프로필 규칙과 함께 제공됩니다. 앱이 라이브러리에 종속되면 라이브러리 프로필 규칙이 자동으로 앱의 APK와 병합되어 사전 컴파일을 위해 배포됩니다.
다음 기법을 사용하여 기준 프로필을 확인하세요.
- macrobenchmark 테스트를 사용합니다.
- 특정 ADB 명령어를 사용하여 앱의 프로필 구성 상태를 검증합니다. 이러한 두 기법의 단계는 성능 측정 및 검증 가이드에 설명되어 있습니다.
시작 프로필
기준 프로필의 하위 집합인 시작 프로필은 앱 시작 지연 시간을 줄이기 위해 포함된 클래스와 메서드를 더욱 최적화합니다.
시작 프로필을 추가하면 앱의 APK 크기가 증가하므로 프로덕션 버전에 추가하기 전에 APK 크기와 시작 지연 시간 간의 절충점을 평가해야 합니다.
시작하려면 스타트업 프로필 만들기를 읽어보세요.
R8
R8 컴파일러를 사용하여 앱을 축소하고 최적화합니다. R8은 사용되지 않는 코드와 리소스를 삭제하고, 런타임 성능을 최적화하도록 코드를 다시 작성하는 등의 작업을 실행합니다.
성능 개선 개요 가이드에서 사용하지 않는 리소스 삭제의 주요 단계를 비롯한 R8 고려사항을 읽습니다.
성능 측정 및 검증
Android의 일반적인 성능 측정 전략에 대해 알아보려면 앱 성능 측정 개요를 참고하세요. 이 섹션에서는 해당 문서에서 설명하는 기법 중 일부를 설명합니다.
측정할 빌드 변형 선택
디버그 모드는 여러 문제를 발견하는 데 유용하지만 상당한 성능 비용이 발생하고 기준 프로필을 사용하지 않으며 성능에 영향을 미칠 수 있는 코드 문제를 발견하기가 어려워질 수 있습니다.
앱 성능을 정확하게 이해하려면 출시 모드에서 앱을 실행하세요.
출시 빌드 옵션으로 실행되는 앱과 실제 기기에서 실행된 테스트에서만 성능에 관한 최종 결론을 도출하세요.
하지만 벤치마크 테스트 시에는 출시 디버깅과 몇 가지 주요 차이점이 있는 벤치마크 빌드 변형을 사용하세요. 자세한 내용은 Macrobenchmark 설정 가이드를 참고하세요.
앱의 기준 프로필 검증
먼저 프로필의 상태를 검사합니다.
adb shell dumpsys package dexopt | grep -A 1 $PACKAGE_NAME
상태가 status=speed-profile
이 아니면 앱을 최적화하기 위한 프로필 규칙이 아직 적용되지 않은 것입니다.
규칙은 기기가 충전되고 유휴 상태일 때 실행되는 백그라운드 작업을 사용하여 적용됩니다. 이를 수동으로 트리거하려면 앱이 실행되고 프로필 설치 프로그램이 백그라운드에서 프로필을 부트스트랩할 수 있도록 충분한 시간이 경과한 후 다음 명령어를 실행하세요. 이 프로세스는 일반적으로 약 40초가 소요됩니다.
adb shell cmd package bg-dexopt-job
그런 다음 이전 명령어를 다시 실행하여 상태가 speed-profile
인지 확인합니다.
설치 시 최적화가 발생하는 상황은 기준 프로필 사이드로드를 참고하세요.
UI Automator API
UI Automator API는 프로그래매틱 방식으로 상호작용을 자동화합니다. 이 API를 사용하여 잠재적인 최적화를 위해 사용자 여정을 검사할 때 개별 UI 부분을 벤치마킹하세요.
Macrobenchmark 테스트
Macrobenchmark는 앱의 대규모 사용 사례, 특히 앱 시작과 복잡한 UI 조작을 테스트합니다. 시작하려면 구현 가이드를 참고하세요.
매크로벤치마크를 사용하여 기준 프로필의 성능을 검증하는 예는 GitHub의 성능 샘플을 참고하세요.
JankStats 라이브러리
JankStats 라이브러리를 사용하여 애플리케이션의 성능 문제를 추적하고 분석합니다.
예시는 GitHub의 JankStats 샘플을 참고하세요.
시스템 트레이스
Material 3 Expressive에서 도입된 새로운 애니메이션 유형을 사용하여 Android 스튜디오의 시스템 추적 기능으로 문제가 있을 수 있는 사용자 여정의 지연 시간을 검사하고 진단합니다. 이 정보를 사용하여 기준 프로필의 콘텐츠를 확인하고 코드 로직의 잠재적인 비효율성을 파악합니다.
추가 도구
성능 개선 도구 외에도 다른 도구를 사용하여 생산성과 워크플로를 개선할 수 있습니다.
Android 스튜디오 생산성 도구
Android 스튜디오는 성능 개선을 식별하는 데 걸리는 시간을 줄일 수 있는 여러 도구를 제공합니다.
예를 들어 실시간 편집 및 컴포저블 미리보기와 같은 도구를 사용하여 성능 개선을 위해 앱 코드의 관련 영역과 함께 끊김 현상이 있는 UI 요소를 식별할 수 있습니다.
타겟 사용자층을 정확하게 나타내는 실제 Wear OS 기기 모음에서 모든 최종 성능 테스트를 실행합니다.
이는 특히 Material 3 Expressive로 이전할 때 중요합니다. Material 3 Expressive는 앱에 유연한 글꼴과 모양 변형과 같은 기능을 도입합니다.
뷰에서 이전하는 경우 이전 가이드와 Jetpack Compose 성능 권장사항을 확인하여 Jetpack Compose를 사용할 때 앱의 UI가 성능이 우수한지 확인하세요.
기타 리소스
최신 Android 성능 정보를 확인하려면 앱 성능 가이드의 최신 뉴스 및 동영상을 참고하세요.