首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有DexClassLoader()和用户界面的插件系统

带有DexClassLoader()和用户界面的插件系统
EN

Stack Overflow用户
提问于 2012-11-28 20:13:42
回答 2查看 1.5K关注 0票数 8

对于一个长期的学生项目,我试图开发一个模块化的应用程序插件。具体而言,我们将:

  • 一个主应用程序,我们可以搜索,更新,删除和运行插件。这个主应用程序还会存储来自插件的一些数据。
  • 从带有代码和GUI组件的HTTP服务器下载的几个插件。

现在,我有一个主应用程序,它可以从HTTP下载一个.apk文件,并可以从这个.apk文件中定义的类中创建一个新实例。我使用这里描述的方式:http://android-developers.blogspot.fr/2011/07/custom-class-loading-in-dalvik.html和DexClassLoader()方法。

但我无法看到如何在插件.apk文件中显示作为资源存储的布局(或任何其他GUI组件)。例如,我试图通过使用插件类名从主应用程序创建一个意图,但没有成功:

代码语言:javascript
复制
DexClassLoader cl = new DexClassLoader(...);
Class<?> libClass = cl.loadClass("plugin_classname");
Intent intent = new Intent(this.getApplicationContext(), libClass);
startActivity(intent);

这不起作用,因为在主应用程序的AndroidManifest.xml中没有声明意图。这在另一个线程:Android- Using DexClassLoader to load apk file中也有描述。

这是否意味着绝对没有办法构建这样的“动态”用户界面?更普遍的情况是,这种插件系统能在Android上实现吗?我该试试别的方法吗?

EN

回答 2

Stack Overflow用户

发布于 2013-11-08 10:25:08

我曾经尝试过同样的事情,发现这是不可能的。,如果从那以后基本机制没有改变(2011年1月),它仍然是不可能的。技术细节在我的博客中用日语和英语描述。

博客:动态添加未在AndroidManifest.xml (不可能)中声明的活动

http://darutk-oboegaki.blogspot.jp/2011/01/androidmanifestxml-activity.html

票数 0
EN

Stack Overflow用户

发布于 2017-11-07 14:56:11

看看这个答案。它是关于如何在运行时动态地运行Android的'Activity','Service',它没有在AndroidManifest.xml中声明:https://stackoverflow.com/a/41112682/2801776

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13613605

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档