Android의 구성 요소 (1)
안드로이드의 구성 요소로는
Activity / Service / Intent / Intent Filter / Broadcast Receiver / Content Provider / Notification / Fragment 등이 있다. 그리고 이 중에서 안드로이드의 4대 구성 요소 (컴포넌트)는 빨간 글씨인 Activity, Service, Broadcast Receiver, Content Provider 이다.
각각의 구성 요소가 무슨 역할을 하는지 알아보도록 하자!
[ Activity ]
: 사용자 인터페이스 화면을 구성하는 컴포넌트. 시각적인 사용자 인터페이스(UI)를 가짐.
- 사용 방법
- Activity Class를 상속 받음
- Activity Class의 생명주기 메서드를 재정의해서 원하는 기능을 구현함
- 특징
- Activity 크기는 상태바 (status bar) 영역을 제외한 화면 전체
- 여러 개의 Activity를 동시에 보여줄 수 없음
- 다른 application의 activity를 호출할 수 있음
- Activity 안에 Fragment 추가해서 화면을 분할하고 별도로 조작 가능
[ Service ]
: Activity와 상관없이 background에서 실행되는 컴포넌트. 즉, 화면을 구성하는 layout을 작성할 필요가 없고, 지속적으로 장시간 동작해야 하는 기능을 service에 구현함.
- 사용 방법
- Service Class를 상속 받음
- Service Class의 생명주기 메서드를 재정의해서 원하는 기능을 구현함
[ Broadcast Receiver ]
: 특정 broadcast에 반응하는 컴포넌트.
- 특징
- 사용자 인터페이스 (UI)를 가지지 않음
- 시간대 변경, 배터리 부족 등의 broadcast를 받아서 처리한 뒤에 다시 대기 모드로 진입함
- 10초 이내로 작업을 끝냄 (10초 이상 걸리는 작업은 별도의 스레드로 처리하거나 Service에 구현해야 함)
[ Content Provider ]
: Application 간의 데이터 공유를 위해서 표준화 된 인터페이스를 제공하는 컴포넌트.
- 특징
- Content Provider가 제공ㅇ하는 실제 데이터는 file system 또는 DB에 있음
- read, write, update, delete 기능을 사용할 수 있음
[ Intent ]
: 컴포넌트에 액션, 데이터 등을 전달하는 메시지 컴포넌트.
- Intent 객체의 구성 요소
- Action : 수행할 action 이름
- Data : 수행할 data의 uri
- Category : 수행할 action에 대한 추가 정보
- Type : 수행할 data의 명시적인 data type
- Component name : 대상 컴포넌트의 완전한 class명
- Extras : intent를 다루는 컴포넌트에 추가적으로 전달할 한 쌍의 키와 값 (key, value)
[ Intent Filter ]
: 특정 intent를 받을지 말지 결정하는 역할. 이를 통해 컴포넌트의 특징이 정해짐.
- 특징 : app > manifests > AndroidManifest.xml 파일에 정의됨 (아래의 예시 참고)
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
[ Notification ]
: Application에서 발생한 이벤트를 사용자에게 알리는 수단. Toast, Dialog는 "팝업 메세지" 라고도 불림.
- Toast : 사용자에게 지금 당장 알려야하는 정보가 있을 때 사용됨 (잠시 화면을 가림)
- Status Bar (상태바) : 사용자에게 정보를 알려줘야하지만, 급한 내용은 아니므로 나중에 볼 수 있도록 하는 경우에 사용됨 (정보를 상태바에 표시)
- Dialog : 사용자의 결정이 반드시 필요할 때 사용됨 (화면 대부분을 가림)
[ Flags ]
: Activity의 동작 방식을 변경함
- 특징
- setFlags(int), addFlags(int) 사용
- intent에 flags (플래그)를 설정해서 특정 정보를 전달함
'Android Studio > Android' 카테고리의 다른 글
[에러] llegalStateException: Session is not initialized. Call KakaoSDK#init first. (0) | 2021.08.06 |
---|---|
(Apache) 개인 서버 사용 방법 (0) | 2021.08.04 |
앱 개발 시 유용한 사이트 모음 (0) | 2021.08.03 |
이미지 파일 추가하기 (0) | 2021.08.03 |
Android의 구성 요소 (2) (0) | 2021.08.03 |