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