App_Dev/Android

[ 앱 개발자 도전기 : 안드로이드 ] 안드로이드 4대 컴포넌트 정리.

안다미로 : Web3 & D.S 2024. 11. 7. 00:00

 

 

 

 

 

[ 앱 개발자 도전기 : 안드로이드 ] 안드로이드 4대 컴포넌트 정리.

 


 

∇ 안드로이드 4대 컴포넌트란

목   차

1. 안드로이드 4대 컴포넌트란?
2. 액티비티(Activity)
3. 서비스(Service)
4. 방송 수신자( Broadcast Receiver )
5. 콘텐츠 제공자 ( Content Provider )

 

 


 

1. 안드로이드 4대 컴포넌트란?


  " 컴포넌트 "  == " 구성 요소 "

 

           ※  " 안드로이드의 4대 컴포넌트란 " ,  안드로이드 앱을 구성하는데에 필요한 4개의 요소를 의미합니다. 

 

           § 안드로이드 4대 컴포넌트의 종류

                   ⓐ 액티비티( Activity )

                   ⓑ 서비스( Service )

                   ⓒ 방송 수신자( Broadcast Receiver )

                   ⓓ 콘텐츠 제공자 ( Content Provider )

 

            @ Android 앱의 필수적인 구성요소들로,   각각은 시스템이나 앱에 들어올 수 있는 진입점의 역할을 수행합니다.

 

 

          § 컴포넌트의 특징.

                   ○ 각 컴포넌트는 독립적으로 존재합니다.

                   ○ 각 컴포넌트는 고유의 기능을 수행합니다.

                   ○ 각 컴포넌트는 인텐트를 통해서 서로 상호작용합니다.

 

 

 


2. 안드로이드 : 액티비티 ( Activity )


    ※ 사용자와 상호-작용을 담당하는 인터페이스 !

 

           - > 앱을 실행할 때는 앱을 전체적으로 호출하는 것이 아니라, 앱의 액티비티(Activity)를 호출합니다.

           

            ++ Activity는 생명주기(Life Cycle) 관련 메서드들을 재정의하여, 원하는 기능들을 구현 가능합니다.

 

 

                   √ 액티비티는 사용자가 Application과 상호-작용하며, 실제로 사용자에게 보이는 화면을 의미. !

 

                   √ 액티비티는 인탠트(Intent)를 통해 다른 Application의 액티비티를 호출할 수 있음.

 

                   √ 2개 이상의 액티비티를 동시에 Display  가능 . !

 

                   √ 1개 이상의 View(텍스트, 버튼, 이미지 ) 또는 ViewGroup(레이아웃)을 포함. !

 

                   √ 반드시 Application에는 하나 이상의 액티비티가 있어야 함.

 

                   √ 액티비티 내에 프래그먼트(Fragment)를 추가하여, 화면을 분할 가능 !

                       

 


3. 안드로이드 : 서비스 ( Service )


    ※ " 서비스 " 는 액티비티와는 반대로,  유저와 직접적으로 상호작용하는 요소는 아닙니다.

               다만, '백그라운드(Background)에서 특정 작업을 처리하기 위해서 주료 사용합니다.

 

 

                   √ Application이 종료되더라도,  Background에서 동작하는 컴포넌트입니다.

                          -> ex) 음악 앱 == > 앱을 내려도, 음악은 계속 재생.

                          ->  ex) 타이머 앱 == > 앱을 내려도, 타이머 시간은 계속 흘러감.

                       == > 즉 ! 앱을 화면에서 내리더라도, 이미 시작된 서비스는 '백그라운드'에서 계속 동작.

                                        

 

                   √ 포그라운드 서비스 

                        : 사용자에게 잘 보이는 작업.

                        : 포그라운드 서비스의 경우, 반드시 알림을 표시해야 하며, 

                              사용자가 앱과 상호작용하지 않을 때도 계속 실행됨.

 

                   √ 백그라운드 서비스 : 사용자에게 직접 보이지 않는 작업.

 

                   √ 네트워크(Network)와 연동이 가능합니다.

 

                   √ Activity(액티비티) 와 Service(서비스)는 UI스레드(메인스레드) 라고 불리는 동일한 앱 스레프로 실행됩니다.

 

                   √ 앱이 ' API 26 '  이상을 대상으로 할 경우

                                - > 즉시 실행해야 하는 작업 : Work Manager

                                - > 지연 작업 : Alarm Manager

 

                   √ 바인드 서비스 

                          : 앱 컴포넌트가 bindService를 호출하고,  서비스를 호출하면 서비스가 바인딩 됨.

                                   - 바인딩 된 서비스는 " 클라이언트-서버 인터페이스 "를 제공해 서비스와 상호 작용.

                                   - 여러개가 한꺼번에 바인딩 될 수 있고, 바인딩 된 컴포넌트가 모두 종료 되면 서비스도 종료.

 

 

              

 


4. 안드로이드 : 방송 수신자( Broadcast Receiver )


    ※ " 방송수진자(Broadcast Receiver)

           안드로이드 OS로부터 발생하는 각종 이벤트와 정보를 받아서 핸들링하는 컴포넌트입니다.

 

 

            - > 안드로이드 디바이스의  " 특수한 상황 " 에 대응하기 위해서 사용됩니다.

                       == 특수한 상황이란?

                                : 시스템 부팅시 앱 초기화 , 네트워크 끊김같은 특수한 상황에 대한 처리, 배터리 부족 알림,

                                   문자 수신 같은 정보를 받아서 하는 처리.

 

                  ◎ 거의 대부분 UI를 가지지 않습니다. 

                          - 수신기를 통해 디바이스 상황을 감시하다가 이벤트가 발생하면

                              해당 이벤트에 맞게 정의한 작업들을 수행하는 역할을 합니다.

 

                          - 특정한 상황을 제외하고는 브로드캐스트는 시스템에서 시작됩니다.

 


 

5. 안드로이드 : 콘텐츠 제공자 ( Content Provider )


 

   ※ 콘텐츠 제공자는

       데이터를 관리하고 다른 Application의 데이터를 제공하는데 사용되는 컴포넌트입니다.

 

            = > 특정한 Application이 사용하고 있는 DB를 공유하기 위해 사용하며

                       애플리케이션 간의 데이터 공유를 위해 표준화된 인터페이스를 제공. !

 

 

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

 

      ● 외부 어플리케이션이 현재 실행중인 Application 내에 있는 데이터베이스에 함부로 접근하지 못하게 할 수 있으며,

              자신이 공개하고 공유하고 싶은 데이터만 공유할 수 있도록 도와줍니다.

 

      ● 작은 데이터들은 인텐트(intent)로 Application끼리 데이터를 서로 공유가 가능하지만, 

             Content Provider는 음악 또는 사진 파일 등과 같이 용량이 큰 데이터들을 공유하는데 적합합니다.

 

      ● 프로바이더는 데이터의 Read, Write에 대한 퍼미션이 있어야 Application에 접근이 가능.

 

      ● 데이터베이스에서 흔히 사용되는 CRUD 원칙을 준수합니다.