In this example reading contact emails from phone. showing visual reprsentation of contact data to how data stored and how we can fetch data by contant provider.
ContentProvider used to get data from central repository. Android application contains content provider to provide data to other applications. you can also create your custom content provider to get data from database / sdcard / media etc.
Content providers create an abstraction layer between its repository of data and external application that are using data.
External Application can call Content Provider methods with the use of ContentResolver. ContentResolver work as ContentProvider client object, with the use of Content Resolver object we can get data from Content Provider. ContentProvider and ContentResolver (provider clients) used together to create a interface for data to handles inter-process communication and access data in secure way.