본문 바로가기
이과/JAVA 안드로이드

[안드로이드] 4대 컴포넌트에대한 이해

by 코딩초밥 2021. 5. 1.
반응형

안녕하세용!! 코딩 초밥입니다! ㅇㅅㅇ

요번에는 4대 컴포넌트에 대한 이해에 대해 알아볼께용😊

 

1.액티비티(Activity)

2.서비스(Service)

3.방송 수신자(Broadcast Receiver)

4.콘텐트 제공자(Content Provider)

각 컴포넌트들은 하나의 독립적인 형태로 존재합니다! 부끄러운가봐요!

각 컴포넌트들은 고유의 기능을 수행하는데 인텐트(intent)를 통해서 서로 상호작용할수 있습니당.

 

1. 액티비티 (Activity)

Activity 클래스를 상속받아서 사용하며 UI(user interface) 화면을 구성하는 요소입니다.

엑티비티란 사용자와 애플리케이션과 상호작용하는 단일화면을 말합니다.(액티비티 2개 이상 display 불가능)

모든 안드로이드 애플리케이션은 액티비티로 구성되어있습니다.

사용하려면 무조건 manifest에 파일 선언이 필수이며 사용할때 액티비티는 생명주기(Life cycle)를 사용하여

재정의후 원하는 기능들을 새롭게 건축할수있습니다.

 

2.서비스(service)

Service 클래스를 상속받아서 사용합니다.

장시간으로 지속적으로 background에서 실행되는 컴포넌트입니다.

애플리케이션을 사용하면서 유투브나 음원 스트리밍 앱에서 재생하고 다른 앱을 실행해도

노래가 지속적으로 재생되는걸 생각하시면됩니다! 고게 바로 서비스 기능!

서비스는 메인스레드에서 동작하기때문에 서비스 내에서

별도의 쓰레드를 생성하여 작업을 처리해야합니다.

 

3.방송수신자(Broad Receiver)

방송 수신자는 안드로이드 os로부터 발생하는 각종 이벤트에 따라 원하는 작업을 수행할수있습니다

배터리 부족, 언어설정 변경, 문자수신,네트워크 끊김, 앱 초기화 등등

배터리가 없다면 모든 앱에 '배터리가없다!'라는 방송을 합니다.

문자 수신도 동일합니다 문자를 받는다면 그 문자를 받고 브로드캐스트 리시버를 구현하면

특정 이벤트를 처리할수있습니다.

 

4.콘텐츠 제공자( Content Provider)

애플리케이션 사이에서 각 데이터를 공유할수 있도록 사용되는 컴포넌트입니다

데이터베이스(DB)를 공유하기 위해 사용하며 애플리케이션 간의

데이터 공유를 위해 표준화된 인터페이스를 제공합니다.

SQLite DB , Web ,파일 입출력 등을 통해서 데이터를 관리합니다.

기본적으로 내장되있는 DB를 읽고 쓰기에 대한 퍼미션만있다면 데이터 접근이 가능합니다

반대로 이야기하자면, 외부 애플리케이션이 현재 실행 중인 애플리케이션 안에 있는 데이터베이스(DB)에 함부로 접근하지 못하게 할 수 있으면서 내가 공유하고싶은 부분은 공유해줄수있게 합니다.

반응형

댓글