这个问题已经转移到https://softwarerecs.stackexchange.com/questions/27841/plugins-architecture-for-an-android-app
我想为开源应用程序实现一个插件系统,因为它已经变得非常大,具有许多只有少数用户需要的功能。发布不同的应用程序不是一个好的解决方案,因为用户 A 想要 feature7 和 feature24,而 userB 想要 feature39 和 feature24。
我在哪里可以找到一个插件架构的好例子?
这是我希望插件能够执行的操作:
- 重新定义特定屏幕的布局(加载压缩的 XML?)
- 重新定义一个类的方法(load dex class ?, AOP ?)
例如,其中一个插件必须在特定屏幕上添加一个按钮,单击此按钮会增加应用程序数据库中的一个值。据我所知,这对于内容提供者和意图是不可行的。
我想避免使核心应用程序的代码变得复杂,到处都有大量的钩子。
插件的形式可以是 SD 卡上的文件、应用程序或其他任何东西。