Поставщики контента

Поставщики контента

Концепция поставщиков контента (content provider) используется в Android для абстрагирования данных в службах. Эта идея позволяет рассматривать источники данных как поставщики данных в стиле REST, подобные веб-сайтам. В этом смысле поставщик контента похож на оболочку данных. Примером источника данных, который можно инкапсулировать в поставщике контента, может служить СУБД SQLite на устройстве Android.

На заметку! REST означает REpresentational State Transfer (передача состояния представления). Когда вы вводите URL-адрес в веб-браузере и веб-сервер в ответ присылает HTML-разметку, вы как раз и выполняете “запрос” типа REST к веб-серверу. REST обычно противопоставляется веб-службам SOAP (Simple Object Access Protocol — простой протокол доступа к объектам). Более подробные сведения о REST можно найти по адресу ru.wikipedia.org/ wiki/REST.

Для извлечения данных из поставщика контента или сохранения данных в поставщике контента необходимо использовать набор REST-подобных URI. Например, для извлечения набора книг из поставщика контента, инкапсулирующего базу книжных данных, может понадобиться примерно такой URI:

content://com.android.book.BookProvider/books

А для выборки из базы конкретной книги (с номером 23) необходим следующий URI:

content://com.android.book.BookProvider/books/23

В настоящей главе будет показано, как такие URI преобразуются в механизмы обращения к базе данных. Любое приложение на устройстве может использовать эти URI для доступа к данным и их обработки. В силу этого поставщики контента играют важную роль в обмене данными между приложениями.

Однако, строго говоря, задачи поставщиков контента сводятся больше к инкапсуляции, чем к обращению к данным. А для доступа к лежащим в основе источникам данных необходим реальный механизм доступа к данным — SQLite или сетевой доступ. Так что абстракция поставщика данных нужна только при совместном использовании данных с внутренними или внешними приложениями. Для внутреннего доступа к данным приложение может использовать любой подходящий механизм хранения и обращения к данным, примеры которых перечислены ниже.

• Настройки — набор пар “ключ/значение”, которые позволяют хранить настройки приложения.

• Файлы — файлы, внутренние для приложений, которые можно хранить на сменном носителе данных.

• SQLite — базы данных SQLite, приватные по отношению к пакету, который создает эту базу.

• Сеть — механизм, позволяющий выбирать или сохранять данные за пределами устройства через Интернет с помощью HTTP-служб.

На заметку! Несмотря на наличие в Android ряда механизмов доступа к данным, в этой главе речь пойдет об SQLite и абстракции поставщиков контента, т.к. поставщики контента лежат в основе общего доступа к данным, который гораздо чаще применяется в среде Android, чем в других платформах пользовательского интерфейса. Сетевой подход будет рассмотрен в главе 15, а механизм настроек.

Поделиться в соц. сетях

Опубликовать в Google Buzz
Опубликовать в Google Plus
Опубликовать в LiveJournal
Опубликовать в Мой Мир
Опубликовать в Одноклассники
Опубликовать в Яндекс

Добавить комментарий