동작 원리

Anna·2024년 6월 18일

[TIL]Android

목록 보기
21/34
post-thumbnail

안드로이드 4대 구성 요소

  • 4대 요소들을 통합 관리하는 번들 개념
    • 안드로이드 어플리케이션 자체가 독립적인 실행 파일이 아니고
    • 각각 독립적인 실행 단위들이 통합 관리하는 번들 개념
    • 자신들이 실행 될 상황이 되면 실행이 되면서
    • 개발자가 만든 코드를 동작 시키게 됨.
  • 안드로이드가 어떠한 시점이 되면 그거에 맞는 클래스의 객체를 생성해서 자동으로 메소드를 호출하게 된다.

개념

Activity

눈에 보이는 화면을 관리하는 실행 단위

눈에 보이는 화면이 실행될 때 안드로이드 OS가 객체를 생성 → 메서드를 호출

Service

화면을 가지지 않은 실행 단위, 백그라운드 프로세싱

백스라운드 프로세싱을 발생 시켜야 될 때 이 클래스의 객체를 생성 → 메서드 호출

Broadcast Receiver (브로드캐스트 리시버)

OS가 메세지를 받으면 실행되는 실행 단위 (배터리 부족 등)

어떠한 사건이 발생하게 되면 그 사건과 관련이 있는 객체를 생성 → 메서드 호출

Content Provider (프로바이더)

저장된 데이터를 제공하기 위해 실행되는 실행 단위

다른 어플리케이션이 사용하기 위해 요청할 때 객체 생성 → 메서드 호출

👀 정리

이것들 자체가 독립적인 실행 단위라고 하기보단 그냥 클래스로 존재하고, 안드로이드 OS가 필요할 때 각각 클래스들의 객체를 생성해서 메소드를 호출한 후 개발자가 만든 코드를 동작 시킨다.


프로젝트 구조

AndroidManifest.xml

안드로이드 애플리케이션에 관련된 설정 파일

Java

개발자가 작성하는 소스 코드

res

이미지, 사운드, 데이터 등 애플리케이션에서 필요한 리소스


애플리케이션 설치

  • 제작된 애플리케이션은 apk라는 파일로 압축되어 마켓에 등록
  • apk 파일을 단말기에 다운로드하게 되면 자동으로 설치가 이루어진다
  • 안드로이드 OS는 설치가 완료되면 AndroidManifest.xml 파일의 내용을 분석하게 된다.
  • 여기에서 안드로이드 4대 구성요소 중 어떤 것들이 있는지 파악하여 이를 정리하게 된다.

애플리케이션 실행

AndroidManifest.xml

  • 안드로이드 애플리케이션이 실행되면 안드로이드 OS는 처 번째 화면을 사용자에게 보여주려고 한다.
  • AndroidManifest.xml 에 있는 여러 구성 요소중에서 activity를 찾는다.
  • intent-filter 일단은 이름 설정해주는 애로 알고 있으면 됨.
  • <action android:name="android.intent.action.MAIN" />
    • 이 activity를 찾는다.
    • 똑같은 intent-filter 가 등록된 activity가 여러개 있으면 → 가장 위에 있는 activity로 인식
    • 딱 하나만 등록되서 사용되어질 수 있는 이름
  • <activity android:name=".MainActivity"
    • MAIN이 등록 되어 져있는 activity를 찾아서
    • name 속성에 있는 MainActivity 이 문자열 속성을 읽어 온다(클래스의 이름이다. )
    • 그것이 첫 번째 화면을 관리하는 activity 클래스다
  • MainActivity 클래스를 찾아 → 객체 생성 → onCreate 메서드 호출

MainActivity

  • activity의 name속성의 클래스의 객체를 생성한 후 onCreate메서드를 호출
  • setContentView 메서드에 관리할 화면을 지정하는 res폴더의 layout에 있는 xml 파일을 지정하게 됨.
  • 이를 통해 화면을 구성하고 단말기 화면에 나타나게 됨.

0개의 댓글