Programming/Android

[Android] 기본적인 안드로이드 구조 및 용어 파악하기(1)

100winone 2020. 5. 21. 16:34

1. Manifest

- AndroidManifest.xml -> 매니페스트 파일은 Android 빌드 도구, Android 운영체제 및 Google Play 앱에 관한 필수 정보를 설명

- 즉 메니페스트란 "안드로이드 시스템이 앱의 코드를 실행하기 전에 확보해야 하는 앱에 대한 필수 정보를 시스템에 제공하는 목록"

 

Manifest에 선언해야 하는 내용

- 앱의 패키지 이름

- 앱의 구성요소

- 시스템 또는 다른 앱의 보호된 부분에 액세스하기 위해 필요한 권한

- 앱에 필요한 하드웨어 및 소프트웨어 기능

 

2. Permission

- Manifest에 어떤 권한을 얻을 것인지 명시해야함

- Activity클래스에서도 권한에 따른 코드를 추가해야함

- 권한을 얻지 못한 상태에서 해당 권한이 필요한 작업을 시도하려고 하면 SecurityException 발생

--> 모든 경우에 그런 것은 아니지만 대부분의 경우 Log에 찍힘

 

3. 4대 컴포넌트

-> 안드로이드 4대 컴포넌트는 Activity, Service, Content Provider, BroadCast Receiver등이 있음

 

3-1 Activity

- UI 화면을 담당하는 컴포넌트

- 자바소스에서 Activity 클래스를 상속해야 하고, 기본적으로 가지고 있는 생명주기 메소드를 재정의 하여 원하는 기능을 구현하는 방식으로 제작

- 가장 많이 쓰이는 컴포넌트

- 안드로이드 어플리케이션은 반드시 하나 이상의 Activity를 가지고 있어야함

- 두 개의 액티비티를 동시에 Display 할 수 없음

- 다른 어플리케이션의 액티비티도 불러낼 수 있음

- 액티비티 내에 Fragment 추가하여 화면 분할 가능

 

3-2 Service

- 서비스는 백그라운드에서 실행되는 프로세스

- 화면이 존재하지 않음

- 애플리케이션 구성요소이므로 항상 매니페스트에 등록을 해주어야함

- 메인 Activity에서 서비스를 시작하고 싶은 경우 startService() 메서드 이용해 서비스 실행

- 백그라운드에서 돌아가는 컴포넌트

- 한 번 시작된 서비스는 어플리케이션이 종료되어도 계속해서 백그라운드에서 동작

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

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

 

3-3 Content Provider

- 데이터를 관리하고 다른 어플리케이션 데이터를 제공해주는 컴포넌트

- DB에서 데이터를 전달할 때 많이 사용

- 생명주기를 가지고 있지 않음

- Content Provider를 통해 다른 어플리케이션의 데이터 변경 가능

 

3-4 Broadcast Receiver

- 다양한 이벤트와 정보를 받아 반응하는 컴포넌트

- 브로드캐스팅 메시지를 Broadcast Receiver라는 어플리케이션 구성요소를 이용해 받을 수 있음

- 디바이스에서 발생하는 일 중에서 어플리케이션이 알아야 하는 상황이 발생하면 알려줌

- 수신기를 통해 디바이스의 상황을 감지하고 적절한 작업 수행

- 대부분 UI가 존재하지 않음

 

REF)

https://coding-factory.tistory.com/205

 

[Android] 안드로이드 4대 컴포넌트(구성요소)란 무엇인가?

안드로이드의 4대 컴포넌트는 액티비티, 서비스, 콘텐트제공자, 방송수신자 이렇게 4가지를 말합니다. 어플리케이션을 만들때 주요 구성요소이자 안드로이드의 사실상의 모든 구성요소입니다.

coding-factory.tistory.com