본문 바로가기

Android Developers/manifest

<application>이 포함 가능한 요소 : <activity>, <activity-alias>, <meta-data>, <service>, <receiver>, <provider>, <uses-library>

<activity>

액티비티 선언

선언되지 않은 액티비티는 시스템에 표현 및 실행되지 않는다.

 

포함된 위치

<application>

 

포함 가능한 항목

<intent-filter>
<meta-data>
<layout>

 

developer.android.com/guide/topics/manifest/activity-element

 

<액티비티>  |  Android 개발자  |  Android Developers

Declares an activity (an Activity subclass) that implements part of the application's visual user interface. All activities must be represented by {@code } elements in the manifest file. Any that are not declared there will not be seen by the system…

developer.android.com


<activity-alias>

활동의 별칭

<activity-alias android:enabled=["true" | "false"]
                    android:exported=["true" | "false"]
                    android:icon="drawable resource"
                    android:label="string resource"
                    android:name="string"
                    android:permission="string"
                    android:targetActivity="string" >
        . . .
    </activity-alias>

 

포함된 요소

<application>

 

포함 가능한 항목

<intent-filter> 

<meta-data>

 

android:enabled 이 별칭을 통해 타겟활동을 인스턴스화할 수 있는지 여부
<application> 및 <activity-alias> 속성이 모두 true여야
시스템에서 별칭을 통해 타겟활동을 인스턴스화 가능
android:targetActivity 별칭을 통해 활성화할 수 있는 활동의 이름
<activity> 요소의 name과 일치해야 한다.

 


<meta-data>

상위 구성요소에 제공될 수 있는 추가 임의 데이터 항목의 이름-값 쌍

 

포함된 요소

<activity>
<activity-alias>
<application>
<provider>
<receiver>
<service>


<service>

서비스(Service 하위 클래스)를 애플리케이션의 구성요소로 선언

정의되지 않는 서비스는 시스템에서 표시 및 실행 불가

 

포함된 요소

<application>

 

포함 가능한 항목

<intent-filter> 

<meta-data>

 

  • 서비스는 시각적 사용자 인터페이스가 없음
  • 서비스는 오래 실행되는 백그라운드 작업이나 다른 애플리케이션에서 호출할 수 있는 리치 커뮤니케이션 API 구현시 사용

<receiver>

broadcast receiver를 애플리케이션의 구성요소로 선언

→ 애플리케이션의 다른 구성요소가 실행되고 있지 않을 때도

    시스템이나 다른 애플리케이션에서 브로드캐스팅하는 인텐트를 애플리케이션에서 수신 가능

 

포함된 위치

<application>

 

포함 가능한 항목

<intent-filter>
<meta-data>

 

broadcast receiver를 시스템에 알리는 방법

1. <receiver> 사용해 manifest 파일에서 선언2. 코드에서 동적으로 broadcast receiver 생성 후 Context.registerReceiver() 메서드를 사용해 등록

 

android:directBootAware broadcast receiver가 직접 부팅을 인식하는지 여부
사용자가 기기를 잠금 해제하기 전에 실행할 수 있는지 여부
android:enabled 시스템에서 broadcast receiver를 인스턴스화할 수 있는지 여부
broadcast receiver를 사용하려면 <application> 및 <receiver> 속성이 모두 'true'여야 한다.

 


<provider>

콘텐츠 제공자 구성요소 선언

정의되지 않으면 시스템에서 인식 및 실행 불가

 

포함된 위치

<application>

 

포함 가능한 항목

<meta-data>
<grant-uri-permission>
<path-permission>

 

콘텐츠제공자

  • 데이터 액세스 권한에 대한 세분화된 제어 기능 제공
  • 애플리케이션이 데이터에 대한 액세스 권한을 관리하도록 돕고 다른 앱과 데이터를 공유할 방법을 제공
  • 한 프로세스의 데이터에 다른 프로세스에서 실행중인 코드를 연결하는 표준 인터페이스
  • 타 앱이 앱 데이터에 안전하게 액세스하여 수정할 수 있게 되는 장점

<uses-library>

애플리케이션이 연결되어야 하는 공유 라이브러리를 지정

    <uses-library
      android:name="string"
      android:required=["true" | "false"] />
    
  • android:name : 라이브러리의 이름

  • android:required : 라이브러리가 필요한지 여부