Content providers允许应用程序与平台和其他应用程序进行数据交互。与其他的组件不同,content providers不依赖于intent。content providerss使用一个content URIs形式的标准接口,访问与关系数据库中表类似的数据表。这些表的结构通过Contract类与外部应用程序通信。Contract类不是content provider 结构的一部分。开发者应该定义Contract类,并使它能够被外部应用程序使用。
当一个应用程序发出一个content provider查询时,安卓检查注册信息来匹配给定的URI。安卓系统框架检查应用程序,确定应用程序有必须的权限,并把请求发送给相应的content provider。相关的响应给游标的形式返回到请求的应用程序。然后应用程序通过游标提供的接口接收并操作数据。