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

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

И основные требования к плагину:

  • он содержит код, реализующий некоторый общий интерфейс
  • он содержит ресурсы (например, чертежи)

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

Как мне это сделать? Любые указатели на условия поиска Google и подсказки приветствуются, спасибо :)

1
dimsuz 12 Апр 2011 в 20:54
Попробуйте прочитать о PathClassLoader, DexClassLoader и подобных. Я не уверен, сможете ли вы их использовать, но эти маленькие классы помогли мне с легкостью написать средство сопоставления объектов. Вероятно, вам также придется использовать аннотацию (@MyClassOrWhatever), чтобы пометить классы как плагины.
 – 
Audrius
12 Апр 2011 в 21:05

1 ответ

Я не думаю, что вы можете сделать это на Android из-за ограничений безопасности. Весьма вероятно, что ваш единственный вариант - распространять плагины как отдельное приложение в Маркете (как это делает браузер Doplhin).

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

Я нашел для вас этот пост: http://mylifewithandroid.blogspot.com/2010/06/ plugins.html

0
skrat 12 Апр 2011 в 21:03
О, было бы неплохо иметь отдельное приложение для плагинов. Спасибо за ссылку! В нем говорится о предоставлении плагинов в качестве Сервисов. Интересно, было бы нормально, если бы мои плагины содержали код для рисования. т.е. можно ли загрузить класс плагина из службы, а затем использовать этот класс для рисования контента, например. Вид поверхности...
 – 
dimsuz
12 Апр 2011 в 21:10