반응형

안드로이드의 멀티덱스는 안드로이드 플랫폼에서 애플리케이션을 실행하는 데 사용되는 DEX(Dalvik Executable) 파일 형식의 한계를 극복하기 위해 도입된 메커니즘입니다. DEX 파일 형식은 일반적으로 단일 파일 내에서 참조할 수 있는 메서드 수에 제한이 있습니다. 이 제한은 메서드 수 제한을 초과하는 크고 복잡한 Android 애플리케이션의 경우 문제가 될 수 있습니다.

다중 DEX 파일의 약자인 Multidex를 사용하면 Android 애플리케이션이 두 개 이상의 DEX 파일을 가질 수 있습니다. 이를 통해 애플리케이션에 더 많은 메서드를 포함할 수 있으므로 메서드 수 제한이 방지됩니다. 이는 많은 라이브러리를 사용하거나 상당한 양의 코드가 있는 애플리케이션에 특히 중요합니다.

Android의 multidex에 대한 몇 가지 핵심 사항은 다음과 같습니다.

 

  • 메서드 수 제한: Dalvik Executable 형식에는 전통적으로 64K 메서드 참조 제한이 있습니다. 여기에는 앱 코드의 메서드뿐만 아니라 앱이 사용하는 모든 라이브러리(종속성)의 메서드도 포함됩니다. 이 제한을 초과하면 개발자에게 빌드 오류가 발생할 수 있습니다.

 

  • Multidex 활성화: Android 애플리케이션에서 multidex를 활성화하려면 앱의 빌드 구성을 일부 수정해야 합니다. 여기에는 multidex 지원 라이브러리를 포함하도록 build.gradle 파일을 업데이트하고 애플리케이션 클래스를 구성하는 작업이 포함됩니다.
android {
    ...
    defaultConfig {
        ...
        multiDexEnabled true
    }
    ...
}

dependencies {
    implementation 'com.android.support:multidex:1.0.3'
}
  • 애플리케이션 클래스 구성: 애플리케이션에 사용자 정의 Application 클래스가 있는 경우 이를 수정하여 MultiDexApplication을 확장하거나 attachBaseContext 메서드를 재정의하여 MultiDex.install(this)을 호출해야 합니다.
public class MyApplication extends MultiDexApplication {
    ...
}

 

  • DEX 파일 분할: multidex가 활성화되면 빌드 프로세스는 메서드 수가 제한을 초과하지 않도록 DEX 파일을 자동으로 분할합니다. 추가 DEX 파일(기본 파일 이외의)이 생성되고 시스템은 런타임 중에 필요에 따라 이를 로드합니다.
  • 시작 시간에 미치는 영향: 여러 DEX 파일을 로드하면 약간의 오버헤드가 발생하므로 multidex를 사용하면 애플리케이션의 시작 시간에 영향을 미칠 수 있습니다. 이는 특히 리소스가 제한된 장치를 대상으로 하는 앱의 경우 개발자가 인지하고 고려해야 할 사항입니다.

요약하자면, Android의 멀티덱스 지원은 Dalvik Executable 형식에 의해 부과된 64K 메서드 참조 제한을 극복하기 위한 솔루션입니다. 이를 통해 메소드 수 제한과 관련된 빌드 오류가 발생하지 않고 더 크고 복잡한 애플리케이션이 작동할 수 있습니다.

반응형

+ Recent posts