본문 바로가기

Mobile/Android

[ Android ] Manifest 매니패스트

반응형

안드로이드 프로젝트를 만들 때 기본적으로 생성되는 파일 중 하나가 매니패스트 파일이다.

매니패스트는 앱이 실행되기 위한 일종의 룰, 규칙 같은 것을 설정하는 파일이라고 생각하면 된다.

 

| 개요

매니패스트 파일에는 다음과 같은 정보를 선언해야 한다.

1. 앱의 패키지 이름

2. 앱의 구성 요소(모든 액티비티, 서비스, Broadcast Receiver, 콘텐츠 제공자 포함)

3. 앱이 시스템 또는 다른 앱의 보호된 부분에 액세스하기 위해 필요한 권한

4. 앱에 필요한 하드웨어 및 소프트웨어 기능

 

 

| 선언

안드로이드 프로젝트를 처음 생성했을 때 매니패스트 파일에는 다음과 같이 선언되어 있다.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.jessicathornsby.myapplication">
 
   <application
       android:allowBackup="true"
       android:icon="@mipmap/ic_launcher"
       android:label="@string/app_name"
       android:roundIcon="@mipmap/ic_launcher_round"
       android:supportsRtl="true"
       android:theme="@style/AppTheme">
       <activity android:name=".MainActivity">
           <intent-filter>
               <action android:name="android.intent.action.MAIN" />
 
               <category android:name="android.intent.category.LAUNCHER" />
           </intent-filter>
       </activity>
   </application>
</manifest>

첫 번째 줄은 해당 파일은 xml 파일이고, 인코딩 방식은 utf-8임을 나타낸다.

 

 

다음으로 <manifest>는 애플리케이션의 전반적인 정보를 포함한다.

xmlns:android는 항상 다음과 같은 네임스페이스를 지정하고,

packpge애플리케이션의 패키지 이름을 지정한다.

 

 

<application>은 애플리케이션 선언이다. 이 요소는 애플리케이션의 각 구성요소를 선언하고

모든 구성요소에 영향을 줄 수 있는 속성을 가진 하위 요소를 포함한다. 위에서 사용된 속성은 다음과 같다.

 

android:allowBackup

백업 및 복구 기능을 사용 여부를 표시한다.

android:icon

어플리케이션 전체를 위한 아이콘과 각각의 컴포넌트들을 위한 아이콘을 나타낸다.

android:label

어플리케이션과 각각의 컴포넌트들을 위한 기본 라벨을 나타낸다.

android:supportsRtl

어플리케이션이 RTL(right-to-left)를 지원해주는 여부를 선언한다.

기본 값은 false이다. 실제로 오른쪽에서 왼쪽으로 읽는 나라일 경우 지원이 된다.

따라서 우리나라에서는 true로 바꾸고 실행을 해봐도 결과는 같다.

android:theme

어플리케이션안의 모든 기능들을 위한 기본 테마를 정의한 스타일 자원의 참조점이다.

개개인의 activity들은 기본 테마를 오버라이드하여 자신들만의 테마 속성들을 세팅할 수 있다.

android:icon

어플리케이션의 아이콘을 지정한다.

android:label

어플리케이션의 이름을 지정한다.

 

 

<activity>애플리케이션의 시각적 사용자 인터페이스 요소를 구현하는 액티비티(Activity 하위 클래스)를 선언한다.

모든 액티비티는 매니페스트 파일의 <activity> 요소를 나타내야 한다.

 

 

<intent-filter>는 활동, 서비스, broadcast receiver가 응답할 수 있는 인텐트의 유형을 지정한다.

인텐트 필터는 상위 구성요소의 기능, 즉 활동이나 서비스가 할 수 있는 작업과 수신기가 처리할 수 있는

브로드캐스트의 유형을 선언한다.

 

 

<action>인텐트 필터에 작업을 추가하는 역할을 한다.

android.intent.action.MAIN 같은 형식으로 이름을 지정해줘야 한다.

 

 

<category>는 인텐트 필터의 카테고리를 나타낸다.

android.intent.category.LAUNCHER 같은 형식으로 나타낸다.

 

 

| 그 외 알아두면 유용한 정보

<uses-permission>어플리케이션에서 사용할 권한을 지정한다

사진 촬영 또는 앨범에 대한 접근 권한, 위치 서비스에 대한 권한, 인터넷 접근 권한 등에 대한 지정을 할 때 사용한다.

사용할 때는 다음과 같이 선언해 준다.

 

<uses-permission android:name="android.permission.INTERNET" />

 

 

반응형