Android는 JVM 기반의 ART 위에서 동작한다.
ART 위에서 동작하기 위해 안드로이드 코드는 dex 파일로 컴파일 된다.
이때, 메서드 수가 64k(65535)개를 초과할 수 없어서 나오게 된 개념이 Multidex이다.
Multidex는 메서드가 64k(65536)개를 초과하지 않도록 dex파일을 여러개로 쪼개주고 쪼개진 dex를 읽을 수 있게 해준다.
minSdkVersion이 21 이상인 경우, multidex는 기본 사용 설정이 된다.
20이하의 경우엔 명시적으로 선언을 해줘야한다.
// build.gradle
android{
complieSdkVersion 28
defaultConfig{
...
// 멀티덱스 기능 true
multiDexEnabled true
}
...
}
dependencies{
// 의존성 추가
implementation 'com.android.support:multidex:1.0.3'
}
import android.support.multidex.MultiDexApplication;
public class App extends MultiDexApplication{ // 매니페스트의 앱 이름과 같은 클래스가 상속받아야한다.
@Override
public void onCreate(){
super.onCreate();
}
}