Android:获取具有相同用户id的不同应用程序的活动/片段/类

Android:获取具有相同用户id的不同应用程序的活动/片段/类,android,android-fragments,plugins,fragment,Android,Android Fragments,Plugins,Fragment,第一次在这里询问stackoverflow 好的,这里是上下文。我正在做一个android应用程序,我正在尝试实现一个插件框架之类的东西。 我的主要应用程序的主要活动的目的是管理和启动/显示片段。 我的每个插件将至少包含一个片段及其布局。 因此,我们的想法是提取片段并将其放入我的主应用程序的MainActivity中 因此,我决定将我的片段/插件放入不同的应用程序中,并为我的所有插件和主应用程序提供相同的用户id。这样,所有插件和主应用程序都处于相同的过程中,即使它们出现在手机的应用程序管理器中

第一次在这里询问stackoverflow

好的,这里是上下文。我正在做一个android应用程序,我正在尝试实现一个插件框架之类的东西。 我的主要应用程序的主要活动的目的是管理和启动/显示片段。 我的每个插件将至少包含一个片段及其布局。 因此,我们的想法是提取片段并将其放入我的主应用程序的MainActivity中

因此,我决定将我的片段/插件放入不同的应用程序中,并为我的所有插件和主应用程序提供相同的用户id。这样,所有插件和主应用程序都处于相同的过程中,即使它们出现在手机的应用程序管理器中,也只有主应用程序可以启动并在应用程序浏览器中可见,这非常好

但这是我的问题。。。如何访问插件片段

我想我可以通过PackageManager获取一些类,并使用relfexion来使用我的片段,但显然你不能,或者我没有找到方法

我考虑将每个终端应用程序插件上的服务绑定在一起,但我不能保证这些服务会绑定在一起。特别是因为每个应用程序都有相同的服务副本,也就是不同的服务

也许通过使用一个common.jar来确保服务是相同的,从而将my Fragment的一个实例传递给主应用程序是的,一个实例就足够了

或者制作一个CustomClassLoader,但是我可能需要关于如何从我的其他应用程序加载类的建议,因为我不知道如何这样做

我一直在脑子里和网上兜圈子,想找到一个解决办法

要说清楚:


如何通过绑定、共享引用或在文件中编写实例来获取classe CustomClassLoader或实例,并在main中读取它?对于另一个应用程序,考虑到它们共享相同的用户id,因此处于相同的进程中?

仅仅因为应用程序共享相同的用户id,这并不意味着它们在相同的进程中运行。它们可能也很可能是由相同的过程启动的。在进程之间共享资源通常称为IPC。 android接口定义语言AIDL是实现IPC的一种方式。尽管如此,这仍然不允许您直接从不同的应用程序检索对象,但允许您调用远程对象上的方法。 但在我看来,您的问题描述更像是在应用程序的运行时访问jar的对象。这可以通过类加载来完成。
因此,你的应用程序可以从服务器上检索一个jar并从中加载你的片段。如果完全通过代码定义片段,那么片段的定义将是可在运行时更新的。

谢谢您的回答。是的,我想访问对象多于访问方法。你看,我创建了一个抽象类,它实现了我所有的插件片段,考虑到你有一个活动要添加片段,它们可以自己运行。所以基本上我必须下载jar,用一个定制的类加载器加载它。但是如果他们在手机上设置根目录,那么任何人都可以获取我的jar文件,而且每次应用启动时我都需要加载jar,不是吗?