본문 바로가기

해킹-보안/모바일

안드로이드 앱 개념 정리(4대 컴포넌트, Lifecycle)

반응형

 

ி 앱 기본 항목

 
  • Android OS는 멀티유저 Linux 시스템
  • 시스템이 각 앱에 고유한 Linux ID를 부여함
  • 두 개앱이 Linux ID가 공유되도록 설정되면 서로 파일 액세스 가능(리소스 절약됨), 대신 같은 인증서로 서명해야함.
  • Android 시스템은 최소 권한의 원리를 구현(필요한 액세스 권한만 요구)
  • Android 패키지는 접미사가 .apk인 아카이브 파일


ி 앱 구성 요소

 

4대 컴포넌트

 
  • 액티비티: 화면에 보여지는 구성 요소(UI)로서 하나의 화면이자 실행 단위
  • 서비스: 백그라운드에서 앱을 계속 실행하기 위한 구성 요소
ex) 음악 재생
  • Broadcast Receiver: 디바이스에서 발생하는 이벤트 신호를 받아 처리하는 역할
ex) 알람, 배터리 부족
  • 콘텐츠 제공자: 다른 앱이 현재 앱 정보에 접근할 수 있도록 도와주는 컴포넌트
ex ) 뮤직 플레이어



인텐트(Intent)

 
  • 컴포넌트간 통신을 담당
  • 다른 구성 요소로부터 작업을 요청하는 역할
  • Intent 통신 방법은 두가지(명시적, 암시적)

명시적 Intent
  • 가장 흔하게 보이는 방법으로 앱의 화면 전환 시 사용(하나의 액티비티에서 다른 액티비티로 화면 전환)

암시적 Intent
  • Intent의 액션에 따라 해당하는 적합한 애플리케이션의 클래스를 호출
  • 웹 브라우저 호출, 이메일 전송, 전화앱 통화 등
 

매니페스트 파일

 
  • 앱의 메인 환경 파일로서 앱을 구성하는 요소, 사용자 권한 등록 등이 등록됨
  • Android 시스템에서 우선적으로 실행되는 파일
  • 이 파일은 앱 프로젝트 루트 디렉터리에 존재

리소스

 
  • 해당 앱 동작 시 사용하는 문자열/이미지/오디오/동영상 등을 소스코드가 아닌 리소스를 통해 구현 가능하게 함
  • /res 디렉토리 안에서 관리됨



ி 생명 주기

 
  • 앱 최초 실행부터 종료되기까지 앱이 가지는 상태
  • 앱이 foreground나 background에 있을 때 시스템 알림에 응답하고 기타 중요한 시스템 관련 이벤트를 처리하는 단계
ex) 은행 앱 같은 보안이 중요한 앱의 경우 로그인을 일부러 다시 하도록 하는 등의 처리


수명주기(lifecycle 콜백

 
onCreate(): 액티비티 생성 시 호출
onStart(): 액티비티가 뜨기 전 호출
onResume(): 액티비티가 뜨고 동작하기전 호출
onPause(): 다른 액티비티가 보여질 때 호출
onStop(): 액티비티가 더 이상 안보일 때 호출
onDestroy(): 액티비티 소멸 시 호출

  • onPause()는 데이터 저장을 위해 주로 사용, 게임 중 전화가 온 경우 게임을 재게했을 때 원래 하던 곳부터 진행될 수 있도록 데이터를 sharedpreferences를 사용하여 저장, onResume()에서 저장한 데이터들을 복원해 진행됨
  • onStop() 상태에서 앱 재실행 시 onRestart()를 거쳐 다시 onStart 생명 주기로 이동
  • onDestroy()는 finish() 메소드 호출 혹은 메모리 확보를 위해 액티비티 제거 시 호출

※ 참고

1. 안드로이드 4대 컴포넌트
https://developer.android.com/guide/components/fundamentals?hl=ko

2. 안드로이드 lifecycle
https://developer.android.com/guide/components/activities/activity-lifecycle?hl=ko

반응형