관리 메뉴

드럼치는 프로그래머

[안드로이드] 매니페스트파일 설정(AndroidManifest.xml) 본문

★─Programing/☆─Android

[안드로이드] 매니페스트파일 설정(AndroidManifest.xml)

드럼치는한동이 2013. 4. 17. 10:09

안드로이드 매니페스트 파일은 안드로이드 어플의 이름,버전,구성요소들,권한등을 설정할 수 있는

반드시 존재해야 하는 xml 형태의 파일로서 안드로이드 프로젝트의 최상위에 위치한다.

안드로이드 매니페스트 파일에서 설정할 수 있는 사항

  • 안드로이드 어플의 신원관리

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

    android:versionCode="1"
    android:versionName="1.0">

  • 안드로이드 어플의 이름과 아이콘 등록

<application android:icon="@drawable/icon"

android:label="@string/app_name">

  • Activity등의 안드로이드 어플의 구성요소 등록

<activity android:name=".testAndroidApp_CA"

android:label="@string/app_name">

  • 안드로이드 어플에서 특정 Activity를 주 진입점으로 지정

<activity android:name=".testAndroidApp_CA"

android:label="@string/app_name">

<intent-filter>

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

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

</intent-filter>

  • 기타 Intent filter 설정

운영체제가 보내는 Intent 중에서 해당 어플의 Activity 에 적용되는 것을 지정한다.

반드시 <action> 요소가 있어야 하며, <category> 요소와 <data> 요소가 있을 수도 있다.

<activity android:name=".testAndroidApp_CA"

android:label="@string/app_name">

<intent-filter>

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

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

</intent-filter>

또다른 예

<intent-filter>

<action android:name="android.intent.action.VIEW" /> --> 특정 콘텐트의 내용을 표시하는 기능

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

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

<data android:scheme="geoname" /> -->geoname:// 으로 시작하는 Uri Intent 가 전달 되면

Activity가 시동

</intent-filter>

  • 서비스와 방송 수신자 등록

서비스는 <service> 요소로, 방송수신자는 <receiver> 요소로 등록한다. intent filter 사용이 가능하다.

  • 콘텐츠 제공자 등록

<provider> 요소

  • 안드로이드 어플에 필요한 권한 등록

어플이 기능하는데 있어서 꼭 필요한 권한들이 설치시에 사용자에게 제시된다.

어플의 설치시에 어플에 권한이 부여된다.

<uses-permission android:name="android.permission.CAMERA" /> --> 어플이 내장카메라에 대한 접근을 요청

  • 안드로이드 어플이 다른 안드로이드 어플에 허락하는 권한 등록

<permission 요소>

  • 안드로이드 어플에 필요한 H/W,S/W 입력 구성 등록

단일 속성에서 여러 값을 지정 할수는 없다.

만일 하드웨어 키보드를 요구하고 감압식 터치스크린 또는 정전식 터치스크린을 요구한다면

다음과 같이 두개의 <uses-configuration> 요소를 명시해야 한다.

<uses-configuration android:reqHardKeyboard="true" android:reqTouchScreen="finger" />

<uses-configuration android:reqHardKeyboard="true" android:reqTouchScreen="stylus" />

[속성]

android:reqFiveWayNav : 방향 패드,트랙볼,네비게이션 휠등의 5방향 컨트롤을 요구하는지 여부 (true/false)

android:reqHardKeyboard : 하드웨어 키보드를 요구하는지 여부 (true/false)

android:reqkeyboardType : 키보드 종류(하드웨어또는 소프트웨어)

undefined(기본값)

nokeys (키보드 필요없음)

qwerty(표준 QWERT 키보드 필수)

twelvekey (12키패드 필수)

android:reqNavigation : 어플이 요구하는 네비게이션 장치 종류

undefined (기본값)

nonav(네비게이션 장치 필요없음)

dpad(방향패드 필수)

trackball (트랙볼 필수)

wheel(네비게이션 휠 필수)

android:reqTouchScreen : 필요한 터치스크린의 종류

undefined (기본값)

notouch(터치패드 필요없음)

stylus(감압식 터치스크린 필수)

finger(정전식 터치스크린 필수)

  • 최소 안드로이드 SDK 버전 지정

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

  • 다른 패키지 등록

<uses-library android:name="com.mylibrary.stuff" />

  • 기타 설정

<instrumentation >요소

이클립스에 안드로이드 플러그인(ADT)를 설치한 경우 새로운 프로젝트를 생성하면

자동으로 기본적인 AndroidManifest.xml 파일을 생성시켜 주는데 다음과 같다.

(이클립스 ADT 에서 제공하는 편집기를 사용해도 된다.)

[기본 AndroidManifest.xml]

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.androidbook.test_1" --> 패키지명
android:versionCode="1" --> 버전코드 (운영체제가 어플의 업그레이드를 관리하기위해 사용하는번호)
android:versionName="1.0"> --> 버전이름 (어플을 내려받을 때 표시되는 버전정보)

<application android:icon="@drawable/icon" --> 어플의 아이콘 설정 (/res/drawable/icon 파일이다.png,gif,jpg,48x48)

android:label="@string/app_name"> --> 어플의 이름 설정 (/res/values/string.xml문서의

string/app_name 이라는 문자열 자원에 저장되어 있다.)
<activity android:name=".testAndroidApp_CA" --> 모든 Activity를 각각 <activity> 요소로 등록해야한다.
android:label="@string/app_name">
<intent-filter> --> Intent filter 정의 ( 이 Activity 가 어플의 주 진입점으로 설정됨 )
<action android:name="android.intent.action.MAIN" /> --> action 의 종류는 MAIN
<category android:name="android.intent.category.LAUNCHER" /> --> action 의 범주 LAUNCHER
</intent-filter>
</activity>

</application>
<uses-sdk android:minSdkVersion="3" /> --> 최소 안드로이드 SDK 레벨

</manifest>

[/res/values/string.xml]

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, testAndroidApp_CA!</string>
<string name="app_name">testAndroidApp</string>
</resources>

가장 기본적인 HELLO WORLD 의 안드로이드 매니페스트 설정의 예이다.

 

 

[출처] http://blog.daum.net/haha25/5387318

Comments