[TIL]Android 기본정리

mandoofu·2024년 9월 2일

안드로이드

목록 보기
3/20
post-thumbnail

안드로이드 특징 및 장점

  • 개방성 [Open]
  • 무료
  • 개발도구 : Android Studio, InteliJ..

안드로이드 Framework

  • Activity
  • UI/UX -> Compose 전환 중
  • Service -> workManager
  • BroadcastReceiver
  • Intent
  • ContentProvider
  • Jetpack API

안드로이드 플랫폼을 이루는 개발방법론(CBD)

  • Android는 재사용 가능한 Component-Based Development를 권장
    • Activity : Activity Stack 및 Activity의 전체 Life Cycle을 관리
    • ContentProvider : 서로 다른 Apps간의 데이터를 공유( Permission 및 URI 사용)
    • Service : UI와는 상관없이 긴 시간 동안 실행 되어야 하는 코드
    • BroadcastReceiver : 단말기의 이벤트 발생이나 메시지를 앱에 Broadcast 업무를 담당
    • Intent

CBD 개발 시 플랫폼 조건

  • 프로그램을 각각의 독립적인 컴포넌트로 구성하고 이를 바탕으로 전체 프로그램을 구성
    • Declarative Development(선언적 개발)
      • 프로젝트에서 자원과 코드를 분리
      • UI/UX, Animation, string, file등 code를 제외한 모든 것을 Resource
    • Late Binding & Runtime Behavior
      • 프로젝트내의 해당 컴포넌트가 실제 사용자가 원할 때 동작
      • Activity, Service, BroadcastReseiver 등

Android Project 기본구조

  • /kotlin/com.pyo.xml/MainActivity.java

  • Android 코틀린 코드가 놓여 지는 곳

  • AndroidManifest.xml 는 전체 안드로이드 프로젝트의 Meta 정보가 선언되어 있다

  • build.gradle.kts

    • Project build.gradle.kts
      • 모듈이 여러 개 존재할 때 모든 모듈에 공통적 환경으로 구성하여야 함(앱에 하나만 존재)
    • Module build.gradle.kts
      • 하나의 앱에 모듈이 여러 개 존재 할 경우 모듈별로 존재 해야함
  • ct+alt+sh+s : Project Structure 단축키

    • 원하는 모듈 검색하여 모듈 추가

  • Application API 파일

Activity

  • 사용자와의 인터액션을 담당
    • 고유의 Life Cycle를 갖는다
    • Activity 하나는 Window객체 하나(Dialog 포함)를 갖는다.
    • layout(XML) 파일 및 Activity or Fragment 안에서 직접 코드로 구성
  • XML Layout 객체화 과정(inflation) -> Tree 구조
  • AppCompatActivity와 Binding
    • MainActivity : AppCompatActivity()
      • 기본 Activitydp Theme, Mene, 주 화면 등을 배치할 수 있는 Activity
    • ViewBinding
      • 뷰바인딩 클래스의 이름은 XML파일의 이름을 카멜 표기법으로 변환하고 끝에 Binding을 추가하여 생성

Resource

  • 자원과 프로그램 운영을 분리하여 개발
  • res 폴더에서 관리
    • res
      • aapt에 의해 참조 변수 생성
      • 단순 자원 및 복ㅎ바 자원으로 분리 됨
      • 고유의 고정된 디렉토리가 존재
  • src 폴더를 제외한 모든 폴더는 자원관리를 위해 존재
  • 원본(raw) 자료 파일은 raw또는assets폴더에 저장
    • assets
      • 참조변수가 생성되지 않고 원본 그대로 배포
      • 보통 용량이 큰 데이터를 의미
  • packageName.R.java 라는 자원관리 클래스 사용

0개의 댓글