Android:从外部dex加载活动

时间:2011-02-08 13:52:16

标签: android reflection android-activity sandbox dex

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

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

我知道(通过推荐的方式)可以通过常规程序使用APK安装其他Activity,然后使用Intents从我的主要活动加载它,或者只是更新已安装的应用程序,但我想扩展我已安装的应用程序通过下载一些额外的类并在同一个VM,同一个沙箱中执行所有操作。

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

1 个答案:

答案 0 :(得分:1)

  

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

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

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