티스토리 뷰

 

https://medium.com/@Abderraouf/understand-android-basics-part-1-application-activity-and-lifecycle-b559bb1e40e

 

안드로이드 4대 컴포넌트(구성요소) 

- Activity, Service, Boradcast Receiver , Content Provider 

- 4가지는 기본 컴포넌트

- 안드로이드 어플리케이션 내에서 독자적으로 작업을 실행할 있는 일종의 진입점 

 

(1) Activity 

- 사용자 인터페이스 화면을 구성하는 컴포넌트

- Activity내에는 Fragment 추가하여 화면 분할 가능 

 

(2) Service 

- 백그라운드에서 실행되는 컴포넌트, 시각적인 사용자 인터페이스를 가지지 않음

- 한번 시작된 서비스는 Applcation이 종료되도 Background에서 돌아감 

- 모든 Service는 Service 클래스를 상속받아서 사용 

- 네트워크를 통해 데이터를 가져올 수 있음 

* Service 이용하여 Components 구현

* Service 구현 

 

 

 

 

(3) Boradcast Receiver

- 배터리부족, 언어 설정 변경 등의 특정 브로드캐스트를 수신하거나 반응하는 컴포넌트,즉 다양한 이벤트와 정보를 받아 반응하는 컴포넌트

- 시각적인 사용자 인터페이스를 가지지 않음

- Device 발생하는 일 중에서 Application이 알아야 하는 상황이 발생하면 알려줌 

- 공지 메시지 -> 배터리부족, 언어변경 / 파일 다운로드 완료 등 

-  Boradcast Receiver는 알림을 통해 사용자의 주의를 끌 수 있음 

-  Boradcast Receiver 클래스 확장하여 구현 가능

 

 

 

(4) Content Provider 

- 애플리케이션 간의 데이터 공유를 위해 표준화된 인터페이스를 제공하는 컴포넌트 

-  Content Provider 클래스 확장하여 구현가능하고, 다른 Application의 데이터도 변경 가능 

- 데이터베이스의 데이터를 전달할 때 많이 사용, query(), insert(), update(), delete() getType() 등의 메소드를 구현

 

 

 

컴포넌트 활성화시점

- Activity - Intent에 의해 활성화

- Service - Intent에 의해 활성화

- Boradcast Receiver - Intent에 의해 활성화

- Content Provider - ContentResolver에 의해 활성화

 

컴포넌트 비활성화시점 

- Activity - finish()에 의해 비활성화, 다른 액티비티 비활성화 경우 finishActivity() 

- Service -stopSelf(), Context.stopService()로 비활성화 

- Boradcast Receiver - 명시적으로 비활성화 시킬필요 없음 * Broadcast 메시지에 대한 응답시 활성화 

- Content Provider -  명시적으로 비활성화 시킬필요 없음 * ContentResolver 요청 응답시에만 활성화  

 

 

 

안드로이드 주요 용어(컴포넌트, Component) 

- 일반적으로 처음 시작되는 Main Activity는 Application을 실행할 때 시작

- 다른 Activity는? Intent를 통해 시작할 수 있음 

 

(1) Activity - 사용자 인터페이스 화면을 구성하는 컴포넌트

(2) Service - 백그라운드에서 실행되는 컴포넌트, 시각적인 사용자 인터페이스를 가지지 않음

(3) Intent - 컴포넌트에 액션, 데이터 등을 전달하는 메시지 컴포넌트 

(4) Intent Filter - 수신할 수 있는 Intent를 정의하여 컴포넌트를 정의하는 역할을 하는 컴포넌트 

(5) Boradcast Receiver - 배터리부족, 언어 설정 변경 등의 특정 브로드캐스트를 수신하거나 반응하는 컴포넌트, 시각적인 사용자 인터페이스를 가지지 않음

(6) Content Provider - 애플리케이션 간의 데이터 공유를 위해 표준화된 인터페이스를 제공하는 컴포넌트 

(7) Notification - 사용자에게 특정 이벤트를 알리는 컴포넌트

(8) Fragment - 액티비티 내에서 독자적으로 동작할 수 있는 UI 컴포넌트 

 

 

 

안드로이드 애플리케이션 구조 

- 안드로이드 Application은 MVC 모델로 구성  

(1) View - 화면 구성을 담당하는 영역

(2) Control - View와  Model을 서로 연결하고 제어하는 영역

(3) Model - Application의 데이터를 저장하는 역할 담당, 안드로이드에 내장된 데이터베이스, 파일 , 애플리케이션 간의 데이터 공유등을 위해 사용됨 

 

- 하지만 다른 구조도 많이 사용됨

- MVVM 패턴(View - View Model - Model )을 사용하여 각각 역할 분리하여 가독성 높임, 데이터 실시간 관찰 , 역할별로 정리하기가 좋음 

- Clean 아키텍쳐 ... 

---> 참고) rosypark.tistory.com/345

 

 

 

 

<출처> 

1. kairo96.gitbooks.io/android/content/ch2.1.html

2. developer.android.com/guide/components/fundamentals?hl=ko

3.coding-factory.tistory.com/205

4. hyeonstorage.tistory.com/142 

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

[Android] Main Thread(UI Thread) & runOnUIThread()  (0) 2020.11.29
[Android] Intent  (0) 2020.11.28
[Android] Activity  (0) 2020.11.28
[Android] Layout  (0) 2020.11.28
[Android] Fragment  (0) 2020.11.28
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG more
«   2024/05   »
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
글 보관함