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

时间:2012-03-07 11:23:53

标签: java android plugins architecture android-intent

问题

我想创建一个可以由程序员以某种方式扩展的应用程序。我有一组可以扩展的类,我在jar中为程序员提供(虽然我不喜欢这个解决方案,因为我以后不能更改API),然后他们可以扩展该接口并开发他们的课程。问题始于此阶段。我想通过课程来扩展它,不是活动

我所知道的

我一直在阅读有关该主题的内容,人们通常会建议使用意图和意图过滤器来做一个Android可插件应用程序。问题是:这种策略需要使用活动,并且启动一组在主应用程序中作为插件工作的活动很有用。我不希望这样。我需要在应用程序的开头加载一组在主项目外部的类。另外我读到了关于ClassLoaders但有些解决方案有点hacky,我找不到我想要的问题......

问题

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

1 个答案:

答案 0 :(得分:0)

您仍然可以在没有活动的情况下使用意图。意图和活动彼此之间没什么关系。唯一的共同点是意图也开始活动。您应该非常厌倦在Android中使用类加载器,原因很多(主要是安全性)。最好的办法是编写一个“驱动程序应用程序”,其他应用程序可以使用某种服务进行交互:使用意向服务或使用Messenger。要么是这样,要么使用AIDL接口(Android RPC)。 AIDL将是最灵活的(虽然最难实现?),Intent是最简单的。