kang9366
Repository
kang9366
글쓰기
설정
전체 방문자
오늘
어제
  • 분류 전체보기 (143)
    • Programming (70)
      • Java (1)
      • C++ (11)
      • Kotlin (12)
      • Keras (2)
      • Android (34)
      • Jetpack Compose (1)
      • Error Solution (7)
    • CS (36)
      • 자료구조 (13)
      • 운영체제 (1)
      • 알고리즘 (4)
      • 컴퓨터 보안 (8)
      • 기타 (10)
    • Data Science (28)
      • 데이터분석 (7)
      • 머신러닝 (14)
      • 딥러닝 (7)

인기 글

최근 글

최근 댓글

Github · Instagram · Facebook
kang9366

Repository

[Android] 안드로이드 4대 구성요소
Programming/Android

[Android] 안드로이드 4대 구성요소

2022. 6. 17. 09:45

안드로이드의 주요 4대 주요 구성요소는 Activity, Service, Broadcast Receiver, Content Provider를 말한다.
(안드로이드 3.0 이후부터는 fragment도 안드로이드 애플리케이션의 핵심 컴포넌트로 봐도 무방할 정도로 매우 활용도가 높다.)

 

  • 각 컴포넌트들은 하나의 독립적인 형태로 존재한다.
  • 각 컴포넌트들은 고유의 기능을 수행한다.
  • 각 컴포넌트들은 intent를 통해 서로 상호작용한다.

Activity

Activity는 사용자 인터페이스 화면을 관리하는 컴포넌트이다. Activity 역할을 하기 위해서는 Activity 클래스를 상속해야 하며, Activity가 기본적으로 가지고 있는 생명주기 메소드를 재정의해서 원하는 기능을 구현해야 한다.


Service

Service는 백그라운드에서 오래 실행되는 작업을 수행할 수 있는 컴포넌트이며 UI를 제공하지 않는다. 

다른 어플리케이션 컴포넌트가 서비스를 실행할 수 있으며, 사용자가 또 다른 어플리케이션으로 전환하더라도 백그라운드에서 계속해서 실행된다. 컴포넌트를 서비스에 바인드하여 서비스와 상호작용할 수 있으며, IPC도 수행할 수 있다. 

서비스는 앱에서 오직 1개의 인스턴스만을 생성할 수 있다는 특징이 있다.


Broadcast Receiver

스마트폰 안에서는 굉장히 많은 일들이 벌어지고 있다. 배터리가 부족해질 경우가 있고, SMS 메시지가 도착하는 경우도 있고, 전화가 오는 경우도 있고, 스크린 화면이 꺼지는 경우도 있다. 이러한 일들을 개발자가 항상 확인해야 한다고 하면, 너무나 비효율적이고 어려운 작업이 될 것 이다. 

그래서 안드로이드에서는 BroadCastReceiver 라는 방송알림 기능을 제공하고 있다. 어떠한 특정 작업(방송)이 벌어질 경우. 그것을 받고자 하는 곳에 알려주는 기능을 하는 컴포넌트이다.


Content Provider

Content Provider는 다른 애플리케이션의 데이터에 접근이 필요할 때 사용하게 되는 컴포넌트이다. 일반적으로 각 앱은 하나의 프로세스로 실행되며 자신의 프로세스에서 사용하는 데이터는 자신만 접근가능하도록 되어 있지만 Content Provider를 이용해 어플리케이션 사이에서 데이터를 공유할 수 있다. 

예를 들어 사진첩에 있는 사진들을 가져오거나 연락처에 있는 연락처 정보들을 가져와야할 경우가 있는데 이 때 사진 앱에는 ContentProvider가 구현되어 있어 해당 앱의 데이터를 나의 앱에서 사용할 수 있도록 통로를 제공해준다.

 
저작자표시 비영리 변경금지 (새창열림)

'Programming > Android' 카테고리의 다른 글

[Android] Conent Provider  (0) 2022.06.23
[Android] Activity  (0) 2022.06.20
[Android] Resouce  (0) 2022.06.17
[Android] 뒤로가기 두번 눌러서 앱 종료  (0) 2022.06.16
[Android] EditText  (0) 2022.06.16
    'Programming/Android' 카테고리의 다른 글
    • [Android] Conent Provider
    • [Android] Activity
    • [Android] Resouce
    • [Android] 뒤로가기 두번 눌러서 앱 종료
    kang9366
    kang9366

    티스토리툴바