728x90
1. Activity(액티비티)
- UI 화면(사용자와 상호작용)을 담당하는 컴포넌트
- 액티비티 역할을 하기 위해서는 자바소스에서 Activity클래스를 상속해야 하며 액티비티가 기본적으로 가지고 있는 생명주기 메소드를 재정의하여 원하는 기능을 구현하는 방식으로 제작합니다.
- 특징
- 안드로이드 어플리케이션은 반드시 하나 이상의 Activity를 가지고 있어야 합니다.
- 두개의 액티비티를 동시에 Display할 수 없습니다.
- 다른 어플리케이션의 액티비티도 불러낼 수 있습니다.
- 액티비티 내에는 프래그먼트(Fragment)를 추가하여 화면을 분할시킬 수 있습니다.
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
2. Service(서비스)
- 백그라운드에서 실행되는 프로세스
- 눈에 보이지 않는 곳에서 작업을 처리하기 때문에 별도의 스레드(Thread)에서 동작한다고 오해하는 경우가 많습니다. 하지만 서비스는 엄연히 메인 스레드에서 동작합니다.
- 특징
- 네트워크(Network)와 연동이 가능합니다.
- 별도의 UI를 가지지 않으며 백그라운드에서 수행됩니다.
- 액티비티와 서비스는 UI스레드라고 불리는 동일한 애플리케이션 스레드로 실행됩니다.
- 애플리케이션이 종료되어도 이미 시작이 된 서비스(Service)는 백그라운드(Background)에서 계속 동작합니다.
- 모든 서비스는 Service클래스를 상속받아서 사용합니다. - 예시
안드로이드 모바일에서는 애플리케이션을 사용하면서 유튜브 또는 멜론, 지니 등등 음원 스트리밍 앱을 사용한다던지 다른 작업을 하면서 파일을 다운로드할 때 서비스를 주로 사용합니다.
3. Broadcast Recevier(방송 수신자)
- 안드로이드 OS에서 발생하는 다양한 이벤트와 정보를 받아 핸들링하는 컴포넌트
- 브로드캐스팅은 메시지를 여러 객체에게 전달하는 방법을 의미하는데 이렇게 전달되는 브로드캐스팅 메시지를 방송수신자라는 어플리케이션의 구성요소를 이용해 받을 수 있습니다.
- 특징
- 디바이스에서 발생하는 일 중에서 어플리케이션이 알아야 하는 상황이 발생하면 알려줍니다.
- 수신기를 통해 디바이스의 상황을 감지하고 적절한 작업을 수행합니다.
- 대부분 UI가 존재하지 않습니다. - 예시
사용자 안드로이드 디바이스의 시스템 부팅시 앱 초기화, 네트워크 끊김 등등 특수한 이벤트에 대한 처리 혹은 배터리 부족 알림, 문자 수신과 같은 정보를 받아 처리를 해야 할 필요가 있을 때 동작합니다.
즉, 안드로이드 OS에서 메신저앱 또는 문자 메시지가 오면 모든 앱에 "메시지가 왔다"라는 하나의 정보를 방송(BroadCast)을 합니다.
이 메시지를 받기 위해 브로드캐스트 리시버를 구현하면 되며 해당 정보가 오면 특정 이벤트를 처리할 수가 있습니다.
4. Content Provider(콘텐트 제공자)
- 데이터를 관리하고 다른 어플리케이션 데이터를 제공해주는 컴포넌트
- 특정한 애플리케이션이 사용하고 있는 데이터베이스(DB)를 공유하기 위해 사용
- 애플리케이션 간의 데이터 공유를 위해 표준화된 인터페이스를 제공
- 특징
- 파일 입출력, SQLiteDB, Web등을 통해서 데이터를 관리합니다.
- 외부 애플리케이션이 현재 실행 중인 애플리케이션 내에 있는 데이터베이스(DB)에 함부로 접근하지 못하게 할 수 있으면서 나 자신이 공개하고 공유하고 싶은 데이터만 공유할 수 있도록 도와줍니다.
- 작은 데이터들은 인텐트(Intent)로 애플리케이션끼리 데이터를 서로 공유가 가능하지만 콘텐 프로바이더는 음악 또는 사진 파일 등과 같이 용량이 큰 데이터들을 공유하는데 적합합니다.
- 프로바이더는 데이터의 Read(읽기), Write(쓰기)에 대한 퍼미션이 있어야 애플리케이션에 접근이 가능합니다.
- 데이터베이스에서 흔히 사용되는 CURD(Create, Read, Update, Delete) 원칙을 준수합니다.
인텐트(Intent)
- 애플리케이션 컴포넌트(구성요소) 간에 작업 수행을 위한 정보를 전달하는 역할을 하며 통신수단
- 컴포넌트 A가 컴포넌트 B를 호출할 때 필요한 정보를 가지고 있으며, 이 정보에는 호출 대상이 되는 컴포넌트 B의 이름이 명시적으로 표시가 됨과 동시에 속성(Attribute)들이 암시적으로 표시되기도 합니다.
그리고 호출된 컴포넌트 B가 호출한 컴포넌트 A로 어떠한 결과를 전달할 때도 인텐트가 사용이 됩니다. - 특징
- 서로 독립적으로 동작하는 4가지 컴포넌트들 간의 상호 통신을 위한 장치입니다.
- 컴포넌트에 액션(Action), 데이터(Data) 등을 전달합니다.
- 인텐트를 통하여 다른 애플리케이션의 컴포넌트를 활성화시킬 수 있습니다. - 예시
액티비티 간의 화면 전환(이동)
728x90
LIST
'Android' 카테고리의 다른 글
Android - Garbage Collection(GC) (2) | 2023.11.08 |
---|---|
Android - Manifest & Components (3) | 2023.11.08 |
Android Layout (1) | 2023.09.04 |
안드로이드 Activity 생명주기 (1) | 2023.08.29 |
Android 기초 (0) | 2023.08.29 |