최상의 사용자 환경을 위해 앱을 최대한 작고 빠르게 최적화해야 합니다. R8이라는 앱 최적화 도구는 사용하지 않는 코드와 리소스를 삭제하고, 런타임 성능을 최적화하도록 코드를 다시 작성하는 등의 작업을 통해 앱을 간소화합니다. 사용자에게는 다음을 의미합니다.
- 더 빨라진 시작 시간
- 렌더링 및 런타임 성능 개선
- ANR 감소
앱 최적화를 사용 설정하려면 다음 코드와 같이 출시 빌드'의 앱 수준 빌드 스크립트에서 isMinifyEnabled = true
(코드 최적화용) 및 isShrinkResources = true
(리소스 최적화용)을 설정합니다. 항상 두 설정을 모두 사용 설정하는 것이 좋습니다. 또한 최적화는 프로젝트의 빌드 시간을 늘리고 코드를 수정하는 방식으로 인해 디버깅을 더 어렵게 만들 수 있으므로 게시 전에 테스트하는 앱의 최종 버전(일반적으로 출시 빌드)에서만 앱 최적화를 사용 설정하는 것이 좋습니다.
Kotlin
android { buildTypes { release { // Enables code-related app optimization. isMinifyEnabled = true // Enables resource shrinking. isShrinkResources = true proguardFiles( // Default file with automatically generated optimization rules. getDefaultProguardFile("proguard-android-optimize.txt"), ... ) ... } } ... }
Groovy
android { buildTypes { release { // Enables code-related app optimization. minifyEnabled true // Enables resource shrinking. shrinkResources true // Default file with automatically generated optimization rules. proguardFiles getDefaultProguardFile('proguard-android-optimize.txt') ... } } }
더 작은 앱을 위해 리소스 축소 최적화
Android Gradle 플러그인 (AGP) 8.12.0 버전에서는 리소스와 코드 최적화를 통합하여 더 작고 빠른 앱을 만드는 것을 목표로 하는 최적화된 리소스 축소가 도입되었습니다.
최적화된 리소스 축소 사용 설정
AGP 버전이 9.0.0 미만인 경우 새로운 최적화된 리소스 축소 파이프라인을 사용 설정하려면 프로젝트의 gradle.properties
파일에 다음을 추가하세요.
android.r8.optimizedResourceShrinking=true
AGP 9.0.0 이상을 사용하는 경우 android.r8.optimizedResourceShrinking=true
를 설정할 필요가 없습니다. 최적화된 리소스 축소는 빌드 구성에서 isShrinkResources = true
가 사용 설정된 경우 자동으로 적용됩니다.
R8 최적화 설정 확인 및 구성
R8이 전체 최적화 기능을 사용하도록 하려면 프로젝트의 gradle.properties
파일에서 다음 줄을 삭제합니다(있는 경우).
android.enableR8.fullMode=false # Remove this line from your codebase.
앱 최적화를 사용 설정하면 스택 트레이스를 이해하기 어려워집니다. 특히 R8이 클래스 또는 메서드 이름을 변경하는 경우에 그렇습니다. 소스 코드에 올바르게 대응하는 스택 트레이스를 가져오려면 원래 스택 트레이스 복구를 참고하세요.
R8을 사용 설정한 경우 시작 프로필을 만들어 시작 성능을 더욱 개선해야 합니다.
앱 최적화를 사용 설정했는데 오류가 발생하는 경우 다음 전략을 사용하여 오류를 수정할 수 있습니다.
- 일부 코드를 그대로 유지하려면 keep 규칙을 추가하세요.
- 최적화를 점진적으로 적용
- 최적화에 더 적합한 라이브러리를 사용하도록 코드를 업데이트합니다.