동적으로 클래스를 로드하는 문제에 대하여 질문드립니다.


몇일전 SDCARD에 Jar파일을 넣어서 어플에서 동적으로 Class를 로드하는 부분을 질문하였습니다.


기존에 자바같은 경우는 ClassLoader나 URLClassLoader를 사용하여 동적으로 Class를 로드하였습니다.


하지만 android에서는 위의 방법대로 할경우 에러가 발생하며


어떤분께서 친절하게 DexClassLoader를 사용하라고 답변을 주셨습니다.


제가 생각하는것이 맞다면


일단 java는 jvm을 사용하고 android는 dalvik을 사용합니다.


따라서 jvm같은 경우는 빌드가 된 class를 바로 사용이 가능하지만


dalvik에서는 런타임시 Dex로 변환이 되지 않은 class는 로딩이 불가능하다고 판단하였습니다


(이유는 필요한 클래스를 apk로 빌드하여 SDCARD에 넣고 사용할때는 정상적으로 아주 잘 동작을 하지만


jar형태로 export하여 SDCARD에 넣고 사용하면 예외가 발생합니다.)


제가 생각한 것이 맞나요?


말주변이 없어 제대로 설명을 한 것인지 모르겠습니다.


그래서 안드로이드에서 외부 jar에 class를 동적으로 로딩하려면 


jar파일을 dex형태로 컨버팅해 놓아야 dalvik에서 class를 로딩이 가능한것 같습니다.


안드로이드 툴중에 dx 파일이 있는데


이것으로 jar파일을 dex형태로 컨버팅이 가능한가요?


아무리 해도 잘 되지 않습니다.


예) dx --dex --output=classes.dex mylib.jar


이와관련된 조언을 부탁드립니다.