片段,服务和UI:模块化approch

时间:2016-10-20 14:51:23

标签: android android-fragments plugins

目标:创建一个模块化应用程序,插件必须具有UI(这是关键点)。我有关于主应用程序的所有信息("服务器")以及所有插件(所有这些都将由我们制作)。 所以我们想给用户主apk,让他获得" modules"为了增加主要的apk功能。他将安装"模块APK"这将在服务器应用程序中显示。单击该模块,用户将能够使用模块的GUI进行交互。理想的是同时在服务器和模块的屏幕GUI上。

测试1:查看服务。很好,服务器和客户端之间的通信工作正常,但似乎客户端(因此"服务")仅用于计算,处理等,但无法进行表单和显示。所以"服务器"有表格,获取数据,发送到服务发送回服务和服务器显示的服务。无法在"服务"?

中进行活动

测试2:片段。很好,但似乎片段必须与"来电者#34;在同一个包中。

测试3:iFrame。很好,因为我们可以从服务器和客户端同时显示UI,并与两者进行交互。但似乎客户端类必须在同一个APK中。

有什么想法吗? 感谢

2 个答案:

答案 0 :(得分:1)

  

理想的是同时在服务器和模块的屏幕GUI上。

Android没有任何“开箱即用”的功能。最接近的是RemoteViews,但您可以选择有限的窗口小部件,以及更有限的事件处理功能。

  

无法在“服务”中进行活动?

正确。

  

有什么想法吗?

欢迎您创建自己的自定义RemoteViews。最后,RemoteViews是关于如何构建一些UI的Parcelable描述。您的插件会通过任意数量的IPC选项将其传递给主机应用程序,主机应用程序将负责呈现它。

答案 1 :(得分:0)

请参阅有关六边形体系结构的文章:http://alistair.cockburn.us/Hexagonal+architecture。 服务可以从中启动Activity,但您必须在清单中允许它。 不同的.apk文件(不同的程序)在不同的进程中运行,因此您需要使用进程间通信(IPC):https://developer.android.com/guide/components/aidl.html。 我的工作室有一个项目,可以下载不同的应用程序。每个应用程序都是一个单独的apk