[안드로이드] Multidex 란
안드로이드는 JVM기반의 ART위에서 동작한다.
ART위에서 동작하기 위해 안드로이드 코드는 dex파일로 컴파일 된다. 이때 메서드 수가 64k (65536)개를 초과할 수 없어서
나오게 된 개념이 Multidex다.
Multidex는 메서드가 64k(65536)개를 초과하지 않도록 dex파일을 여러개로 쪼개주고, 쪼개진 dex를 읽을 수 있게 해준다.
HOW TO?
minSdkVersion 이 21 이상인 경우 multidex가 기본적으로 사용 설정된다.
20이하 인 경우에는 multidex를 명시적으로 선언해 줘야한다.
// 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();
}
}