AndroidManifest.xml이란?

박정우·2021년 7월 13일
0
post-thumbnail

AndroidManifest.xml의 정의

"안드로이드 시스템이 앱의 코드를 실행하기 전에 확보해야 하는 앱에 대한 필수 정보를 시스템에 제공하는 목록"

정의로만은 이해하기 어려워 실제 코드를 보면서 이해해보자.

?xml version="1.0" encoding="utf-8"?

이 문장은 이 파일이 XML 문서임을 선언한다.
version은 XML의 버전을 의미하고 encoding은 이 파일에 적용되는 인코딩 방식이 무엇인지를 의미한다.

1. manifest

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.rp3_cong_baemin">

xmlns:android = "http//schemas.android.com/apk/res/android"

xmlns는 'XML의 네임스페이스' 를 의미합니다.
xmlns:android는 android라는 '네임스페이스를 선언한다' 는 뜻이다.
여기서 네임스페이스는 고유한 URI를 의미합니다.

packge = "com.example.rp3_cong_baemin"

이 정보로 앱을 식별합니다. 그레이들 파일에 설정된 applicationId의 값과 같습니다.

2. application

앱의 구성요소를 등록하기 위한 태그입니다.

<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/Theme.Rp3congbaemin">
        <activity android:name=".SubActivity"></activity>
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

android:allowBackup = "true"

애플리케이션이 백업 및 복원 인프라에 참여하도록 허용할지 여부입니다. 이 속성을 false로 설정하면 모든 애플리케이션 데이터가 adb를 통해 저장되는 전체 시스템 백업에 의해서도 애플리케이션의 백업 또는 복원이 수행되지 않습니다. 이 속성의 기본값은 true입니다.

android:icon = "@mipmap/ic_launcher"

전체 애플리케이션의 아이콘 및 애플리케이션의 각 구성요소의 기본 아이콘입니다.

android:label = "@string/app_name"

전체 애플리케이션을 나타내는, 사용자가 읽을 수 있는 라벨 및 애플리케이션의 각 구성요소의 기본 라벨입니다.

android:roundIcon = "@mipmap/ic_launcher_round"

둥근 형태의 아이콘을 설정하는 속성입니다.

android:supportsRtl = "true"

애플리케이션이 오른쪽에서 왼쪽(RTL) 레이아웃을 지원하는지 여부를 선언합니다.

android:theme = "@style/Theme.Rp3congbaemin">

애플리케이션의 모든 활동의 기본 테마를 정의하는 스타일 리소스의 참조입니다.

1) activity

앱에 액티비티 컴포넌트를 등록하기 위한 태그입니다.

2) intent-filter

암시적 인텐트를 통해 사용자로 하여금 어느 앱을 사용할지 선택하도록 하고자 할 때 IntentFilter가 필요

즉 다른 앱에서 본인앱으로 접근하거나, 본인 앱에서 다른 앱으로 접근하기 위한 필터입니다.

3) action

인텐트 필터에 작업을 추가한다.
인텐트필터에 action 요소가 없으면 필터가 Intent 객체를 허용하지 않는다.

4) category

인텐트 필터에 카테고리 이름 추가한다.

5) data

데이터 사양을 인텐트 필터에 추가한다.
인텐트 필터의 scheme을 지정하지 않으면 다른 모든 URI 속성이 무시된다.
필터의 host를 지정하지 않으면 port 속성과 모든 경로 속성이 무시된다.

참고

0개의 댓글

관련 채용 정보