2

我正在开发一个需要某种插件系统的应用程序。

是否可以在单独的.apk 上加载带有反射的类?

欢迎任何其他想法。

编辑:解决了,谢谢大家。最后我想出了这个:

public Object loadPlugin(String packageName, String className) {
    try {
        return (Object) new PathClassLoader(getPackageManager().getPackageInfo(packageName, 0).applicationInfo.sourceDir, null, getClassLoader()).loadClass(className).getConstructor(new Class[]{ Context.class, IXoneApp.class }).newInstance(new Object[] {this, this.appData()});
    } catch (NameNotFoundException ex) {
        Utils.DebugLog(Utils.TAG_FRAMEWORK, "El módulo " + packageName + " no está instalado");
        return null;
    } catch (Exception ex) {
        Utils.DebugLog(Utils.TAG_FRAMEWORK, "Fallo al invocar el módulo " + packageName + "\n" + ex.getMessage());
        return null;
    }
}
4

1 回答 1

0

您必须更具体地了解“插件”。如果您希望能够添加单独的功能,您可能需要一个主要的 .apk,然后是较小的 .apk 来实现插件。取决于你想要做什么。

于 2012-11-17T04:12:32.717 回答