MultiDex는 Android Version 21 이후에도 과연 유효할까?

Multidex를 최근 안드로이드 버전에서도 일일히 잡아주어야 되나 고민이 되어서 찾아보았다.

결론 : minSDK 21 이상이면, 알아서 해준다. -_-; 다만 multiDexEnabled 만 해주면 된다.

안드로이드 앱의 Multidex는 현재 안드로이드 버전에서도 여전히 유효하며 필요한 개념입니다. 하지만 필요성 여부는 앱이 지원하는 최소 API 레벨(minSdkVersion)에 따라 달라집니다.

  1. minSdkVersion 21 (Android 5.0 Lollipop) 이상인 경우:
  • 이 버전부터는 안드로이드 런타임(ART)이 기본적으로 여러 개의 DEX 파일을 로드하는 것을 지원합니다.
  • 따라서 minSdkVersion이 21 이상이면, Multidex가 기본적으로 활성화되며 별도의 Multidex 지원 라이브러리를 추가할 필요가 없습니다. 빌드 시스템이 자동으로 처리해 줍니다.
  • 다만, build.gradle 파일에 multiDexEnabled true 설정은 여전히 필요할 수 있습니다 (특히 릴리스 빌드 시).

2. minSdkVersion 20 (Android 4.4 KitKat) 이하인 경우:

  • 이 버전들은 Dalvik 런타임을 사용하며, 이는 단일 DEX 파일만 처리할 수 있습니다.
  • 앱과 라이브러리의 총 메소드 수가 65,536개를 초과하면, 반드시 Multidex를 명시적으로 설정해야 빌드 오류를 피할 수 있습니다.
  • 설정 방법:
    • build.gradle 파일에 multiDexEnabled true 추가.
    • Multidex 지원 라이브러리 의존성 추가 (androidx.multidex:multidex:2.0.1 등).
    • Application 클래스가 MultiDexApplication을 상속하거나 attachBaseContext()에서 MultiDex.install(this) 호출.

결론적으로, Multidex는 주로 오래된 안드로이드 버전(API 21 미만)을 지원해야 하고 앱의 크기가 커서 64k 메소드 제한을 초과할 때 여전히 필수적입니다. 최신 안드로이드 버전만을 타겟으로 하는 앱에서는 시스템이 자동으로 처리해주므로 개발자가 직접 신경 써야 할 부분이 줄어듭니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다