Android MultiDexApplication이 어떤건지 궁금합니다.


제목 그대로 안드로이드 MultiDex라는 것에 대해서 궁금합니다.. 메서드 갯수 제한을 풀어주는걸로 알고 있는데 정확한 사용방법과 어떠한 상황에 알맞게 사용하는지 알고 싶습니다.

  • 2016년 05월 24일에 작성됨

조회수 573


2 답변


좋아요
3
싫어요
채택취소하기

자바에서 Hello.java라는 소스코드를 컴파일 하면 Hello.class라는 파일이 생성되는데요. 안드로이드는 Hello.class 파일을 dx라는 툴을 이용해서 여러개의 .class 파일을 하나의 classes.dex 파일로 생성합니다. dex(Dalvik Executable) 파일은 안드로이드의 달빅 가상 머신(DVM)에서 실행되는 파일 포맷이에요. (https://source.android.com/devices/tech/dalvik/dex-format.html)

이 dex 파일의 제약으로 인해 함수 개수는 65K(65,536)개를 초과할 수 없습니다. 이를 해결하기 위해서 Multidex라는 개념이 나온 것이고요. Multidex를 적용하면 APK 하나당 하나의 classes.dex 파일을 생성하는 것이 아니라 classes1.dex, classes2.dex와 같은 여러개의 dex 파일을 생성해서 65K 문제를 해결하는 것입니다.

간단한 앱을 만드는 경우 65K 문제를 고려해서 Multidex를 적용할 필요는 없고요. 사용하는 라이브러리가 많고, 앱의 기능이 추가되면서 함수 개수가 많아질 때 Multidex를 적용하면 됩니다.

적용 방법은 초보초보초밥님이 올려주신 링크를 참고하시면 돼요 :D


  • 감사합니다~    손진우   2016.5.24 13:57     

메서드가 65536 개를 넘을때 사용합니다. 여러개의 라이브러리 특히 구글 서비서계 라이브러리를 넣으면 넘는경우가 많았습니다. 그럴경우 사용합니다.

사용방법은 아래를 참조 하시면^

https://developer.android.com/studio/build/multidex.html

  • 2016년 05월 24일에 작성됨
    Android개발을 하고 있습니다만 모르는것이 많습니다. ^^;;

  • 감사합니다~    손진우   2016.5.24 13:58     

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close