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

조회수 7643회

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

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

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

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

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

    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)