为什么我怀疑?我的问题是为什么我在研究参考文献中看到已经提到过的方法以及我在我的实施过的代码但实际上没有实现的代码什么都没有:
final String apkFile ="storage/sdcard0/Mostrador_1.0.apk"; String className = "com.example.mostrador"; String methodToInvoke = "add";
final File optimizedDexOutputPath = getDir("outdex", 0);
DexClassLoader dLoader = new DexClassLoader(apkFile,optimizedDexOutputPath.getAbsolutePath(),
null,ClassLoader.getSystemClassLoader().getParent());
try {
Class<?> loadedClass = dLoader.loadClass(className);
Object obj = (Object)loadedClass.newInstance();
int x =5;
int y=6;
Method m = loadedClass.getMethod(methodToInvoke, int.class, int.class);
int z = (Integer) m.invoke(obj, y, x);
System.out.println("The sum of "+x+" and "+"y="+z);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchMethodException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
问题:Android- Using DexClassLoader to load apk file
为什么我想知道?原因是我希望在我的应用程序中实现使用辅助应用程序而无需下载的能力,用户将选择这些应用程序。
如果您对要点或要讨论的内容有所了解,请发表评论。
答案 0 :(得分:0)
你可以在github上研究这些开源项目。它们是运行时动态加载apk的不同实现。