Manifest의 주요 속성 10가지

yugyeongKim·2022년 9월 28일
0

안드로이드

목록 보기
1/13
post-thumbnail

Manifest란?

모든 앱 프로젝트는 프로젝트 소스 세트의 루트에 AndroidManifest.xml 파일(정확히 이 이름)이 있어야 한다. 이 파일은 Android 빌드 도구, Android 운영체제 및 Google Play에 앱에 관한 필수 정보를 설명한다.

Manifest의 주요 속성 10가지

1. <Manifest>

설명

  • AndroidManifest.xml 파일의 루트 요소
  • <application> 요소를 포함해야 하며 xmlns:android 및 package 속성을 지정.

2. <application>

설명

  • 애플리케이션의 선언
  • 애플리케이션의 각 구성요소를 선언하는 하위 요소를 포함
  • 모든 구성요소에 영향을 줄 수 있는 속성을 가짐
  • 이러한 속성 중 다수(예: icon, label, permission, process, taskAffinity, allowTaskReparenting)는 구성요소의 상응하는 속성에 기본값을 설정
  • 그 외 속성(예: debuggable, enabled, description, allowClearUserData)은 애플리케이션의 값을 전체적으로 설정하며 구성요소별로 재정의할 수 없음

3. <activity>

설명

  • 애플리케이션의 시각적 사용자 인터페이스 요소를 구현하는 활동(Activity 서브클래스)을 선언
  • 모든 활동은 매니페스트 파일의 <activity> 요소로 나타내야 함
  • 여기에 선언되지 않은 활동은 시스템에 표시되지 않으며 실행되지 않음

4. <intent-filter>

설명:

  • 활동, 서비스, broadcast receiver가 응답할 수 있는 인텐트의 유형을 지정
  • 상위 구성요소의 기능, 즉 활동이나 서비스가 할 수 있는 작업과 수신기가 처리할 수 있는 브로드캐스트의 유형을 선언
  • 전달된 유형의 수신 인텐트로 구성요소를 열고 이 구성요소에 의미가 없는 인텐트를 필터링
  • 필터 내용의 대부분은 <action>, <category>, <data> 하위 요소에서 설명

5. <action>

설명

  • 인텐트 필터에 작업을 추가
  • <intent-filter> 요소에 <action> 요소가 하나 이상 포함되어야 함
  • 인텐트 필터에 <action> 요소가 없으면 필터가 Intent 객체를 허용하지 않음

6. <permission>

설명

  • 이 애플리케이션이나 다른 애플리케이션의 특정 구성요소 또는 기능에 대한 액세스를 제한하는 데 사용될 수 있는 보안 권한을 선언

7. <uses-permission>

설명

  • 앱이 올바르게 작동하기 위해 사용자가 반드시 부여해야 하는 시스템 권한
  • 애플리케이션이 설치될 때(Android 5.1 이하 버전을 실행하는 기기) 또는 앱이 실행 중일 때(Android 6.0 이상 버전을 실행하는 기기) 사용자에게 권한이 부여

8. <provider>

설명:

  • 콘텐츠 제공자 구성요소를 선언
  • 콘텐츠 제공자는 애플리케이션에서 관리되는 데이터에 관해 구조화된 액세스를 제공하는 ContentProvider 서브클래스입니다.
  • 애플리케이션의 모든 콘텐츠 제공자는 매니페스트 파일의 <provider> 요소에서 정의해야 함(그러지 않으면 시스템에서 인식하지 못해 이 구성요소를 실행하지 않음)
  • 애플리케이션에서 사용하는 다른 애플리케이션의 콘텐츠 제공자를 선언하면 안됨
  • Android 시스템은 제공자의 콘텐츠 URI의 일부인 권한 문자열에 따라 콘텐츠 제공자 참조를 저장합니다. 예를 들어 의료 전문가에 관한 정보를 저장하는 콘텐츠 제공자에 액세스하려는 경우 제공자를 식별하는 URI를 다른 인수에서 가져오는 ContentResolver.query() 메서드를 호출합니다.

9. <receiver>

설명

  • broadcast receiver(BroadcastReceiver 서브클래스)를 애플리케이션의 구성요소 중 하나로 선언
  • broadcast receiver를 사용하면 애플리케이션의 다른 구성요소가 실행되고 있지 않을 때도 시스템이나 다른 애플리케이션에서 브로드캐스트하는 인텐트를 애플리케이션에서 수신 가능
  • broadcast receiver를 시스템에 알리는 방법1: 이 요소를 사용해 매니페스트 파일에 broadcast receiver를 선언
  • broadcast receiver를 시스템에 알리는 방법2: 코드에서 동적으로 broadcast receiver를 만든 다음 Context.registerReceiver() 메서드를 사용해 등록

10. <service>

설명

  • 서비스(Service 서브클래스)를 애플리케이션의 구성요소 중 하나로 선언
  • 활동과 달리 서비스는 시각적 사용자 인터페이스가 없음
  • 오래 실행되는 백그라운드 작업이나 다른 애플리케이션에서 호출할 수 있는 리치 커뮤니케이션 API를 구현하는 데 사용
  • 모든 서비스는 매니페스트 파일의 <service> 요소로 나타내야 함(여기에 선언되지 않은 서비스는 시스템에 표시되지 않으며 실행되지 않음)



참고:
https://developer.android.com/guide/topics/manifest/manifest-intro?hl=ko

0개의 댓글