본문 바로가기

Android

메니페스트 파일

- 가장 기본이 되는 부분은 프로젝트 디렉토리 루트에 위치한 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