gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:04:35 25 4
gpt4 key购买 nike

对于一个长期的学生项目,我正在尝试开发一个带有插件的模块化应用程序。具体来说,我们会:

  • 一个主应用程序,我们可以在其中搜索、更新、删除和运行插件。这个主应用程序还会存储一些来自插件的数据。

  • 从带有代码和 GUI 组件的 HTTP 服务器下载的几个插件。

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

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

DexClassLoader cl = new DexClassLoader(...);
Class<?> libClass = cl.loadClass("plugin_classname");
Intent intent = new Intent(this.getApplicationContext(), libClass);
startActivity(intent);

这不起作用,因为 Intent 未在主应用程序的 AndroidManifest.xml 中声明。其他线程中也对此进行了描述:Android- Using DexClassLoader to load apk file

这是否意味着绝对没有办法构建这样一个“动态”的用户界面?更笼统地说,这种插件系统可以在Android上做吗?我应该尝试其他方法吗?

最佳答案

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

博客:动态添加未在 AndroidManifest.xml 中声明的 Activity(不可能)
http://darutk-oboegaki.blogspot.jp/2011/01/androidmanifestxml-activity.html

关于android - 带有 DexClassLoader() 和用户界面的插件系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13613605/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com