Можем ли мы разделить функциональность приложения для Android на модули?
Я пытаюсь разработать приложение, которое имеет одно основное приложение, и к нему можно добавить новые возможности, установив некоторые детские приложения. Это как модульное приложение, где один родительский модуль может работать как автономное приложение, а дочерние модули - нет. Но если дочерние модули установлены с родительским модулем, они расширяют его возможности.
Я знаю, что это возможно в настольных приложениях. У меня есть хороший опыт в этом. Но я новичок в Android. Это может быть достигнуто в приложениях для Android?
1 ответ
Да, в ограниченной степени. Другое приложение должно работать вне процесса, и вы не можете встроить пользовательский интерфейс Android другого приложения непосредственно в свою собственную активность. (Думаю, вы могли бы передавать пользовательский интерфейс HTML из другого приложения с помощью провайдеров данных). Вы можете отобразить активность другого приложения в своем собственном стеке действий (используя Intents). Нет способа запустить код другого приложения в процессе.
Существует множество различных методов взаимодействия между процессами.
Инфраструктура Intent предоставляет довольно широкий механизм взаимодействия между приложениями, который, как мне всегда кажется, недостаточно используется и недооценивается разработчиками Android. Intents обеспечивают: основанные на задачах операции, такие как Select, Display, элемент, редактирование элемента (и многое другое); механизмы определения местоположения и связи со службами; и широковещательные уведомления.
Службы позволяют осуществлять потоковую передачу между приложениями, а также вызовы API между приложениями с использованием языка определения интерфейса AIDL.
Инфраструктура Data Provider позволяет выполнять операции с базами данных между приложениями.
Пример приложения на Play market, которое предоставляет плагины, которые можно установить с Play market: Automate, от LLamaLabs. (Никаких отношений с этой компанией, я использую их приложение, хотя).