Android动态加载模块

boe*_*f91 8 android module aar

我想写一个可以用模块扩展的android应用程序(android库).模块应在运行时加载.因此,它们将从URL下载并存储在目录中.这些模块是aar文件.

有没有办法在运行时动态加载aar文件?

我知道可以使用URLClassLoader加载包含的classes.jar.但比我无法加载布局,字符串,...资源.HM

有谁知道如何解决这个问题?

编辑:

我找到了一些相关的主题:

由于第一个链接的答案,它似乎不起作用.我希望我的想法是错的.

Ada*_*dam 1

我遇到了类似的问题。\ni 希望在运行时添加插件而不强制用户重新安装应用程序。

\n\n

我在《 The Busy Coder's Guide to Android Development》中发现了一个非常好的章节,名为“插件模式”。我仍在阅读它,所以不能真正说它是否完全满足您的需求,但它包含大量可能对您的案例有用的信息。

\n\n

这是一个示例在书籍网页上找到的本章

\n\n
\n

就本章而言, \xe2\x80\x9c 插件模型\xe2\x80\x9d 指的是由其他应用程序(插件 \xe2\x80\x9chost\xe2\x80\x9d)扩展的应用程序(插件\n \xe2\x80\x9cplugins\xe2\x80\x9d)主要致力于该工作。

\n\n

当然,应用程序可以通过多种方式协同工作\n,而无需将其中一个应用程序作为另一个应用程序的插件。例如,当您调用 startActivity() 来查看网页时,\n 用户\xe2\x80\x99s Web 浏览器不是应用程序的插件。

\n\n

相比之下,Locale 应用程序可以通过插件进行扩展,插件可以由凌晨 2 点 44 分(Locale 的作者)或第三方编写。这些插件除了改善 Locale 本身的功能之外,对用户没有任何实际价值。因此,这种结构符合插件模型的资格。

\n\n

特别是,本章将重点关注需要插件模型的两种一般场景,尽管其他场景确实存在:

\n\n

您希望允许第三方扩展您的应用程序的功能,\n 就像 Locale 需要的\n 二四十四,或者您希望通过将一些\n 权限委托给插件来减少\n 核心应用程序中的权限数量,所以用户可以 \xe2\x80\x9copt 到 \xe2\x80\x9d 这些权限

\n
\n\n

我希望这能有所帮助。

\n