Study Record

[안드로이드] 매니패스트 개요 본문

안드로이드

[안드로이드] 매니패스트 개요

초코초코초코 2023. 6. 11. 20:14
728x90

 

모든 앱 프로젝트에는 AndroidManifest.xml 파일이 있다. 이 파일은 Android 빌드 도구, 운영체제 및 Google play 앱에 관한 필수 정보를 설명한다.

 

 

😶 매니패스트에 선언해야 할 내용

 

앱의 패키지 이름

매니패스트 파일에는 앱 패키지 이름을 필수적으로 입력해야 한다. package="com.example.myapp" 과 같은 형식이다.

<?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>

패키지 이름과 applicationId 라는 개념이 있는데 이 applicationId 는 기본적으로 패키지 이름과 동일하다. 따라서 이 값을 동일하게 유지한다면 아무런 조치를 취하지 않아도 된다. (특히 패키지 이름을 수정할 때는 주의해야 한다.)

 

* applicatioId 는 Google play 에 앱을 개시할 때 앱들을 고유하게 식별하게 해 준다. 따라서 앱을 개시한 후에는 applicationId 를 변경해서는 안된다.

(build.gradle 파일의 applicationId 예시)

android {
    defaultConfig {
        applicationId "com.example.myapp"
        minSdkVersion 15
        targetSdkVersion 24
        versionCode 1
        versionName "1.0"
    }
    ...
}

 

 

앱의 구성 요소

앱의 구성 요소에는 activity, service, Broadcast Receiver, 콘텐츠 제공자가 있다. 이 앱의 구성 요소는 모두 매니패스트 파일에 기재되어야 한다. 구성 요소의 시작을 설명하는 인텐트 필터와 같은 기능도 선언할 수 있다.

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

 

 

앱의 권한

안드로이드에서 인터넷, 블루투스, 카메라, 파일 등에 접근할 때는 사용자에게 허락을 받아야 한다. 앱에서 사용할 권한들을 매니패스트 파일에 선언해야 한다.

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

Android 6.0 (API 23) 부터 사용자는 런타임에서 일부 앱 권한을 승인하거나 거절할 수 있다. 따라서 매니패스트 파일에 권한을 모두 기재한다고 영구적으로 그 권한을 사용하지 못할 수도 있다. 런타임에서 권한을 요청하는 과정이 있더라도 반드시 매니패스트 파일에 먼저 권한을 선언해야 한다.

 

 

앱의 이름과 아이콘

앱의 이름과 아이콘 등 앱에 대한 전반적인 정보를 매니패스트 파일에 기재한다. android:icon 과 android:roundIcon 이 앱 아이콘에 대한 정보이고 android:label 이 앱 이름을 의미한다.

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

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">

    </application>
</manifest>

 

 

 

 

 

앱 매니페스트 개요  |  Android 개발자  |  Android Developers

앱 매니페스트 개요 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 모든 앱 프로젝트는 프로젝트 소스 세트의 루트에 AndroidManifest.xml 파일(정확히 이 이름)

developer.android.com

 

 

 

728x90