[Android/안드로이드] Manifest란?

JINA·2021년 8월 29일
0

Android/basic

목록 보기
1/6

📌manifest란?

매니페스트 파일은 Android 빌드 도구, Android 운영체제 및 Google Play에 앱에 관한 필수 정보를 설명한다. 가장 상위 폴더에 AndroidManifest.xml이 있어야하며, 이 정보는 앱이 실행되기 전에 시스템이 알아야 할 내용을 정의하고 있다.


Package Name

Manifest 파일의 루트 요소<manifest></manifest>에는 해당 앱의 패키지 네임이 반드시 기재되어야 한다. “com.example.myapplication” 이라는 패키지를 만들었다면 아래와 같은 Manifest 파일이 생성된다.

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

이는 우리가 앱을 빌드하여 APK 를 추출하는 과정에서 Android Build Tool 에 의해 다음 2가지 목적으로 사용된다.

  • App Resource 에 접근하는데 사용되는 R 클래스의 네임스페이스로 적용
    위 예에서는 com.example.myapplication.R 클래스가 생성됨.
  • 매니페스트 파일 내에서 선언된 상대경로에 적용
    예를 들어 <activity android:name=".MainActivity> 라고 선언했다면 이는 "com.example.myapplication.MainActivity" 를 의미함.
<manifest package="com.example.myapplication" ... >
    <application ... >
        <activity android:name=".MainActivity" ... >
            ...
        </activity>
    </application>
</manifest>

App Components

안드로이드에는 4대 컴포넌트가 있는데, 앱에서 이 컴포넌트들을 사용하기 위해서는 Manifest 파일에 해당하는 XML 요소를 선언해줘야 한다.

  • 〈acvitivy〉 : Activity의 각 하위 클래스
  • 〈service〉 : Service의 각 하위 클래스
  • 〈receiver〉 : Broadcast Receive의 각 하위 클래스
  • 〈provider〉 : Content Provider의 각 하위 클래스

Permissions

Android 앱은 민감한 사용자 데이터 또는 특정 시스템 기능에 액세스하기 위한 권한을 요청해야 한다. 예를 들어 인터넷 권한을 사용하는 앱은 매니페스트에 다음과 같은 줄이 있어야함.

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

0개의 댓글