Заголовок подводит итог моего вопроса, но, в основном, я хочу понять, почему разработчики Android хотят, чтобы приложения, которые должны работать с общими данными, использовали поставщика контента, а не просто обращались к базе данных SQLite напрямую?
Единственная причина, о которой я могу думать, - это безопасность, потому что доступ к определенным файлам может быть только определенным процессом, и в этом случае провайдер контента является привратником, который гарантирует, что у каждого приложения есть надлежащие привилегии, прежде чем разрешить чтение и / или запись в файл базы данных. Это основная причина, почему был создан ContentProvider?
ContentProvider
Также абстрагирует из всех связей между процессами , которые необходимы для того , чтобы общаться с другими приложениями сторонних разработчиков . Необходимость написания этого кода была бы огромной болью.источник
ContentProvider также является абстракцией, которая скрывает детали того, как данные хранятся / генерируются. Например, в одном из моих приложений у меня есть поставщик контента, который возвращает изображения в формате PNG. Эти изображения нигде не хранятся, они создаются по запросу.
источник