2. 리소스 파일
: 애플리케이션 리소스(ex. 이미지 또는 문자열)를 코틀린 코드에서 분리하고 독립적으로 유지/관리할 수 있도록 해서
다양한 환경 변화(ex. 화면 크기 변화 또는사용 언어 변경)를 코드의 변경 없이 수용할 수 있음
// ex. 여러 가지 화면 크기에 따라 여러 UI 레이아웃을 리소스 파일로 제공하거나,
언어 설정에 따라 각기 다른 문자열을 리소스 파일로 제공
2. 리소스 폴더
1) drawable : 이미지 리소스
2) layout : UI 구성에 필요한 XML 리소스
3) mipmap : 앱 아이콘 이미지
4) values : 문자열 등의 값으로 이용되는 리소스
// ex. activity_main.xml : res/layout 폴더에 위치한, 화면의 레이아웃을 정의한 xml 파일
// ConstraintLayout 안에 하나의 TextView 요소가 포함된 화면 디자인을 나타냄
// ConstraintLayout : 내부에 포함되는 위젯의 위치, 크기를 RelativeLayout보다 유연한 방식으로 결정하는 뷰 그룹
// TextView는 문자열을 표시하는 위젯 (android:text 속성에 지정된 문자열 Hello World! 를 표시)
3. 주의
1) res 하위의 폴더명은 지정된 폴더명(ex. drawable/, layout/ ... )을 사용해야 함
2) 각 리소스 폴더에 다시 하위폴더를 정의할 수 없음
3) 리소스 파일 명에는 알파벳 대문자를 사용할 수 없음
4) 파일-베이스 리소스명은 알파벳 소문자와 숫자 0~9, _ 만 사용 가능함
4. aapt 도구
: 애플리케이션 리소스를 컴파일하여 컴파일 된 리소스(R클래스와 패키지 된 리소스 파일)을 생성함
- R.java
: aapt 도구에 의해 자동으로 생성된 파일
- R클래스는 리소스를 kotlin 프로그램에서 접근하기 위한 리소스 ID를 정의
public final class R{
...
public static final class layout{
...
public static final int activity_main=0x7f09001b;
...
}
...
}
3. 코틀린 소스 파일
: MainActivity.kt
= 안드로이드 프로젝트 생성 시 자동으로 만들어진 코틀린 파일
1) 패키지 이름
: MainActivity 클래스가 속한 패키지
- 안드로이드 프로젝트 생성 시에 설정된 이름
- 패키지명이 중복되게 생성될 수는 없음
package com.jblee.helloworld
2) MainActivity 액티비티에 대한 클래스 정의
: 안드로이드 액티비티는 Activity의 서브클래스임
- AppCompatActivity는 Activity의 서브클래스로서 하위 플랫폼 버전을 지원
class MainActivity : AppCompatActivity(){
// override fun onCreate(savedInstanceState: Bundle?){
// super.onCreate(savedInstanceState)
// setContentView(R.layout.activity_main)
// }
}
3) MainActivity 액티비티가 생성될 때 수행되는 메소드 (안드로이드 플랫폼이 호출하는 메소드)
: 안드로이드 플랫폼이 호출하는 메소드. 액티비티가 생성되는 순간에 딱 한 번 호출됨
- 주로 액티비티와 관련된 변수 초기화 및 사용자 인터페이스 설정 코드를 포함함
//class MainActivity : AppCompatActivity(){
override fun onCreate(savedInstanceState: Bundle?){
super.onCreate(savedInstanceState)
// setContentView(R.layout.activity_main)
}
//}
4) activity_main.xml에 정의된 화면 레이아웃을 MainActivity의 컨텐츠뷰로 설정
: R.layout.activity_main이 가리키는 리소스를 이 액티비티의 콘텐츠뷰로 사용하겠다는 의미
- R.layout.activity_main은 res/layout 폴더의 activity_main.xml 을 가리키는 정적 상수 (R클래스에서 정의됨)
//class MainActivity : AppCompatActivity(){
// override fun onCreate(savedInstanceState: Bundle?){
// super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// }
//}
'Android Studio' 카테고리의 다른 글
[Android 앱개발 입문] 안드로이드 UI 기본 (@ 추가하기) (0) | 2024.03.18 |
---|---|
[Android 앱개발 입문] 프로젝트 실습 (# 추가하기) (0) | 2024.03.18 |
[Android 앱개발 입문] 프로젝트 빌드 (@ 추가하기) (0) | 2024.03.18 |
[Android 앱개발 입문] 프로젝트 구조 - 앱 구성 파일 분석, 매니페스트 파일 (# 추가하기) (0) | 2024.03.18 |
[Android 앱개발 입문] 이것저것 기초 (0) | 2024.03.18 |