Android 개념 정리 - 2 (Activity 4대 컴포넌트, 명시적 Intent & 암시적 Intent, ANR, ContentResolver & ContentProvider, dp & sp & px, Process & Thread, Context & ApplicationContext & ActivityContext)

2022. 2. 1. 16:50Android/깨알 개념 정리

 

Android 4대 컴포넌트

Activity

- application의 화면 구성 컴포넌트 

- 이동시 스택 구조로 쌓임 

Service

- application의 background로 실행되는 컴포넌트

- 화면이 없음, 네트워크 통신, DB 통신 

BroadCast Receiver

- application에서 특정한 이벤트를 받아 반응하는 컴포넌트 

- 관심 있는 이벤트가 발생할 시 이러한 브로드 캐스트가 전송 

- 정적 브로드캐스트란 매니패스트에 등록하여 사용

- 동적 브로드캐스트란 콘텍스트에 등록하여 사용

Content Provider

- application내에서 사용할 수 있는 데이터를 공유하기 위한 컴포넌트

- 중앙 저장소의 역할 & 액세스 관리

- 생명주기 없음, 다른 앱의 데이터 변경 가능,  데이터베이스(Sqllite), 파일 입출력, Web 등을 이용할 때 사용

 

 

명시적 Intent & 암시적 Intent

명시적 Intent

- Intent에 클래스나 컴포넌트 이름을 명시, 호출할 대상을 명확히 알 수 있는 것

암시적 Intent

- 호출할 대상이 바뀔 수 있는 경우

 

싱글톤 패턴 

개념

- 생성자가 여러 차례 호출되더라도 실제로 생성되는 객체는 하나이고 최초 생성 이후에 호출된 생성자는 최초의 생성자가 생성한 객체를 리턴하는 디자인 패턴

특징

- 어떤 클래스가 오직 하나임을 보장, 전역적인 디자인 패턴, 메모리를 효율적으로 사용함

- kotlin 의 object는 싱글톤 패턴임 

 

ANR (application not response)

개념

- 메인스레드가 일정 시간 어떤 작업에 잡혀 있을 때 발생함

해결 방법

- 메인스레드가 아닌 다른 스레드에서 처리 or progressbar 

 

ContentResolver & ContentProvider

ContentProvider

- application내에서 사용할 수 있는 데이터를 공유하기 위한 컴포넌트

ContentResolver

- ContentProvider에 접근하기 위한 수단 

 

dp & sp & px 

dp

- 픽셀의 독립 단위, 화면 크기가 달라져도 동일한 비율로 보여줌

sp

- UI 레이아웃 정의 시 텍스트 크기를 지정하기 위해 사용(시스템 설정에 영향을 받음) 

px

- 스크린 실제 단위

 

Process & Thread

Process

- 운영체제로부터 시스템 자원을 할당받는 작업의 단위

Thread

- 하나의 Process 내에서 할당받는 자원을 공유하며 실행되는 독립된 단위, 다중 thread 실행 가능 

 

Context & ApplicationContext & ActivityContext

Context

- 현재 사용되고 있는 application의 포괄적인 적보를 지닌 객체 

ApplicationContext

- application의 lifecycle을 가지며 application의 실행 ~ 종료까지 동일한 정보를 가짐

ActivityContext

- activity의 lifecycle을 가지며 onDestory 될 때 사라짐