我正在为Android做键盘。 我愿意有一个插件结构,允许用户改进预测引擎。
预测引擎是使用Android NDK完成的,它是用C编码的。我有一个调用C代码的包装类。此包装类的一个实例是InputMethodService中的一个字段。 通过发送完整的句子来更新预测引擎。类似的东西:
public void updateEngine(String sentence);
插件应该调用该方法。 插件的示例可以是.txt解析器。您选择一个txt文件,插件将开始向主应用程序发送所有句子。 我希望插件可以自定义,例如:他们可能有一个屏幕,您可以选择最大句子发送,在后台运行等。 用户界面(不知道它应该在主应用程序或插件上,请查看下面的问题)应该可以向插件询问它可以发送多少句子(进行进度条)。
我的问题是:
我认为我应该使用Intents,因为我只使用原始类型。
我愿意从原子操作开始,但我担心性能。
它们应该是活动,如有必要(“后台处理”)启动服务。或者它们可能只是服务而主应用程序负责UI。
e.g。最后一次使用该插件是什么时候。
答案 0 :(得分:1)
我应该使用Intents还是IPC?
要么有效。意图可能更简单。
我的操作应该是原子的还是发送的 一系列句子?
如果可能的话,我会将它们捆绑到一个操作中。正如我所理解的那样,许多小的跨过程旅行比一个大的旅行更昂贵。
插件必须是活动或 服务?
你似乎想要插件调用引擎,这很好,但......什么时候?插件在安装时无法自动控制。插件调用引擎的触发机制的选择将决定插件是否需要活动。
谁应该保存有关的信息 最后一次执行插件还是mainApp?
鉴于你所拥有的其他内容,这对我来说没有多大意义,所以我无法发表评论。这可能会回到我上面提到的缺乏触发的问题。例如,在什么情况下,插件永远不会被使用?