반응형

 이미 진행중인 회사 프로젝트는 작업해둔 안드로이드 파일이 존재한다.

그래서 그 아이를 먼저 이해하고 새로운 기능을 추가하려고한다.

그러기위해 기본적인 흐름을 이해해보고자 기본 구성과 기능을 알아보려고한다.

공식사이트: https://developer.android.com/guide/components/fundamentals

 

              App component              

  • Activities
  • Services
  • Broadcast receivers
  • Content providers

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=myshyz&logNo=50133779484

이 component 들이 생성이되고, destroyed 되는지 알아보자!

              Activities              

 

- 사용자와 애플리케이션과 상호작용을 담당하는 인터페이스 +  entry point!
- 애플리케이션은 반드시 하나 이상의 액티비티를 포함하고 있음
생명주기(Life Cycle) 관련 메서드들을 재정의하여 원하는 기능 구현 가능
- Activity 내에 Fragment를 추가하여 화면을 분할 가능

 

             Service             
- 백그라운드(Background)에서 어떠한 작업을 처리
- 메인 Thread 에서 동작하기 때문에 서비스 내에서 별도의  Thread를 생성하여 처리 필요
- Background에서 수행되기때문에 별도의 UI를 가지지 않음
- 애플리케이션이 종료되어도 이미 시작이 된 Service는 Background 에서 계속 동작
- 예) 
모바일 게임을 하는 중에 동시에 유튜브 앱을 사용할 때

 

             BroadCast Receiver (방송 수신자)             
- 안드로이드 OS로부터 발생하는 각종 이벤트와 정보를 받아와 핸들링
- 사용자 디바이스의 네트워크 끊김 등 특수한 이벤트에 대한 처리때 동작
- 알림, 문자 수신 정보를 받아 처리를 해야할 때 동작
- 대부분 UI를 가지지 않음
- 안드로이드 디바이스의 특수한 상황에 대응하기 위해 사용됨
- 예) 메신저앱에서 메시지가 오면 모든 앱에 "메시지가 왔다"라는 하나의 정보를 BroadCase함
                     Content Provider (콘텐트 제공자)                     
- 데이터를 관리하고 다른 애플리케이션의 데이터를 제공하는데 사용
- 애플리케이션이 사용하고 있는 DB를 공유하기 위해 사용
- 애플리케이션 간의 데이터 공유를 위해 표준화된 인터페이스 제공
- 작은 데이터들은 Intent 로 애플리케이션끼리 데이터를 서로 공유 가능하지만, 용량이 큰 데이터를 공유할 때는 Content Provider 가 적합함
- 데이터의 Read(읽기), Write(쓰기)에 대한 permission (허용)이 있어야 애플리케이션에 접근이 가능

 

             Intent (인텐트)             
- 애플리케이션 컴포넌트(구성요소) 간에 작업 수행을 위한 정보를 전달하는 역할 즉, 통신수단
- 액티비티 간의 화면 전환(이동) 에 가장 많이 사용
- 서로 독립적으로 동작하는 4가지 컴포넌트들 간의 상호 통신을 위한 장치

참조: https://velog.io/@jojo_devstory/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-Android-4%EB%8C%80-%EC%BB%B4%ED%8F%AC%EB%84%8C%ED%8A%B8

반응형

+ Recent posts