java - 如何在 Android 应用程序中加载外部类?

标签 java android plugins architecture android-intent

问题

我想创建一个可以由程序员以某种方式扩展的应用程序。我有一组可以扩展的类,我在 jar 中提供给程序员(尽管我不太喜欢这个解决方案,因为我以后无法更改 API),然后他们可以扩展该接口(interface)并开发他们的类(class)。问题就从这个阶段开始。我想通过类(class)来扩展它,而不是 Activity

我所知道的

我一直在阅读有关该主题的内容,人们通常建议使用 Intent 和 Intent 过滤器来创建 Android 可插件应用程序。问题是:这种策略需要使用 Activity ,并且启动一组在主应用程序中作为插件工作的 Activity 很有用。我不想那样。我需要在应用程序的启动时加载主项目外部的一组类。我还阅读了有关类加载器的内容,但有些解决方案有点老套,我找不到我想要的解决方案......

问题

那么如何创建可由 Android 中的应用程序加载的类呢?如何将外部开发的这些类加载到我的应用程序中?

最佳答案

您仍然可以在没有 Activity 的情况下使用 Intent 。 Intent 和 Activity 几乎没有关系。唯一的共同点是 Intent 也会启动 Activity 。由于很多原因(主要是安全原因),您应该对在 Android 中使用类加载器感到厌倦。最好的办法是编写一个“驱动程序应用程序”,其他应用程序可以使用某种服务(意向服务或使用 Messenger)与该应用程序进行交互。或者,或者使用 AIDL 接口(interface)(Android RPC)。 AIDL 将是最灵活的(尽管最难实现?),而 Intents 是最简单的。

关于java - 如何在 Android 应用程序中加载外部类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9600538/

相关文章:

java - 在 JFrame 中居中 JPanel

android - 无法将应用程序移动到 SD 卡

plugins - Sublime Text 2慢-是否禁用大文件插件?

plugins - 轻量级JRE

java - 在 render() 中随机更改图像,而不更改所有其他图像

android - 在 ViewPager 中滑动半页(来自兼容包)

android - 使用 Flutter 从方法中获取一些变量值

java - 在maven插件项目外设置一个参数值

java - Apache Nutch将抓取的文档写入Rabbitmq

java - 打印 xtext 解析器错误的行内容