앞선 내용에서 이어서 계속 살펴보도록 하겠습니다.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.androidlab">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.AndroidLab">
<activity
android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
▷ 위 내용 중, <android> 태그 내에 작성된 속성 값 중 아래와 같은 형식으로 작성된 부분을 찾을 수 있습니다.
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
위 두 개의 값은, 안드로이드 앱이 설치되었을 때 앱의 아이콘 이미지 그리고 앱의 이름을 출력하는 속성입니다. 여기서 우리는 앞서 살펴보았던 R.java와 관련된 내용을 복습해 볼 수 있습니다.
결론부터 먼저 말씀드리자면, XML의 속성 값이 @로 지정되었을 경우 이는 res 하위 폴더 리소스를 지칭한다고 생각하면 됩니다. 즉, @mipmap/ic_launcer라는 속성 값은 결국 위 아티클에서 설명한 것과 마찬가지로 R.mipmap.ic_launcher를 의미하는 것입니다.
▷ 위에서 선언된 <activity> 항목을 보겠습니다. 속성 값으로 해당 액티비티의 이름이 명시된 부분이 있죠.
<activity android:name=".MainActivity">
이 속성 값은 해당 앱에 선언된 액티비티 컴포넌트의 이름입니다. 당연한 이야기지만, 이 속성은 클래스명을 의미하는 것이기 때문에 생략할 수 없는 부분입니다. 또한, 해당 앱(모듈)에 생성된 액티비티의 개수만큼 <activity>가 선언됩니다. 샘플 앱의 경우 액티비티가 MainActivity 딱 하나이기 때문에 한 개만 선언된 상태이지요.
참고로 컴포넌트의 종류에 따라 <service>, <provider>, <receiver> 태그로 등록됩니다.
▷ 마지막으로 <intent-filter> 태그가 있습니다. 일단은 intent에 대한 복합적 이해가 필요하므로 현재는 이해하기는 다소 어려운 내용입니다. 다만, 유저가 앱 아이콘을 클릭했을 때 실행되는 액티비티를 선언하는 용도라고 생각하면 됩니다. 현재는 MainActivity가 실행되는 상태입니다.
'Programming > Android' 카테고리의 다른 글
3. 사용자 인터페이스 구현 (1) - UI 기본 구조 (0) | 2024.01.18 |
---|---|
2. 안드로이드 기본 구조의 이해 (6) - 기본 샘플 app 모듈 분석 [3/3] (1) | 2024.01.10 |
2. 안드로이드 기본 구조의 이해 (6) - 기본 샘플 app 모듈 분석 [1/3] (1) | 2024.01.05 |
2. 안드로이드 기본 구조의 이해 (5) - gradle(그레이들) [2/2] (1) | 2023.12.23 |
2. 안드로이드 기본 구조의 이해 (5) - gradle(그레이들) [1/2] (0) | 2023.12.21 |