본문 바로가기

Programming/Android

[Android] 앱 구성 요소(Application Component)

[Android] 앱 구성 요소(Application Component)


Activity(액티비티)

123* 사용자 인터페이스가 있는 단일 화면(상호작용 할 수 있는 화면)
* 하나의 애플리케이션은 보통 여러 개의 액티비티가 느슨하게 서로 묶여 있는 형태로 구성됨
* 액티비티는 스택(LIFO)으로 관리됨

Service(서비스)

123* 백그라운드에서 실행되는 구성 요소
* 오랫동안 실행되는 작업을 수행하거나 원격 프로세스를 위한 작업을 수행
* 다른 구성 요소가 서비스를 시작한 다음 실행되도록 두거나 자신에게 바인드하여 상호작용할 수 있음

ContentProvider(콘텐츠 제공자)

123* 공유된 앱 데이터 집합을 관리
* 데이터는 파일 시스템이나 SQLite 데이터베이스 또는 웹이나 기타 영구적인 저장소 위치 중 앱이 액세스할 수 있는 곳이면 어디에든 저장할 수 있음
* 앱에 전용이며 공유되지 않는 데이터를 읽고 쓰는 데에도 유용함

BroadcastReceiver(브로드캐스트 수신기)

123* 시스템 범위의 브로드캐스트 알림에 응답하는 구성 요소
* 대다수의 브로드캐스트는 시스템에서 시작(화면 꺼짐, 배터리 잔량 부족, 사진 캡쳐 등)
* 브로드캐스트 수신기는 그저 다른 구성 요소로의 “게이트웨이”인 경우가 보편적이고, 극소량의 작업만 수행하도록 만들어진 경우가 많음

시스템이 구성 요소를 시작하는 경우, 그 앱에 대한 프로세스를 시작하고(이미 실행 중이지 않는 경우), 해당 구성 요소에 필요한 클래스를 인스턴스화함


구성 요소 활성화

  • 액티비티, 서비스, 브로드캐스트 수신기는 Intent(인텐트)라고 하는 비동기식 메시지로 활성화함
  • 인텐트는 각각의 구성 요소를 런타임에 서로 바인드하며 구성 요소가 앱에 속하는지 여부에 무관함.

AndroidManifest

  • 구성 요소 선언
    • 액티비티 : <activity>
    • 서비스 : <service>
    • 브로드캐스트 수신기 : <receiver>
    • 콘텐츠 제공자 : <provider>
  • 앱이 요구하는 모든 사용자 권한 식별
  • 최소 API 레벨 선언
  • 앱에서 사용하거나 필요로 하는 하드웨어 및 소프트웨어 기능 선언
  • 앱이 링크 되어야 하는 API 라이브러리
  • 앱 요구사항 선언
    • 앱이 지원하는 기기 유형에 대한 프로필을 명확하게 정의

App Resource(앱 리소스)

  • XXXX.png 추가 -> R.drawable.XXXX로 생성


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

[Android] Dalvik & ART  (1) 2019.04.16
[Android] Context  (0) 2018.09.18
[Android] How To APK Install Programmatically  (0) 2018.09.05
[Android] Input Event  (0) 2018.06.16
[Android] View  (0) 2018.06.14