这样做的目的可以让一个apk分成多个升级,完全解耦。
解耦是有代价的:会有调用不到主工程api的烦恼
Context mmsCtx = createPackageContext("包名",
Context.CONTEXT_INCLUDE_CODE | Context.CONTEXT_IGNORE_SECURITY);
Class<?> clazz=Class.forName("类名", true, mmsCtx.getClassLoader());
Object object = clazz.newInstance();
Method[] methods= clazz.getDeclaredMethods();
for(Method meth : methods) {
//Log.i(TAG,"name:" + meth.getName());
if(meth.getName().equals("方法名")) {
meth.setAccessible(true);
meth.invoke(object);
}
}