4
저는 데스크톱과 모바일 (Android)에서 모두 작업하고 싶은 도구 라이브러리를 작성하고 있습니다.android 용 사용자 정의 클래스 로더?
- 는 단일 매개 변수, 모두가로드로 클래스 및 악기 그들에게
그것은 기능
과 같이 :
// Expects args[0] to contain the name of the INNER main
public static void main(String[] args) throws Throwable {
String className = args[0];
String [] newArgs = new String[0];
if(args.length > 1) {
newArgs = Arrays.copyOfRange(args, 1, args.length-1);
}
System.out.println("Bootstrapping " + className);
Loader s = new Loader(ClassLoader.getSystemClassLoader().getParent());
Class<?> c = s.loadClass(className);
c.getDeclaredMethod("main", new Class[] { String[].class }).invoke(
null, new Object[] { newArgs });
}
문제는 생입니다 s :
어떻게하면 Android 앱에서 대략 동일한 작업을 수행 할 수 있습니까?
한 가지 아이디어는 기존 액티비티를 "래퍼"액티비티로 바꾸기 위해 안드로이드 매니페스트를 수정 한 다음 클래스 로더를 설치하고 원래의 기본 액티비티를 호출하는 것입니다. 더 좋은 방법이 있습니까?
이것은 내가 염두에 두었던 것과 정확히 같습니다. 나는 이것이 매니페스트에 대한 수정을 필요로하는지에 관해 명확하지 않지만, 오늘 밤에 집에 들어가서 파고들 때까지 기다려야한다. – amirpc