안드로이드 4대 Component를 공부해봤다.

kim hyun woo·2022년 7월 13일
1
post-thumbnail

안드로이드의 개발자가 꿈이라면 알아야 할 필수 지식!!
그래서 나도 매번 공부하지만 공부 할 수록 이해가 더 잘되는 느낌이다.. 기분탓인가ㅎㅎ;


우선 첫번째 가장 흔하게 알고있는 컴포넌트!!..

1. 액티비티(Activity)

사용자가 애플리케이션과 상호작용을 하는 단일화면으로 모든 안드로이드 애플리케이션은 액티비티로 이루어져 있다.

즉, 사용자와 상호작용을 담당하는 인터페이스이다.
반드시 하나 이상에 액티비티가 존재하며 생명주기(Life Cycle)의 메소드를 재정의 하여 원하는 기능을 구현 할 수있다.

생명주기(Life Cycle)은 다음시간에 공부할 것이다..!!

  • 인텐트(Intent)으로 다른 액티비티 호출 할 수 있다.
  • 2개 이상의 액티비티를 동시에 Display 할 수 없다.

2개이상의 액티비티를 동시에 띄우기 위해서
여기서 프래그먼트라는 중요한 개념이 나온다.
프래그먼트는 다다음 시간에 공부할 것이다.(좀어려움;)


2. 서비스(Service)

요놈은 별도에 UI(User Interface)가 필요 하지 않는다.
즉 백그라운드에서 실행되는 컴포넌트이다.
예를 들면 멜론이란 어플을 실행시키면 멜론을 액티비티에 보일때만 음악이 실행된다면 정말 끔찍할 것이다.
그렇기때문에 음악실행이란 작업을 백그라운드로 넘겨주고 액티비티를 나가도 실행되게끔 해주는 것이다.!!

서비스의 종류에는 백그라운드, 포그라운드, 바운드 그라운드가 있다.

그리고 서비스는 메인쓰레드에서 작동하기 때문에 서비스내에 별도에 쓰레드를 생성하여 작업해줘야된다. 그렇게 해야 메인쓰레드가 사용자와 ANR없이 상호작용을 할 수 있다.


3. 방송 수신자(Broadcast Receiver)

단어를 직역하자면 방송을 수신한다? 라는 의미이다.
무슨뜻일까... 아마도 방송을 보내는건 os담당이고 수신하는 건 지금 이 컴포넌트 인 거 같다. 아닌감;

그럼 os에서 무엇을 보내주는가..
흠 예를 들면 핸드폰으로 영상을 보는데 배터리가 거의 다 써버렸다. 이 경우 만약 핸드폰이 배터리부족!! 충전바람 이러한 알림을 안준다면 사용자는 핸드폰은 계속 영화를 볼 것이고 핸드폰은 삶을 마감할 것이다. ㅠㅠ
이러한 특수한 상황을 대비하여 os에서 각종 이벤트때 마다 알림을 주고 이것을 핸들링 하는 컴포넌트이다.


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

Content Provider은 앱 자체적으로 저장된 데이터를 관리하거나 다른 앱의 데이터를 제공하고 엑세스 접근관리를 도와주는 역할이다.

앱 사이에 데이터를 공유하기 위해 인터페이스를 제공한다.
데이터 캡슐화와 데이터 보안처리등 다양한 필수 기능들을 제공하기 때문에 데이터 공유를 보다 안전하게 할 수 있다는 장점이 있다.

다른앱이 현재 실행중인 앱의 DB에 접근 못하게 할 수도 있으며 내가 원하는 부분만 공개할 수 있게 해준다.


번외 인텐트(Intent)

요놈은 인텐트란 컴포넌트간에 작업 수행을 위해 정보를 전달하는 통신수단이다.!! 흔히 사용하는 것 중 화면 전환이 있다. 정보를 전달해주기도 하며 결과값을 받을 수도 있다.

나중에 더 깊게 다루기로 하자..!

profile
TIL(Today I Learned)

0개의 댓글