Android、插件系统和反射类

Android、插件系统和反射类,android,class,plugins,reflection,Android,Class,Plugins,Reflection,我正在开发一个应用程序,需要有某种插件系统 是否可以在单独的.apk上加载带有反射的类 欢迎提出任何其他想法 编辑:解决了,谢谢大家。最后我想到了这个: public Object loadPlugin(String packageName, String className) { try { return (Object) new PathClassLoader(getPackageManager().getPackageInfo(packageName, 0).app

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

是否可以在单独的.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;
    }
}

你必须对“插件”更具体一些。如果您希望能够添加单独的功能,那么您可能需要一个main.apk和一个较小的.apk来实现插件。取决于你想做什么。

不知道它是如何工作的,甚至不知道它是否可以做类似的事情。听起来不错,它可以工作。它可能是这样的:
DexClassLoader cl=new-DexClassLoader(“/mnt/sdcard/which.apk”,“/path/temp”,null,getClassLoader())但是如果我想让用户只安装apk呢?这就要求apk走上这条道路。我正在开发一个移动应用程序框架。开发人员可以从主应用程序运行某种脚本。我已经在框架中实现了PDF生成和其他功能,但是这些功能使得.apk变得非常庞大。有了反射,我可以构建不同的.apk,一个有PDF生成,一个没有PDF生成,但我不想这样。我想完成的是,如果开发人员想要使用PDF生成,那么他必须安装PDF插件。