Wear OS의 Jetpack Compose 성능

Wear OS에서 성능은 앱의 필수 고려사항입니다. 많은 Wear OS 기기가 더 큰 휴대기기에 비해 CPU 및 GPU 리소스가 제한되어 있기 때문입니다. Material 3 Expressive에 더 풍부한 애니메이션과 동적 효과가 도입됨에 따라 앱의 주요 워크플로 성능을 검증하고 개선해야 합니다.

Jetpack Compose 성능 가이드를 사용하여 Jetpack Compose를 통해 최적의 성능을 내도록 앱을 구성하고 개발하세요. 이 문서에서는 여기에 설명된 기법 중 일부를 강조합니다.

또한 성능 측정 전략을 만들어 이 문서의 기법이 앱에서 예상대로 작동하는지 확인하세요.

필수 성능 개선 기법

기준 프로필(시작 프로필 포함) 및 R8 코드 최적화기와 같이 가장 큰 영향을 미치는 성능 도구 유형부터 시작하세요.

시작하기 전에 Compose 종속 항목을 버전 1.8 이상으로 업데이트하는 것이 좋습니다. 버전 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를 사용하여 잠재적 최적화를 위해 사용자 여정을 검사할 때 개별 UI 부분을 벤치마킹합니다.

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 성능 정보를 확인하려면 앱 성능 가이드의 최신 뉴스 및 동영상을 참고하세요.