최적화된 리소스 축소를 통해 앱 성능 향상 노트

최적화된 리소스 축소를 통해 앱 성능 향상

훌륭한 사용자 경험을 위해서는 빠르고 작은 앱이 필수적입니다. 앱 최적화 도구인 R8은 사용하지 않는 코드와 리소스를 제거하고 런타임 성능을 최적화하여 이를 달성합니다. Android Gradle Plugin 버전 8.12.0은 R8을 통한 최적화된 리소스 축소를 도입했습니다. 이 기능은 앱 크기를 줄여 다운로드 속도 향상, 빠른 설치, 메모리 사용량 감소로 이어집니다. 그 결과, 더 빠른 시작, 더 나은 렌더링, 그리고 응답 없음(ANR) 오류 감소를 경험할 수 있습니다. 새로운 접근 방식은 리소스 축소를 코드 최적화와 통합하여 R8이 사용하지 않는 코드에 의해 독점적으로 참조되는 리소스를 식별하고 제거할 수 있도록 합니다. 이는 AAPT2의 무조건적인 보존 규칙의 필요성을 없애고, 사용하지 않는 코드와 리소스를 더욱 정확하게 폐기할 수 있게 합니다. 이전에는 코드와 리소스 최적화가 분리되어 AAPT2가 리소스에 의해 참조되는 코드를 보존했고, 이는 R8이 해당 사용하지 않는 코드와 관련 리소스를 유지하게 했습니다. 최적화된 리소스 축소를 활성화하려면 개발자는 build.gradle.kts 파일에서 isMinifyEnabledisShrinkResources를 true로 설정하고, gradle.properties 파일에 android.r8.optimizedResourceShrinking=true를 추가해야 합니다. 리소스와 코드를 공유하는 앱의 경우 50% 이상과 같은 상당한 앱 크기 개선이 관찰되었습니다. 최적화된 리소스 축소는 교차 경계 참조 추적을 통해 리소스와 DEX 코드를 모두 제거하여 크기를 더욱 줄입니다. AGP 9.0.0부터는 리소스 축소가 활성화되면 이 최적화된 접근 방식이 기본값으로 설정됩니다. 개발자들은 이를 시도해보고 발생하는 모든 문제를 보고하도록 권장됩니다.