[Android] manifest 파일의 4대 구성요소와 Intent filter

희희·2021년 10월 3일
0

Android

목록 보기
1/2

manifest file

manifest 파일은 앱에 대한 기본적인 정보를 담고 있으며, 안드로이드 프로젝트에 필수적으로 포함되어야 한다. 기본적인 정보라 함은 앱의 application ID, 패키지 이름, Activity 등의 Component(구성요소)들, 필요한 권한, 사용할 라이브러리 등이 있다.

manifest 파일의 4대 구성요소 (4 component)

  1. Activity : 액티비티를 정의하며, 사용자에게 보여주는 UI 화면이 된다. manifest 파일에 activity를 선언해야 액티비티를 실행시킬 수 있다. 다른 컴포넌트는 필요가 없다면 사용하지 않아도 되지만, Activity는 꼭 하나 이상 사용하여야 한다.

  2. Service : UI없이 background 작업을 수행하는 구성 요소이다. Activity는 사용자가 직접 볼 수 있는 화면인 반면에 Service는 Activity가 실행되지 않고 있어도 background에서 동작하고 있다.
    (ex. 핸드폰이 꺼있든, 인터넷 서핑을 하고 있든 사용자가 화면에서 멜론을 실행하고 있지 않아도 음악을 계속 들을 수 있는 것)

  3. Broadcast Receiver : 어떤 이벤트, 정보가 오면 이를 확인하는 구성요소이다. (ex. 스크린 캡쳐 시, 배터리 부족 시) 단, 사용자에게 이를 알리기까지는 하지 않는다. 사용자에게 알리기 위해서는 개발자가 toast메세지, 상태 표시줄 알림 등을 이용하여 알릴 수 있다.

  4. Content Provider : 데이터를 공유하기 위한 구성요소이다. 외부 어플리케이션이 앱 내 데이터를 공유받을 수 있도록 할 수 있다. 대신 내가 허용한 데이터만 공유할 수 있도록 한다.
    (ex. 카카오톡에서 연락처 앱에 저장되어있는 데이터를 가져와 자동으로 친구추가되도록 하는 기능이 있는데, 연락처 앱의 content provider가 자신의 전화번호 데이터를 타 어플에 공유하도록 했기 때문에 가능한 일이다.)

자세한 사항은 안드로이드 개발자 공식 문서 - 앱 매니페스트를 참고하면 좋을 것이다!

Intent와 Intent filter

Activity, Service, Broadcast Receiver, Content Provider는 Intent라는 전달자를 통해 상호 통신을 한다.

인텐트
인텐트란 실행할 작업을 설명하는 메세지이며, 작업할 데이터, 작업을 수행해야 하는 구성 요소의 카테고리 등이 포함된다. 명시적 인텐트와 암시적 인텐트로 나눌 수 있다.

명시적 인텐트와 암시적 인텐트의 비교

  • 명시적 인텐트: 호출할 컴포넌트를 정확하게 특정하는 것.
  • 암시적 인텐트: 호출할 컴포넌트를 정확하게 하나로 특정할 수 없을 때 사용한다. 이 때 인텐트 필터를 이용해서 어느 컴포넌트를 사용할지 사용자가 선택하도록 할 수 있다. 따라서 명시적 인텐트에서는 인텐트 필터가 없어도 된다.

    이처럼 공유 속성에 맞는 여러 컴포넌트가 있을 때 사용자가 선택할 수 있도록 해줄 때 인텐트 필터를 이용해서 암시적 인텐트를 준다는 것!

0개의 댓글