모듈의 폴더 구성 알아보기
build.gradle : 빌드 설정 파일
AndroidManifest.xml : 앱 메인 환경 설정 파일
res : 리소스 폴더
activity_main.xml : 레이아웃 XML 파일
MainActivity : 메인 액티비티 파일
이 중에서 이번엔 메인 환경 설정 파일에 대해 설명하겠다 !!
메인 환경 파일
AndroidManifest.xml : 앱 메인 환경 설정 파일
AndroidManifest.xml은 안드로이드 앱의 메인 환경 파일이다.('매니페스트 파일'이라고 하겠다)
개발을 진행하면서 매니페스트 파일을 분서갛고 수정하는 일이 많은데
안드로이드 시스템은 이 파일에 설정한 대로 사용자의 폰에서 앱을 실행한다.
즉, 매니페스트 파일은 개발부터 실행까지 중요한 역할을 한다.
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.example.myapplication">
<manifest>는 매니페스트 파일의 루트 태그이다.
그리고 xmlns는 XML의 네임스페이스 선언이다.
URL이 http://schemas.android.com/apk/res/android 으로 선언되었다면 안드로이드 표준 네임스페이스이다.
(C++에서의 using namespace std와 같은 것. 안 쓰면 std::cout 이라고 써야함)
package는 매니페스트 파일에 선언한 컴포넌트 클래스의 기본 패키지명이다.
이후 매니페스트 파일에 선언되는 액티비티, 서비스 클래스 등의 경로는 이 패키지명 이후부터 작성하면 된다.
네임스페이스 선언
<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.MyApplication">
<application>태그는 앱 전체를 대상으로 하는 설정이다
XML의 속성값이 @으로 시작하면 리소스를 의미한다.
icon 속성은 이곳에 지정한 이미지가 앱을 설치한 사용자의 폰에 보이는 실행 아이콘이 되는 것이다.
label 속성은 앱의 이름을 등록하는데, @string/app_name 으로 지정했으므로 res/values/strings.xml 파일에
app_name으로 등록된 문자열 리소스를 가리킨다.
theme 설정은 앱에 적용해야 하는 테마를 설정하는 것으로 res/values/themes.xml 파일에 Theme.MyApplication 잉름으로 선언한 테마를 적용하겠다는 의미이다.
<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>
안드로이드 컴포넌트는 시스템에서 생명주기를 관리한다.
그리고 시스템은 매니페스트 파일에 있는 대로 앱을 실행한다.
결국 컴포넌트는 매니페스트 파일에 등록해야 시스템이 인지한다.
액티비티 <activity>태그로, 서비스는 <services> 태그로, 브로드캐스트 리시버는 <receiver> 태그로
그리고 콘텐츠 프로바이더는 <provider>태그로 등록한다.
컴포넌트 하나 당 태그 하나로 등록하며 만약 액티비티가 10개라면 <activity> 태그를 10개 선언해야한다.
액티비티를 등록할 때 필수 속성은 name 이다.
name 속성에는 클래스 이름을 등록한다.
예를 들어 name=".MainActivity"라고 했다면 MainActivity 클래스를 액티비티로 등록하겠다는 의미이다.
(클래스 이름 앞에 있는 . 은 해당 클래스가 <manifest> 태그에 등록한 package 경로에 있다는 의미이다.)
<intent-filter> 태그는 생략할 수 있다.
<action> 태그의 name 값이 android.intent.action.MAIN 문자열로,
<category> 태그의 name 값이 android.intent.category.LAUNCHER로 선언되면
이 액티비티는 앱 아이콘을 클릭했을 때 실행되는 액티비티 라는 의미이다.
앱이 설치되면 홈 화면에 앱 아이콘이 나오는데, 이 아이콘을 터치했을 때 실행되어야 하는 액티비티라는 의미이다.
'안드로이드' 카테고리의 다른 글
[안드로이드] 퍼미션 설정하기 (0) | 2022.07.17 |
---|---|
[안드로이드] API 레벨 호환성 고려하기 (0) | 2022.07.17 |
[안드로이드] 앱 구성 파일 분석(2) - 그래들 빌드 설정 파일 (0) | 2022.07.17 |
[안드로이드] 앱 구성 파일 분석(1) - 프로젝트, 모듈의 폴더 구성 알아보기 (0) | 2022.07.17 |
[안드로이드] 코틀린 언어 소개 (0) | 2022.05.20 |
댓글