상세 컨텐츠

본문 제목

[안드로이드] AndroidManifest.xml

Android

by choiDev 2019. 10. 5. 23:00

본문

안녕하세요 초이 입니다. 

기본적인 AndroidManifest.xml을 설명 드리려고 합니다.

 

AndroidManifest.xml은 앱의 메인 환경 파일입니다. 

AndroidManifest의 구성요소의 의미를 살펴보겠습니다.

 

packge = "com,example.android"

이 정보로 앱을 식별합니다. 그레이들 파일에 설정된 applicationId의 값과 같습니다. 

 

<application>

앱의 구성요소를 등록하기 위한 태그입니다. 안드로이드 앱은 컴포넌트 기반의 개발입니다.  안드로이드 컴포넌트 클래스는 (액티비티, 서비스, 브로드 캐스트 등등) AndroidManifest.xml에 등록해야 하며 <application>태그의 하위 태그로 등록합니다.

 

android:icon="@mipmap/ic_launcher" , android:label=@string/app_name"

<application> 태그의 속성으로, (앱 아이콘 이미지, 앱 이름)을 표시합니다.

 

<activity android:name=".MainActivity">

앱에 액티비티 컴포넌트를 등록하기 위한 태그입니다. <activity> 태그를 정의하기 위해서는 name 속성은 생략할 수 없습니다. 

 

<intent-filter>

암시적 인텐트를 통해 사용자로 하여금 어느 앱을 사용할지 선택하도록 하고자 할때 IntentFilter가 필요합니다.

즉 다른 앱에서 본인앱으로 접근하거나, 본인 앱에서 다른 앱으로 접근하기 위한 필터라고 생각하십니다.

 

<action>

 인텐트 필터에 작업을 추가합니다, <Intent-filter>는 <action> 요소가 없다면 Intent를 허용하지 않습니다.

 

<meta-data>

임의의 값을 저장하여 사용하는 태그, <meta-data>태그는 <application>, <activity>, <service> 등에 포함하여 사용할 수 있습니다.

예시) <meta-data name="string" resource="resource specification" value="string">

 

Activity에서 이 meta-data의 값을 사용하기 위해서는 다음과 같이 불러 올 수 있습니다.

ApplicationInfo appInfo = getPackageManager().getApplicationInfo(this.getPackageName(),PackageManager.GET_META_DATA);
Bundle aBundle = appInfo.metaData; 
String aValue = aBundle.getString("aKey");

 

meta-data 태그의 value에는 값을 하드코딩하지말고 string.xml은 리소스 파일을 한번 거쳐서 사용하면 디 컴파일시 값이 안나오도록 할 수 있습니다.

 

 

관련글 더보기