그래들 빌드 설정 파일 (build.gradle) :
그래들은 안드로이드 앱의 빌드 도구로
앱을 빌드하는 데 필요한 설정을 등록한다.
그래들 파일은 2개가 있다
- Project: AndroidLab
- Module: Android.app
대부분의 빌드 설정은 모듈 그래들 파일에 작성한다.
// 플러그인 선언 필요에 따라 추가 가능
plugins {
id 'com.android.application'
id 'kotlin-android'
}
// 컴파일 및 빌드 버전 설정
compiledSdkVersion 30
buildToolsVersion "30.0.2"
// 앱의 식별자를 설정
// 고유한 문자열로 지정해야 한다.
// 만약 구글플레이 스토어에 똑같은 식별자가 있다면 플레이 스토어에 등록되지 않는다.
applicationId "com.example.androidlab"
// SDK 버전 설정
// targetSdkVersion은 개발할 때 적용 되는 sdk 버전
// minSdkVersion은 이 앱을 설치 할 수 있는 기기의 최소 sdk 버전
minSdkVersion 16
targetSdkVersion 30
// 앱 버전 설정
// 초기 1에서 업데이트 될때 이 버전을 올려서 다시 배포한다.
versionCode 1
versionName "1.0"
// 컴파일 옵션
// 자바 버전 선언을 생략하면 기본 1.6이 적용
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
KotlinOptions {
jvmTarget = '1.8'
}
// 라이브러리 설정
// 개발자가 추가하는 오픈소스 라이브러리나 구글의 androidx 라이브러리등
// sdk 라이브러가 아닌 것들은 모두 dependencies에 선언해야 한다.
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
implementation "androidx.core:core-ktx:1.3.2"
implementation "androidx.appcompat:appcompat:1.2.0"
}
메인 환경 파일 (AndroidManifest.xml) :
안드로이드 앱의 메인 환경 파일
개발부터 실행까지 중요한 역할을 하는 파일이다.
컴포넌트는 매니페스트 파일에 등록해야 시스템이 인지를 한다.
// 매니페스트 파일의 루트 태그
// xmlns는 XML의 네임 스페이스 선언
// package는 매니페스트 파일에 선언한 컴포넌트 클래스의 기본 패키지명
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.androidlab">
// 앱 전체를 대상으로 하는 설정
// icon 지정한 이미지가 앱을 설치한 사용자에게 보이는 실행 아이콘
// label 앱의 이름을 등록
// theme 앱에서 적용해야 하는 테마를 설정
// @ 로 시작하면 리소스를 의미한다.
<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">
</application>
// 액티비티 <activity> 태그
// 서비스 <service> 태그
// 브로드캐스트 리시버 <receiver>태그
// 콘텐츠 프로파이더 <provider>태그
// 컴포넌트 하나당 태그 하나로 등록하며 만약 10개라면 10개의 태그를 선언해야 한다.
// MainActivity를 클래스를 액티비티로 등록
// .은 해당 클래스가 <manifest>태그에 등록한 package 경로에 있다는 의미
<activity andorid:name = ".MainActivity">
<intent-filter> // 생략 가능
<action android:name="android.intent.action.MAIN"/>
// 앱 아이콘을 클릭시 실행되는 액티비티
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
리소스 폴더
res 폴더는 앱의 리소스를 등록하는 목적으로 사용하며
모듈이 생성되면 res 폴더 아래 여러 폴더들이 생성된다.
- drawable: 이미지 리소스
- layout: UI 구성에 필요한 XML 리소스
- mipmap: 앱 아이콘 이미지
- values: 문자열 등의 값으로 이용되는 리소스
res 폴더 아래 리소스를 만들면 자도응로 R.java파일에 상수 변수로리소스가 등록된다.
예를 들어 아래와 같이
res폴더 안
drawable 안에 a, b png 파일 만들고
-res
\-drawable
- a.png
- b.png
사용하려면 R.drawable.a, R.drawable.b 로 식별이 가능하다.
따라서 몇가지 규칙이 필요하다
1. res 하위 폴더명은 지정된 폴더명을 사용해야 한다
2. 각 리소스 폴더에 다시 하위 폴더를 정의 할수 없다
3. 리소스 파일명은 자바의 이름 규칙을 위배 할수 없다.
(a1.png 가능, 1a.png 불가능)
4. 리소스 파일명에는 알파벳 대문자를 이용할수 없다.
(aU.xml 불가능, a_U.xml 가능)
레이아웃 XML 파일
res/layout 폴더 아래 기보능로 만들어지는 activity_main.xml 파일로
화면을 구성하는 레이아웃 XML 파일이다
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main_parent_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:keepScreenOn="true"
tools:context="com.themoin.remit.MainActivity">
</androidx.constraintlayout.widget.ConstraintLayout>
메인 액티비티 파일
앱 아이콘을 터치하면 MainActivity.kt 파일이 실행된다.
MainActivity 클래스가 실행되면 onCreate() 함수가 자동으로 호출되며
onCreate() 함수 안의 구문을 실행한다.
setContentView() 함수는 매개변수에 지정한 내용을 액티비티 화면에 출력한다.
'모바일 APP > Android with Kotlin' 카테고리의 다른 글
초기화 미루기 (0) | 2021.12.13 |
---|---|
코틀린 이란? (0) | 2021.12.13 |
컴포넌트 (0) | 2021.12.02 |
안드로이드 운영체제의 구조 (0) | 2021.11.30 |
안드로이드 특징 (0) | 2021.11.30 |