Как добиться модульной структуры подкомпонентов приложения на Android?
-
19-09-2019 - |
Вопрос
Мое основное приложение для Android будет состоять из основной программы с несколькими предустановленными модулями.
Позже я хочу предложить другие модули, лучше всего в виде отдельных файлов.Такие модули, как:место, погода, повестка дня.
Как бы вы это сделали?
Я хочу сохранить в базе данных установленные/присутствующие модули.Поэтому мне приходится иногда помещать модули в базу данных, возможно, проверяя их наличие во время запуска.Основное приложение будет работать на основе этих модулей.
Как я могу собрать эти модули как отдельные файлы?Они не будут точкой входа в моем приложении.Поэтому их не должно быть приложение в меню навигации.
Это возможно?
Как мне создать это с помощью Eclipse?
В каком формате я буду предлагать модули?
Как пользователь будет добавлять/удалять модули?
Решение
Android позволяет свободно связывать приложения вместе с Intents
и ContentProviders
, поэтому должно быть возможно достичь того, что вы ищете.Сложнее всего будет спланировать все заранее, чтобы у вас было логическое разделение функциональности (и чтобы все можно было легко объединить).
Я хочу сохранить в базе данных установленные/присутствующие модули.Поэтому мне приходится иногда помещать модули в базу данных, возможно, проверяя их наличие во время запуска.Основное приложение будет работать на основе этих модулей.
Вы можете зарегистрировать BroadcastReceiver
для ACTION_PACKAGE_ADDED
, который будет срабатывать при установке нового приложения.Ваше основное приложение должно иметь возможность использовать это, чтобы определить, когда установлены дополнительные модули.
В каком формате я буду предлагать модули?
Вероятно, вы захотите упаковать модули в виде APK-файлов, чтобы их можно было загрузить на рынок.Если вы хотите, чтобы они не отображались в панели запуска (панели приложений), вы всегда можете удалить <intent-filter> по умолчанию, и приложение не будет запускаться (но его все равно можно будет удалить).
Как мне создать это с помощью Eclipse?
Ваши модули по-прежнему будут автономными приложениями.
Как пользователь будет добавлять/удалять модули?
Из магазина или напрямую из Интернета (если хотите).