Я хочу разработать приложение, которое поддерживает плагины и предоставляет данные для этих плагинов.Мне кажется, что правильный способ реализовать эту плагин-архитектуру на Android был бы один apk для основного приложения и один apk на плагин.
Но так как основное приложение и каждый плагин находятся в разных apks, я могунелегко передать (данные) объекты из одного в другой, приложения работают в разных процессах, и даже если они выполняются в одном процессе (что может быть достигнуто), у них разные загрузчики классов, и это не работает.В настоящее время я вижу два многообещающих подхода для получения данных из моего основного приложения в мои плагины:
- Объявление основного приложения как
ContentProvider
.Мне кажется, что это намеченный подход, потому что он делает именно то, чего я хочу достичь: предоставление контента / данных другому процессу. - Создание моих объектов данных
Parcelable
и перемещение их с помощью AIDL
или -если мне не нужна многопоточность - с Messenger
-подходом.На мой взгляд, такой подход кажется более простым, потому что я могу использовать ORM-библиотеку, которая заботится о базе данных в фоновом режиме.Я никогда раньше не использовал ContentProviders, но при первом взгляде на него я подумал, что использование ContentProvider немного похоже на создание SQL-запросов вручную (скажите, пожалуйста, если я ошибаюсь), и я хотел бы избежать этой работы!
Теперь я хотел бы знать, пропустил ли я плюсы или минусы и есть ли заметные различия в производительности между этими двумя подходами.И какое решение вы бы предпочли и зачем вам это делать?
Заранее спасибо!Любые ответы приветствуются!