Создание JAR, на мой взгляд, очень плохое решение. Android имеет специфические функции только для того, что вы ищете. Если ваш JAR:
- предоставляет некоторый вид (структурированных) данных для использования в других приложениях, используйте
ContentProvider
;
- выполняет некоторую фоновую обработку и делает результаты этой обработки доступными для других приложений, используйте
Service
;
- предоставляет
Activity
, который получает некоторый ввод от пользователя (или показывает некоторую информацию о чем-либо), в конечном итоге обрабатывает его и возвращает его вызывающему Activity
, просто создайте этот Activity
, и любое приложение сможет запустите Activity
, если он установлен на телефоне.
Если вы используете одно из трех описанных выше решений, сторонние приложения смогут определить, установлено ли ваше приложение, и, если нет, предложить пользователю установить его. Только если ваше приложение не попадает в один из трех пунктов, упомянутых выше, вы должны использовать JAR. В противном случае использование ContentProvider
, Service
или Activity
обеспечивает:
- Более стандартизированное взаимодействие между компонентами
- Лучшая ремонтопригодность - если вы обновите свой SDK, вам не придется звонить всем, кто его использует, и сообщать им об обновлении.
- Никакого дублирования - если вы предоставите JAR и несколько приложений, которые его используют, будут установлены на устройстве, на этом устройстве будет присутствовать несколько копий JAR, что потребует больше памяти, чем необходимо. Если вы предоставите один из трех компонентов, упомянутых выше, одна копия удовлетворит все приложения, в которых она требуется.
Опять же, эти компоненты специально разработаны и предоставляются ОС Android для создания таких SDK. Пожалуйста, используйте JAR, только если действительно , действительно . В противном случае укажите стандартизированный ContentProvider
, Service
или Activity
и задокументируйте способ его использования (т. Е. Как его использовать / запросить / интегрировать).