본문 바로가기
프로그래밍 놀이터/안드로이드, Java

[android] 런타임에 다른 apk 소스 ( dex 파일 ) 읽어오기.

by 돼지왕 왕돼지 2013. 12. 16.
반응형


  안드로이드, 런타임에 다른 apk 소스 ( dex 파일 ) 읽어오기.

 

[android] 런타임에 다른 apk 소스 ( dex 파일 ) 읽어오기.


Dalvik VM 은 런타임에 다른 dex 파일을 로딩할 수 있다.

dex 파일 로딩은 일반적으로 사용되는 방법은 아니다. 하지만, 다음과 같은 경우에 필요하다.



1. 64,000개 이상의 메서드를 포함한 앱의 경우 빌드에 문제가 발생할 수 있다. 이 경우 여러 개의 dex 파일로 나누어서 dex 를 동적으로 로딩해야 한다.


2. 런타임 중 동적으로 기능이 확장되는 프레임워크 형태의 앱은 커스텀 클래스 로딩 기능을 활용할 수 있다.


여러개의 dex 로 나누어 빌드 하는 경우는 이클립스 ADT 상에서 빌드될 수 없고, Ant 빌드 스크립트를 활용하여 빌드해야 한다.



<런타임에 다른 dex 파일 로딩하는 예제 코드>


DexClassLoader dcl = new DexClassLoader( path, null, getClassLoader() );

Class clz = null;

try{

clz = dcl.loadClass( fullClassName );

SomethingInterface lib = (SomethingInterface) clz.newInstance();

lib.doSomething();

}

catch( Exception e ){

...

}







반응형

댓글