231228 TIL #280 Android #3 앱 구성 파일

김춘복·2023년 12월 27일
0

TIL : Today I Learned

목록 보기
280/543
post-custom-banner

Today I Learned

안드로이드 공부 계속!


앱 구성 파일

프로젝트 생성 시 app이라는 모듈이 자동으로 생성된다.
일반적으로 하나의 모듈은 하나의 앱이다. (하나의 앱을 여러 모듈로 나눠 개발도 가능)
하나의 프로젝트 안에 여러 모듈을 추가할 수 있다.
아래는 모듈 폴더의 주요 구성요소이다.

  • AndroidManifext.xml : 메니페스트 파일. 앱의 메인 환경설정 파일. 이 파일에서 설정한대로 앱이 실행
  • MainActivity.kt : 메인 액티비티 파일
  • activity_main.xml : 레이아웃 XML 파일
  • build.gradle : 빌드 설정 파일. 프로젝트 수준과 모듈 수준의 빌드 파일이 존재한다.
  • res 폴더 : 리소스 폴더

AndroidManifext.xml

  • 컴포넌트를 이 파일에 등록해야 안드로이드 시스템이 인지한다.

  • <manifest>
    메니페스트 파일의 루트 태그

  • <application>
    앱 전체 대상 설정.
    icon : 실행 아이콘. @로 시작하면 res 폴더의 리소스.
    label : 앱의 이름 등록.
    theme : 앱에 적용한 테마

  • 액티비티는 <activity>, 서비스는 , 브로드캐스트 리시버는 , 콘텐츠 프로바이더는 태그로 등록한다. 컴포넌트 하나당 태그 하나로 등록한다. (액티비티 4개면 액티비티 태그도 4개)

  • 액티비티에는 name 속성에 클래스 이름을 필수로 등록해야 한다.


build.gradle

// 대부분 설정이 모듈 수준의 빌드 파일에서 정해진다.
// * 플러그인 선언
plugins {
    id("com.android.application")
    id("org.jetbrains.kotlin.android")
}
// ...
    compileSdk = 33 // 컴파일 버전(SDK버전, API레벨)
    //...
    	applicationId = "com.example.androidlab" // 앱의 식별자. 고유한 문자열로 지정해야한다.
        minSdk = 21		// 이 앱을 설치할 수 있는 최소 SDK 버전
        targetSdk = 33	// 개발시 적용된 SDK 버전
        versionCode = 1 // 앱의 버전. 초기값이 1. 업데이트시 이 버전을 올려 배포해야 한다.
        versionName = "1.0" // 버전 이름

// * 개발 언어의 버전. 생략시 기본으로 1.6버전.
    compileOptions {
        sourceCompatibility = JavaVersion.VERSION_1_8
        targetCompatibility = JavaVersion.VERSION_1_8
    }
    kotlinOptions {
        jvmTarget = "1.8"
    }
    
// * 앱에서 이용하는 라이브러리의 버전. targetSdk에 명시한 안드로이드 SDK는 기본으로 적용
// 오픈소스나 구글 라이브러리 처럼 SDK 라이브러리가 아닌건 여기에 개발자가 선언해야 한다.
    dependencies {
    // ...
    }

res 폴더

  • 앱의 리소스를 등록하는 목적으로 사용된다.

  • 파일명에는 알파벳 대문자를 사용할 수 없다. 일반적으로 snake_case로 명명한다.

  • 각 리소스 폴더명은 아래와 같이 지정되어있고 각 폴더에 하위폴더는 만들 수 없다.
    drawable : 이미지 리소스
    layout : UI 구성에 필요한 XML 리소스
    mipmap : 앱 아이콘 이미지
    values : 문자열 등의 값으로 이용되는 리소스

  • res/drawable/mylogo1.png 파일이라면 R.drawable.mylogo1 으로 식별된다.


MainActivity

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
    }
}
  • AppCompatActivity를 상속받아 MainActivity 클래스를 정의.

  • 클래스 실행 시 onCreate() 함수가 자동으로 호출되어 함수안의 구문을 실행한다.

  • setContentView() 함수는 매개변수에 지정한 내용을 액티비티에 출력한다.


profile
Backend Dev / Data Engineer
post-custom-banner

0개의 댓글