카테고리 없음

Menifest.xml 파일이 뭘까? -1-

세밍_ 2020. 3. 9. 20:28
728x90
반응형

안드로이드 앱을 만들다 보면 Manifest.xml 파일을 보실 수 있는데요!

오늘은 Manifest.xml 파일이 무엇인지 알아보는 시간을 가져볼게요!


Manifest.xml 파일의 4가지 주요 기능

매니페스트 파일은 다른 앱에 관한 필수 정보를 1.Android 빌드 도구 2. Android 운영체제 3. Google Play에 설명하는 역할을 합니다.

이 말은 매니페스트파일 안에 앱에 대한 필수 정보가 담겨 있어야 한다는 의미 인데요, 어떤 정보들이 담겨햐 하는지 알아 봅시다

1. 패키지 이름과 애플리케이션 ID

Manifest.xml 파일의 4가지 주요 기능

Android빌드 도구는 프로젝트를 빌드할 때 이름을 통해 코드 엔터티의 위치를 확인합니다.

앱을 패키징 할 때 빌드 도구가 이 값을 Gradle 빌드 파일의 애플리케이션 ID로 대체하기도 하구요,

또한 이는 시스템과 Google Play에서 고유한 앱 식별자로 사용되기도 합니다.

다음의 예는 패키지 이름이 "com.example.myapp"의 manifest 요소를 나타냅니다.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.myapp"
    android:versionCode="1"
    android:versionName="1.0" >
    ...
</manifest>

 

2. 앱 구성요소

Manifest.xml 파일의 4가지 주요 기능

앱에서 생성하는 각각의 앱 구성요소에 대해 매니페스트 파일에서 해당하는 XML 요소를 선언해야 합니다.

1. <activity>Activity 의 각 하위 클래스,

2. <service> Service 의 하위 클래스

3. <receiver>BroadcastReciver의 각 하위클래스

4. <provider> ContentProvider 의 각 하위 클래스

이 4가지를 Manifest의 4대 컴포넌트 라고도 합니다.

하위 클래스 이름은 완전한 패키지 이름을 사용해서 name의 특성으로 지정해야 합니다.

다음의 예는 Activity 하위 클래스를 선언하는 예시 입니다.

<manifest ... >
    <application ... >
        <activity android:name="com.example.myapp.MainActivity" ... >
        </activity>
    </application>
</manifest>

만약 name 값의 첫 번째 문자가 마침표 라면 앱의 패키지 이름이 해당 이름 앞에 붙습니다.

다음의 예시에서 위와 같은 상황을 볼 수 있는데요 , 다음 액티비티 이름은 "com.example.myapp.Mainactivity"로 해석이 됩니다.

<manifest package="com.example.myapp" ... >
    <application ... >
        <activity android:name=".MainActivity" ... >
            ...
        </activity>
    </application>
</manifest>

 

인텐트 필터

Activity, Service, Broadcast Receiver는 인텐트로 활성화가 됩니다.

인텐트는 실행할 작업을 설명하는 Intent 객체로 정의되는 메세지로,

작업할 데이터, 작업을 수행해야 하는 구성 요소의 카테고리 및 기타 지침이 포함됩니다. (인텐트에 대한 자세한 부분은 나중에 또 다루도록 하겠습니다)

이 외에도 앱 구성요소로써 사용자에게 표시되는 아이콘(icon)과 레이블(label)의 특성도 표시합니다.

3. 권한

Manifest.xml 파일의 4가지 주요 기능

Android 앱은 민감한 사용자 데이터(예: 연락처, SMS) 또는 특정 시스템 기능(예: 카메라, 인터넷 액세스)에 액세스하기 위한 권한을 요청해야 합니다.

각 권한은 고유한 레이블로 식별됩니다.

예를 들어 SMS 메시지를 보내야 하는 앱은 매니페스트에 다음과 같은 줄이 있어야 합니다.

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

 

Android 6.0(API 레벨 23)부터 사용자는 런타임에서 일부 앱 권한을 승인하거나 거절할 수 있게 됩니다.

그러나 앱이 어떤 Android 버전을 지원하든 매니페스트에서 <uses-permission> 요소로 모든 권한 요청을 선언해야 합니다.

앱은 권한을 사용하여 자체적인 구성 요소를 보호할 수도 있습니다.

Android에서 정의된 권한(android.Manifest.permission에서 설명) 또는 다른 앱에서 선언된 권한을 사용할 수 있습니다. 또한, 앱에서 권한을 정의할 수도 있습니다. 새 권한을 선언할 때는 <permission> 요소를 사용합니다.

4. 기기 호환성

Manifest.xml 파일의 4가지 주요 기능

매니페스트 파일에서는 앱에 필요한 하드웨어 또는 소프트웨어 기능을 선언할 수 있고, 따라서 앱과 호환되는 기기 유형도 선언할 수 있습니다.

Google Play Store에서는 앱에 필요한 기능이나 시스템 버전을 제공하지 않는 기기에 앱 설치를 허용하지 않습니다.


매니페스트가 어떤 역할을 하는지 잘 아셨을까요?

다음 번에는

안드로이드 menifest.xml의 주요 속성 10가지 이상 4대 콤포넌트로 돌아올게욥!

 

 

[출처 : 안드로이드 개발 가이드 - App Manifest.xml]

728x90
반응형