안드로이드 1주차 정리

김성준·2022년 1월 15일
0

안드로이드

목록 보기
1/16

안드로이드 프로젝트의 개요

  • manifest
    Android 시스템에 앱에 대한 필수 정보가 담긴 파일이 존재합니다. (앱에 필요한 권한 등)

  • java
    Android 앱의 모든 주요 Kotlin 코드가 포함되어 있습니다

  • res
    Android의 리소스 는 앱에서 사용되는 정적 콘텐츠입니다. (이미지, 텍스트 문자열, 화면 레이아웃, 색상 등)

  • gradle
    빌드 시스템에 필요한 모든 파일이 포함되어 있습니다.

    • build.gradle(Project)
      프로젝트를 구성하는 모든 모듈에 공통적인 구성 옵션이 포함되어 있습니다. 프로젝트의 모든 모듈에 공통적인 Gradle 저장소 및 종속성을 정의합니다.
    • build.gradle(Module)
      각 모듈에 대한 빌드 설정을 할 수 있습니다.

MainActivity 와 activity_main.xml 은 한 쌍이다.
그러므로 다른 화면을 만들때, xxxActivity와 activity_xxx.xml을 만들어 연결면 된다.

MainActivity 한 줄 씩 알아보기

MainActivity.kt
package com.example.empty

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
    }
}
  • package com.example.empty
    패키지 이름입니다. example이 포함되어 있다면 연습용이라는 의미로 플레이 스토어에 업로드 되지 않습니다.

  • android.os.Bundle
    Bundle은 여러가지의 타입의 값을 저장하는 Map 클래스이다.

  • class MainActivity : AppCompatActivity()

    • AppCompatActivity
      Activity의 기본이 되는 클래스. 구형 안드로이드 기기에서도 새로운 플랫폼의 기능이 호환되도록 만들어진 클래스.
  • override fun onCreate(savedInstanceState: Bundle?)

    • override
      부모클래스의 메서드를 자식클래스에서 재정의해서 사용할 수 있는데 이걸 오버라이딩이라고 부른다.
    • savedInstanceState
      onSaveInstanceState()에 저장되어야 하는 이 프래그먼트 인스턴스에 고유한 데이터
    • Bundle
      Fragment 혹은 Activity에서 다른 Fragment로 데이터를 전달할 때 사용하는 것이 Bundle() 입니다.
    • ?
      코틀린에서는 명시적으로 null을 인자로 넣을수 없습니다. null을 넣는 구문이 있다면 complie time에 에러를 발생시킵니다. type에 ?를 붙임으로서 null이 가능한 변수임을 명시적으로 표현합니다.
  • super.onCreate(savedInstanceState)
    상위 클래스의 onCreate 메소드를 먼저 호출하여 먼저 실행 되게 하고
    오버라이드된 메소드를 처리 한다는 의미

  • setContentView(R.layout.activity_main

    • setContentView
      setContentView() 함수는 첫 번째 인자로 넘겨주는 XML 레이아웃 리소스 ID에 해당하는 파일을 파싱 하여 뷰(View)를 생성하고 뷰(View)의 속성을 지정하고 뷰(View) 간의 상하관계에 맞춰 배치를 합니다. 이러한 일련의 과정을 전개(Inflate)라 부릅니다.
    • R.layout.activity_main
      R = 안드로이드 리소스(레이아웃, 이미지, 문자열 등)를 식별하기 위한 변수들을 관리하는 R 클래스이다.
      layout = res/layout 클래스.
      activity_main = res/layout/activity_main.xml

출처

https://willbesoon.tistory.com/93
https://www.crocus.co.kr/1560
https://ttottoro.tistory.com/537
https://devkingdom.tistory.com/54
https://selfish-developer.com/entry/onSaveInstanceState
https://medium.com/hongbeomi-dev/fragment-%EC%9E%98-%EC%8D%A8%EB%B3%B4%EA%B8%B0-bundle-c2fd8fe96967
https://tourspace.tistory.com/114
https://lktprogrammer.tistory.com/156
https://curryyou.tistory.com/370
고돈호, 『이것이 안드로이드다(with 코틀린)』, 한빛미디어(2021)

profile
수신제가치국평천하

0개의 댓글