티스토리 뷰

안드로이드 4대 컴포넌트

  • 안드로이드 앱은 독립된 형태로 존재하며, 고유의 기능을 수행하는 Component(컴포넌트)로 구성되어있다
  • Activity, Service, Broadcast Receiver, Content Provider 4가지 유형으로 존재한다
  • 각 컴포넌트는 Intent를 통해 서로 상호작용한다

✔️ Activity (액티비티)

  • UI를 담당하는 컴포넌트이며 사용자와의 상호작용을 담당한다
  • 모든 안드로이드 어플리케이션은 반드시 하나 이상의 Activity를 가진다
  • LifeCycle 메소드를 재정의하여 원하는 기능을 정의할 수 있다
  • 각 Acitivity는 Manifest에 등록되어 있어야 한다
  • 하나 이상의 view 또는 ViewGroup을 가질 수 있다
  • 두 개의 Activity를 동시에 화면에 보이게 할 수 없다
  • Activity 안에는 Fragment를 붙혀 화면을 분할할 수 있다

✔️ Service (서비스)

  • 백그라운드에서 실행되는 작업을 위한 컴포넌트로, 오랫동안 실행되는 작업이나 원격 프로세스 작업을 수행하기 위해 사용한다
  • UI를 가지지 않는다
  • 한 번 시작된 서비스는 앱이 종료되어도 계속 백그라운드에서 동작한다
  • 모든 서비스는 Service의 하위 클래스로 구현된다
  • 네트워크와 연동하여 데이터를 가져올 수 있다
  • Activity와 Service는 동일한 어플리케이션 스레드인 UI 스레드에서 실행된다
  • ex) 스트리밍 앱에서 음악을 백그라운드로 재생, 다른 작업을 수행하며 파일 다운로드 진행

✔️ Broadcast Receiver (방송 수신자)

  • 안드로이드 OS에서 발생하는 다양한 이벤트 정보를 받아 반응하는 컴포넌트이다
  • 수신기를 통해 디바이스의 상황을 감지하고 적절한 작업을 수행한다
  • 대부분 UI를 가지지 않는다
  • BroadcastReceiver의 하위 클래스로 구현된다
  • 대다수의 브로드캐스트는 서비스에서 발생한다  ex) 배터리 부족 알림, 캡쳐 알림, 시스템 부팅, 문자/전화 수신
  • 앱도 브로드캐스트를 시작할 수 있다  ex) 다른 앱에서 기기에 데이터 다운로드를 완료했다는 알림

✔️ Content Provider (콘텐츠 제공자)

  • 데이터를 관리하고 다른 어플리케이션 데이터를 제공하는 컴포넌트이다
  • 특정 어플리케이션이 가지고 있는 DB를 공유하기 위해 사용하며 표준화된 인터페이스를 제공한다
  • 파일 시스템, SQLite 데이터베이스, 웹상에 저장된 데이터를 관리한다
  • 콘텐츠 제공자를 이용해 다른 앱의 데이터를 쿼리하거나, 허용할 경우 수정도 가능하다
  • 인텐트로 공유가능한 데이터 이외에 음악 또는 사진 파일과 같은 용량이 큰 데이터 공유에 적합하다
  • 콘텐츠 제공자가 앱에 접근하려면 Read, Write 권한이 필요하다

✔️ Intent (인텐트)

  • 위의 네가지 구성요소 중 Activity, Service, Broadcast Receiver 세가지는 비동기식 메세지인 인텐트로 활성화된다
  • 인텐트란 앱 컴포넌트가 무엇을 할 것인지 액션과 데이터를 전달하는 메세지 객체이다
  • Activity 활성화
    • startActivity() 또는 startActivityForResult()로 Intent를 전달 
  • Service 활성화
    • 초기 안드로이드에서는 Intent를 startService()에 또는 bindService()에 전달
    • Android 5.0 (API 레벨 21) 이상에서는 JobScheduler 클래스를 사용하여 작업 예약
  • Broadcast Receiver 활성화
    • sendBroadcast(), sendOrderedBroadcast() 또는 sendStickyBroadcast() 등의 메소드에 Intent 전달
  • Content Provider 쿼리 수행
    • ContentResolver에서 query() 호출

 

App Manifest

  • 모든 어플리케이션의 루트에는 AndroidManifest.xml 파일이 존재한다
  • 매니페스트 파일에 안드로이드 시스템에 대해 다음과 같은 내용을 선언해야한다
    • 앱의 패키지 이름
    • 위의 4대 컴포넌트를 포함하는 앱의 구성요소 -> 각 파일 클래스의 이름과 같은 기본 속성과 인텐트 필터 등을 정의
    • 해당 앱에 필요한 액세스 권한
    • 앱에 필요한 소프트웨어 또는 하드웨어 기능
    • 앱이 링크되어야하는 API 라이브러리
    • 앱이 요구하는 최소 API 레벨

🕊참고자료

 

애플리케이션 기본 항목  |  Android 개발자  |  Android Developers

Android 앱은 Kotlin, Java, C++ 언어를 사용하여 작성할 수 있습니다. Android SDK 도구는 모든 데이터 및 리소스 파일과 함께 코드를 컴파일하여 하나의 APK를 만듭니다. Android 패키지는 접미사가 .apk인 아

developer.android.com

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함