问题
我想创建一个可以由程序员以某种方式扩展的应用程序。我有一组可以扩展的类,我在 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/