Android Manifest File

안드로이드 | 2010.10.07 12:48
Posted by 하드락



 Android Manifest File

메니페스트
파일(AndroidManifest.xml) 응용 프로그램 구성과 관련된 모든 정보를 담고 있는 파일로,
응용 프로그램의 이름과 버전 정보, 응용 프로그램의 구성요소들, 실행에 필요한 사용 권한, 실행 방식 다양한 정보를 정의한다. 파일은 매우 중요해서 ADT에서 매니페스트 파일을 위한 특수 편집기를 제공한다.

 

메니페스트 파일의 구조에 대한 자세한 설명은 아래 주소를 참조하도록 한다.

http://developer.android.com/guide/topics/manifest/manifest-intro.html

 

Structure of the Manifest File

 

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

 

<manifest> => 응용 프로그램의 패키지 이름 버전 정보를 설정

 

    <uses-permission /> => 응용 프로그램에 필요한 권한 등록

 

    <permission /> => 응용 프로그램이 다른 응용 프로스램에게 허락하는 권한들을 등록

 

    <permission-tree /> => 권한 트리 등록

 

    <permission-group /> => 권한 그룹 등록

 

    <instrumentation /> => 응용 프로그램과 시스템 리소스와의 상호 작용을 모니터링하는데 유효

 

    <uses-sdk /> => 응용 프로그램을 어느 버전의 안드로이드 환경에서 사용할 있는지 설정

 

    <uses-configuration /> => 응용 프로그램에 필요한 하드웨어/소프트웨어 입력 구성을 정의

 

    <uses-feature /> => 응용 프로그램에서 사용되는 특정 Feature 설정

 

    <supports-screens /> => 응용 프로그램에서 지원하는 화면 크기를 설정

 

    <application> => 응용 프로그램의 이름과 아이콘을 설정

 

        <activity> => 응용 프로그램의 모든 액티비티를 각각 하나의 <activity> 요소로 등록

            <intent-filter>

                <action />

                <category />

                <data />

            </intent-filter>

            <meta-data />

        </activity>

 

        <activity-alias> => 액티비티 별칭

            <intent-filter> . . . </intent-filter>

            <meta-data />

        </activity-alias>

 

        <service> => 서비스 등록

            <intent-filter> . . . </intent-filter>

            <meta-data/>

        </service>

 

        <receiver> => 방송 수신자 등록

            <intent-filter> . . . </intent-filter>

            <meta-data />

        </receiver>

 

        <provider> => 콘텐트 제공자 등록

            <grant-uri-permission />

            <path-permission />

            <meta-data />

        </provider>

 

        <uses-library /> => 지도 서비스처럼 추가로 연동되는 다른 패키지들을 링크

 

    </application>

 

</manifest>

 

 

 

AndroidManifest.xml

 

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

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

      package="com.hardrock.helloworld"

      android:versionCode="1"

      android:versionName="1.0">

     

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

          

    <application android:icon="@drawable/icon"
               
 android:label="@string/app_name">

        <activity android:name=".HelloWorldActivity"
                 
android:label="@string/app_name">

            <intent-filter>

                <action android:name="android.intent.action.MAIN"/>

                <category android:name="android.intent.category.LAUNCHER"/>

            </intent-filter>

        </activity>

    </application>

 

    <uses-sdk android:minSdkVersion="7"/>

 

</manifest>

 

 

package="com.hardrock.helloworld"

 

응용 프로그램의 패키지 이름이다.

 

android:versionCode="1"

 

응용 프로그램의 버전 부호로, 안드로이드 운영 체계가 응용 프로그램 업그레이드를 관리하기 위해 사용하는 번호이다. 개발자는 응용 프로그램의 업데이트를 만들 때마다 버전 부호를 증가시켜야 한다.

 

android:versionName="1.0"

 

응용 프로그램의 버전 이름으로, 사용자가 안드로이드 기기에서 응용 프로그램을 관리할 , 그리고 시장에서 응용 프로그램을 내려 받을 표시되는 버전 정보이다. 버전을 어떻게 붙일지는 개발자의 몫이다. 예를 들어, 카메라가 있는 모델은 “1.0.0.C.”, 카메라가 없는 모델은 “1.0.0.NC” 구별하여 버전 이름을 관리할 있다.

 

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

 

응용 프로그램의 권한 설정 요소로, 응용 프로그램이 특정 기능을 사용해야 한다면 해당 접근 권한들을 안드로이드 메니페스트 파일에 명시를 해야 한다. 응용 프로그램 설치 시에 응용 프로그램의 실행에 필요한 권한들이 사용자에게 제시되는데, 사용자가 그것들을 허락해야만 설치가 진행된다. 따라서 응용 프로그램에서 필요한 권한들만 요청하는 것이 바람직하다.

요청 가능한 권한들은 모두 android.Manifest.permission 클래스에 정의되어 있다.

 

ACCESS_FINE_LOCATION

GPS 위치 추적 기능에 필요한 권한이다.

BLUETOOTH

블루투스를 연결할 있도록 허락하는 권한이다.

CALL_PHONE

Dialer 전화를 있도록 허락하는 권한이다.

CAMERA

내장 카메라 접근 권한이다.

INTERNET

인터넷 접속 권한이다. 이를 통해 지도를 가져온다.

RECEIVE_SMS

문자메세지 수신 기능을 허락하는 권한이다.

SEND_SMS

문자메세지 전송 기능을 허락하는 권한이다.

VIBRATE

진동 기능을 허락하는 권한이다.

:

:

 

<application android:icon="@drawable/icon"
            
 android:label="@string/app_name">

 

응용 프로그램에서 사용할 아이콘과 응용 프로그램의 이름을 정의한다.

아이콘은 PNG 파일 포맷이고, /res/drawable/icon.png 폴더에 저장된다.

응용 프로그램의 이름은 액티비티가 화면에 떴을 가장 위에 표시된다.

 

<activity android:name=".HelloWorldActivity"
          
android:label="@string/app_name">

 

액티비티(Activity) 이름을 정의한다.

 

<intent-filter>

 

액티비티 노드는 액티비티를 언제 띄워야 하는지 안드로이드에게 알려 주는 인텐트 필터를 선언한다.

 

<action android:name="android.intent.action.MAIN"/>

 

안드로이드는 응용 프로그램을 시작할 MAIN Action 선언한 액티비티를 찾는다. , MAIN Action 선언한 액티비티가 가장 먼저 실행됨을 안드로이드에 알려 준다.

 

<category android:name="android.intent.category.LAUNCHER"/>

 

액티비티와 응용 프로그램의 아이콘을 실행 가능한 응용 프로그램 메뉴 중에 표시하게 한다. , 사용자가 응용 프로그램을 User Menu에서 보고 시작하게 하고 싶기 때문에 Category 값을 LAUNCHER 설정한다.

 

<uses-sdk android:minSdkVersion="7"/>

 

최소 안드로이드 SDK 버전으로, 안드로이드는 현재도 개선 중이기 때문에 계속 새로운 버전이 출시될 것이다. API Level 안드로이드 SDK 버전이 나올 때마다 증가한다.

응용 프로그램 설치 , 안드로이드 기기가 지원하는 SDK 버전이 응용 프로그램의 최소 SDK 버전보다 낮으면 응용 프로그램이 설치되지 않으므로, 자신의 응용 프로그램이 최대한 많은 단말기들과 호환되게 하고 싶다면 최소 SDK 버전을 최대한 낮게 설정하는 것이 좋다.

 

Platform Version

API Level

Android 1.0

1

Android 1.1

2

Android 1.5

3

Android 1.6

4

Android 2.0

5

Android 2.0.1

6

Android 2.1

7


신고

'안드로이드' 카테고리의 다른 글

액티비티(Activity)  (0) 2010.10.07
android.Manifest.permission  (0) 2010.10.07
Android Manifest File  (2) 2010.10.07
Hello World  (0) 2010.10.07
Android 개발 환경 설치  (0) 2010.10.07
안드로이드 참고 사이트  (0) 2010.10.07

댓글을 달아 주세요

  1. 지니어스최 2014.02.03 12:34 신고  댓글주소 수정/삭제 댓글쓰기

    잘보고갑니다 ^^

  2. BananaMilk. 2014.07.11 16:48 신고  댓글주소 수정/삭제 댓글쓰기

    출처 명시하고 블로그로 퍼갈께요~

블로그 이미지

하드락

I ♡ Android !!!

카테고리

분류 전체보기 (14)
안드로이드 (13)
Google Play (1)
안드로이드 팁 (0)
참고자료 (0)

티스토리 툴바