【发布时间】:2012-05-01 15:32:27
【问题描述】:
此问题已移至https://softwarerecs.stackexchange.com/questions/27841/plugins-architecture-for-an-android-app
我想为an Open Source app 实现一个插件系统,因为它已经变得非常大,具有许多只有少数用户需要的功能。发布不同的应用程序不是一个好的解决方案,因为用户 A 想要 feature7 和 feature24,而 userB 想要 feature39 和 feature24。
我在哪里可以找到插件架构的好例子?
这是我希望插件能够做到的:
- 重新定义特定屏幕的布局 (load deflated XML?)
- 重新定义一个类的方法(load dex class?,AOP?)
例如,其中一个插件必须在特定屏幕上添加一个按钮,单击此按钮会增加应用程序数据库中的一个值。据我所知,这不适用于 Content Providers 和 Intents。
我想避免让核心应用的代码变得复杂,到处都有大量的钩子。
插件的形式可以是 SD 卡上的文件、应用程序或其他任何东西。
【问题讨论】:
-
应用程序“Doplhin”有很多他们称之为“附加组件”的东西。我没有使用过该应用程序,所以我不知道它们的集成程度如何,但似乎他们找到了一个有效的插件架构。知道他们是怎么做的吗? play.google.com/store/apps/developer?id=Dolphin+Add-ons 我猜他们不需要在每次创建新插件时都用新的钩子更新核心应用程序。
-
我不确定,但这虽然过时可能有用dreamincode.net/forums/topic/…
-
您需要添加挂钩,否则其他应用程序会挂钩什么?您也许可以使用 Services 和 IBinders 来做到这一点
-
也看看这个类似的问题(有答案)stackoverflow.com/questions/5120220/…
-
@Irwin1138:我看过这个页面但决定问,因为这个问题质量非常低,没有任何调查工作。此外,正如他们所说,唯一的答案是“大型项目中的噩梦”,因为它们对标识符进行了硬编码。
标签: android dalvik layout-inflater android-inflate dex