Project 뷰
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.kotlin_study">
//패키지 명
<application
android:allowBackup="true"
//앱 삭제 후 재설치해도 로그인 등의 기록 남게함
android:icon="@mipmap/ic_launcher"
//res폴터 안에 minimap폴더 안에 기본으로 저장되어있는 아이콘 이미지
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
//res폴터 안에 minimap폴더 안에 기본으로 저장되어있는 둥근 아이콘 이미지
android:supportsRtl="true"
//오른쪽->왼쪽으로 글 읽을 수 있게 함
android:theme="@style/Theme.Kotlin_Study">
//테마 위에 녹색으로 설정되어있는 부분(기본값 태마)
<activity //액티비티는 안드로이드에서 화면 하나 라고 생각해
android:name=".MainActivity"
//JAVA폴더 밑에 패키지 밑에 있는 파일이름과 동일해야함
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
//액티비티를 런쳐로 만들어줌
//앱을 켰을때 최초로 나오는 화면
</intent-filter>
</activity>
</application>
</manifest>
manifest
모든 앱 프로젝트는 프로젝트 소스 세트의 루트에 AndroidManifest.xml 파일(정확히 이 이름)이 있어야함 매니페스트 파일은 Android 빌드 도구, Android 운영체제 및 Google Play에 앱에 관한 필수 정보를 설명
application
애플리케이션 선언. 이 요소는 애플리케이션의 각 구성요소를 선언하고 모든 구성요소에 영향을 줄 수 있는 속성을 가진 하위 요소를 포함
activity
애플리케이션의 시각적 사용자 인터페이스 요소를 구현하는 액티비티(Activity 하위 클래스)를 선언
intent-filter
활동, 서비스, broadcast receiver가 응답할 수 있는 인텐트의 유형을 지정합니다. 인텐트 필터는 상위 구성요소의 기능, 즉 활동이나 서비스가 할 수 있는 작업과 수신기가 처리할 수 있는 브로드캐스트의 유형을 선언
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
//우리가 사용하는 외부의 라이브러리 같은거 쓸때 하래 두 저장소에서 가져옴
google()
mavenCentral()
}
dependencies {
//우리 프로젝트가 만들어질때 쓰는 거
classpath "com.android.tools.build:gradle:7.0.1"
//프로젝트가 사용중인 gradle버전
//라이브러리를 관리할때 gradle을 사용
//컴파일할때 gradle사용
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.20"
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
task clean(type: Delete) {
//gradle의 명령어 중 clean이라는 tack를 저장
delete rootProject.buildDir
}
plugins {
//플러그인은 안드로이드에서 제공하는 기능 외의 라이브러리를 소개해주는 페이지에 들어가면 이 라이브러리 내 프로젝트에서 어케 쓰는지 작성되어 있는데 plugins 또는 dependencies를 통해 프로젝트에서 구현할 수 있게됨
id 'com.android.application'
id 'kotlin-android'
}
android {
compileSdk 31
//앱 완성후 컴파일할때 sdk31버전 기준으로 컴파일 할 것(API 31)
defaultConfig {
applicationId "com.example.kotlin_study" //패키지 명(ID처럼 고유함)
minSdk 21
//최소 Sdk 버전이라는 설정의 값을 21(API 레벨)로 지정
// =앱을 실행하려면 디바이스 기기에 최소한 API 레벨 21는 설치되어 있어야 함
// =앱이 API 레벨 21가 존재하는 디바이스 기기까지와는 호환
targetSdk 31
//conpileSdk랑 똑같음
versionCode 1
//앱 업데이트 될때마다 숫자 하나씩 올라감. 숫자 내려갈 수 없음
versionName "1.0"
//versiontCode를 문자열로
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
//테스트코드 작성 후 테스트 코드 실행시
//AndroidJUnitRunner으로 테스트 코드 돌리겠다는 것
}
buildTypes {
release {
//배포할 목적으로 빌드(디버그 목적으로도 빌드가 가능 디버그 찾으려고.
//보통은 release버전으로 빌드함)
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = '1.8'
}
}
dependencies { //앱이 가지고 있는 라이브러리(하단은 기본으로 장착되어있는 라이브러리)
implementation 'androidx.core:core-ktx:1.6.0'
implementation 'androidx.appcompat:appcompat:1.3.1'
implementation 'com.google.android.material:material:1.4.0'
implementation 'androidx.constraintlayout:constraintlayout:2.1.0'
testImplementation 'junit:junit:4.+'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
}
글 잘 읽었습니다. 안스 Java언어 사용시에도 포스팅 내용 중 프로젝트/모듈/패키지/클래스 상하관계 내용과 같나요?