메니페스트 파일

Android 2010. 9. 8. 19:31
- 가장 기본이 되는 부분은 프로젝트 디렉토리 루트에 위치한 AndroidManifest.xml 파일
- 이 파일 내부에 프로젝트에서 생성하려는 어플리케이션의 기능(액티비티인지 서비스인지) 등을 정의
- 어플리케이션이 안드로이드 시스템에 어떻게 연결되는지에 대한 정보 포함
 ex) 안드로이드 기기의 메인 메뉴(런처launcher)에 어떤 액티비티가 표시되는지에 대한 정보 등
- 프로젝트를 맨 처음 생성하고 나면 기본적인 내용이 모두 포함된 AndrodidManifest.xml 파일 자동 생성

루트 엘리먼트

- 모든 매니페스트 파일의 루트 엘리먼트는 아래와 같은 manifest이다.
  <manifest xmlns:android = http://schemas.android.com/apk/res/android
     package = "com.commonsware.android.search">
  ...
  </manifest>
- package 속성을 보면 어플리케이션의 기본이 될 자바 패키지 명을 적게 되어있다.
 package
 - 위의 코드에서 com.commonsware.android.search.Snicklefritz라는 클래스를 가리키려면,
  package 속성으로 com.commonsware.android.search가 지정되 있으니 간단하게 .Snicklefritz 라고 표현



권한, 기본 연동 요소, 어플리케이션
- manifest 엘리먼트 바로 아래를 보면 다음과 같은 엘리먼트가 위치

uses-permission 엘리먼트
- 어느정도의 권한을 확보해야 어플리케이션이 제대로 동작하는지를 지정

permission 엘리먼트
- 외부 액티비티나 서비스가 내부 데이터나 기능을 사용하고자 할때 필요한 권한을 지정

instrumentation 엘리먼트
- 액티비티가 실행되는 등의 주요 시스템 이벤트가 발생했을 때, 어플리케이션의 어느 부분을 호출할 지 지정
- 주로 기록을 남기거나 모니터링을 할 때 유용

uses-library 엘리먼트
- 지도 서비스처럼 추가로 연동되는 안드로이 컴포넌트를 지정

uses-sdk 엘리먼트
- 어플리케이션을 어느 버전의 안드로이드 환경에서 사용 할 수 있는지 알려줄 수 있다.

application 엘리먼트
- 실제 어플리케이션과 관련된 내용들이 위치
ex code)
<manifest xmlns:android=http://schemas.android.com/apk/res/android
 package="com.comsware.adroid">
 <uses-permission
  android:name="android.permission.ACCESS_LOCATION"/>
 <uses-permission
  android:name="android.permission.ACCESS_GPS"/>
 <uses-permission
  android:name="android.permission.ACCESS_ASSISTED_GPS"/>
 <uses-permission
  android:name="android.permission.ACCESS_CELL_ID"/>
 <application>
 ...
 ...
 </application>
</manifest>


어플리케이션 엘리먼트
- 매니페스트 파일에서 가장 중요한 부분
- 안드로이드 프로젝트를 생성하면 기본적으로 하나의 activity 엘리먼트가 들어감
ex code)
<manifest xmlns:android=http://schemas.android.com/apk/res/android
 package="com.comsware.adroid">
 <application>
  <activity android:name=".Now" android:label="Now">
   <intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
   </intent-filter>
  </activity>
 </application>
</manifest>

activity 엘리먼트
- android:name 속성을 사용해 해당 액티비티를 구현한 클래스 이름을 지정
- android:label 속성을 사용해 액티비티 화면 표시용 이름을 지정
      <activity android:name=".Now" android:label="Now">
- intent-filter 엘리먼트를 사용해 어떤 상황에 해당 액티비티가 화면에 나타나게 할지를 지정
   <intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
   </intent-filter>

provider 엘리먼트
- provider 엘리먼트를 사용하면 하나 이상의 컨텐트 프로바이더를 정의할 수 있다.
- 컨텐트 프로바이더는 내부 액티비티에 데이터를 제공, 적절한 권한을 갖는 외부 액티비티에도 데이터 제공

'Android' 카테고리의 다른 글

안드로이드 기본 위젯  (0) 2010.09.08
AppWidgets  (0) 2010.09.08
안드로이드 위젯(widget)  (0) 2010.09.08
안드로이드 기본 프로젝트 생성  (0) 2010.09.08
메니페스트 파일  (0) 2010.09.08
안드로이드의 기초  (0) 2010.09.08
Posted by croute

댓글을 달아 주세요