可以从apk运行应用程序

时间:2016-11-28 21:52:46

标签: android

你好吗?我希望嗯,我的小问题,或者说是混乱,就像我在问题中已经提到过的,如果可以使用已经提到的某些方法或者你知道的其他方法从你的apk运行应用程序。

为什么我怀疑?我的问题是为什么我在研究参考文献中看到已经提到过的方法以及我在我的实施过的代码但实际上没有实现的代码什么都没有:

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

为什么我想知道?原因是我希望在我的应用程序中实现使用辅助应用程序而无需下载的能力,用户将选择这些应用程序。

如果您对要点或要讨论的内容有所了解,请发表评论。

1 个答案:

答案 0 :(得分:0)

你可以在github上研究这些开源项目。它们是运行时动态加载apk的不同实现。

1。AndroidDynamicLoader

2。dynamic-load-apk

3。DroidPlugin

4。DynamicAPK