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 に答える