Обновление информации о приложении с использованием других приложений (плагинов) - PullRequest
1 голос
/ 20 февраля 2010

Я делаю клавиатуру для Android. Я хочу иметь структуру плагинов, которая позволит пользователям улучшать механизм прогнозирования.

Механизм прогнозирования сделан с помощью Android NDK и был закодирован на C. У меня есть класс-обертка, который вызывает код C. Экземпляр этого класса-оболочки представляет собой поле в InputMethodService. Механизм прогнозирования обновляется путем отправки полных предложений. Что-то вроде:

public void updateEngine(String sentence);

Плагины должны вызывать этот метод. Примером плагина может быть анализатор .txt. Вы выбираете текстовый файл, и плагин начнет отправлять в основное приложение все предложения. Я хотел бы, чтобы плагины были настраиваемыми, например: они могли бы иметь экран, на котором вы можете выбрать максимальное предложение для отправки, для запуска в фоновом режиме и т. Д. Пользовательский интерфейс (не знаю, должен ли он быть в основном приложении или плагине, проверьте мои вопросы ниже) должен иметь возможность спросить плагин, сколько предложений он может отправить (для выполнения индикатора выполнения).

Мои вопросы:

  • Должен ли я использовать Intents или IPC?

Я думаю, что я должен использовать Intents, поскольку я просто использую примитивные типы.

  • Должны ли мои операции быть атомарными или отправлять массив предложений?

Я готов начать с атомарных операций, но я беспокоюсь о производительности.

  • Плагины должны быть активны или Сервисы?

Это должны быть действия и при необходимости («процесс в фоновом режиме») запуск службы. Или, может быть, они просто сервисы, а основное приложение заботится об интерфейсе пользователя.

  • Кто должен сохранять информацию о последнем исполнении. Плагин или главное приложение?

например. Когда в последний раз плагин использовался.

1 Ответ

1 голос
/ 20 февраля 2010

Должен ли я использовать Intents или IPC?

Либо работает. Намерения могут быть проще.

Должны ли мои операции быть атомарными или отправлять массив предложений?

Я бы связал их в одну операцию, если это возможно. Насколько я понимаю, множество небольших кросс-процессов обходится дороже, чем одно большое.

Плагины должны быть активны или Услуги?

Вы, похоже, хотите, чтобы плагин вызывал двигатель, что нормально, но ... когда? Плагины не получат контроль автоматически во время установки. Выбор триггерного механизма для вызова подключаемого модуля в движке будет определять, требуется ли подключаемому действие или нет.

Кто должен сохранять информацию о последнее исполнение Плагин или главное приложение?

Это не имеет большого смысла для меня, учитывая остальное, что у вас здесь, поэтому я не могу комментировать. Это может откатиться к проблеме отсутствия триггера, о которой я упоминал выше. Например, при каких обстоятельствах плагин когда-либо будет использоваться более одного раза?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...