study gomi

Content Provider 본문

App/Android

Content Provider

공부하곰 2024. 11. 28. 14:31
728x90
반응형

Content Provider란?

  • Android에서 Content Provider는 앱 간 데이터 공유를 관리하는 구성요소이다.
  • 앱이 데이터(파일, db, 네트워크 등)에 접근하거나 다른 앱과 데이터를 공유할 때 사용됨.
  • contentProvider를 구현하면 데이터를 CRUD(생성, 읽기, 수정, 삭제) 작업을 통해 제공할 수 있다.

주요 역할

  • 데이터 공유: 여러 앱이 데이터를 효율적으로 공유하도록 중앙 집중식 접근을 제공
  • 보안 제공: 앱 간 데이터 접근 권한을 제어할 수 있는 권한 관리 기능을 제공
  • URI를 통한 데이터 접근: content://로 시작하는 URI를 사용해 특정 데이터에 접근하도록 함.
  • 데이터의 캡슐화: 데이터베이스, 파일, 설정 등 다양한 데이터 소스를 일관된 방식으로 캡슐화하여 제공

주요 메서드

(ContentProvider를 상속받아 구현할 때 기본적으로 오버라이드 해야 하는 메소드들)

  • onCreate(): Content Provider가 초기화될 때 호출됨. 데이터 소스를 설정하거나 초기화.
  • query(): 데이터를 검색하고 반환한다 (예_content://com.example.provider/items의 데이터를 가져올 때 사용)
  • insert(): 새로운 데이터를 추가
  • update(): 기존 데이터를 수정
  • delete(): 데이터를 삭제
  • getType(): 특정 URI가 반환할 MIME 타입을 정의

사용 예시

1. 다른 앱에서 접근: 예를 들어 A앱이 B앱의 db를 읽고 싶다면 B앱은 Content Provider를 구현해야 함.

2. 기본 제공 Content Provider

    - ContactsProvider: 연락처 데이터 제공

    - MediaStore: 기기의 이미지, 오디오, 비디오 데이터 제공

3. 사용 흐름

    - 데이터 제공자 앱은 ContentProvider를 구현하여 데이터를 공유

    - 데이터 소비자 앱은 ContentResolver를 통해 query, insert 등의 작업 수행

 

Provider의 확장

  • content Provider의 개념은 데이터 공유뿐 아니라 다양한 의도(Intent)를 처리하거나 특정 비즈니스 로직을 캡슐화하는 데에도 활용됨.
  • 특정 스토리지 작업을 관리하거나 Intent 처리 과정을 단순화하는 용도로 사용할 수 있다.
728x90
반응형