0

是否可以从外部 dex 文件加载活动?我正在考虑一些插件式架构,可以通过下载包含额外功能的活动和类的 dex 文件来扩展应用程序。

我已经设法使用 DexClassLoader 和反射从下载的 dex 文件中加载和调用类上的方法。但是我可以以某种方式使用这种技术来下载和呈现活动吗?是否可以以编程方式注册这个新活动,以便我可以使用 Intent 调用它?

我知道可以(并且推荐的方法是)通过正常过程使用 APK 安装其他 Activity,然后使用 Intents 从我的主要 Activity 加载它或简单地更新已安装的应用程序,但我想扩展我已经安装的通过下载一些额外的类并在同一个虚拟机、同一个沙箱中执行所有内容来应用程序。

嗯,如果你不明白我的意思,请告诉我,因为这有点混乱.. :)

4

1 回答 1

1

您好,是否可以从外部 dex 文件加载活动?

不完全是。活动必须在应用程序的清单中预先定义。

您可以尝试使用 JRuby 和 Ruboto 使用的方法,其中清单中有一个活动可以通过不同的实现重新调整用途。我还没有完全剖析他们的方法,但我的印象是他们的活动将事件转发到 JRuby 脚本。在您的情况下,活动会将事件转发到从 DEX 文件加载的其他一些类。

于 2011-02-08T14:30:16.567 回答