안드로이드 개념 및 4대 구성요소

2023. 3. 8. 18:16

1. 안드로이드란?

: 구글에서 만든 스마트폰용(터치스크린 모바일 장치 용) 운영체제이다.

- 수정된 리눅스 커널 버전을 비롯한 오픈 소스 소프트웨어에 기반을 둔 모바일 운영체제이다.

-> 운영체제와 미들웨어, 사용자 인터페이스, 어플리케이션, MMS 서비스 등을 하나로 묶어 서비스를 제공한다.

- 어플리케이션 플랫폼이기도 하다.(다양한 어플리케이션을 만들어 설치 및 실행 가능)

- 리눅스를 기반으로 제작 -> 리눅스 커널 위에서 동작한다.

- 자바와 코틀린 언어로 응용 프로그램 작성 가능하다. -> 앱을 만들어 동작한다.

- 안드로이드 시스템 구성 요소에서 사용되는 C/C++ 라이브러리들을 포함한다.

- 안드로이드 런타임이라는 가상 머신을 통해 자바와 코틀린으로 작성된 응용 프로그램을 별도의 프로세스에서 실행하는 구조이다.

- 소프트웨어 개발 키드를 통해 응용 프로그램을 개발하는 데 필요한 각종 도구와 응용 프로그램 인터페이스를 제공한다.

 

+) 미들웨어 : 컴퓨터 제작 회사가 사용자의 특정한 요구대로 만들어 제공하는 프로그램이다. / 운영체제와 응용 소프트웨어의 중간에서 조정과 중개의 역할을 수행하는 소프트웨어이다.

+) 리눅스 커널 : 리눅스 운영체제의 주요 구성 요소이자 컴퓨터 하드웨어와 프로세스를 잇는 핵심 인터페이스이다.

+) 소프트웨어 개발 기트 : 소프트웨어 기술자가 사용하여 특정한 소프트웨어 꾸러미, 소프트웨어 프레임워크, 하드웨어 플랫폼 등을 위한 응용 프로그램 등을 만들 수 있게 해주는 개발 도구의 집합이다. 

 


1-2 안드로이드의 특징

1. 자바기반 : 안드로이드 개발에 사용하는 언어는 자바이다.

2. 오픈소스 : 안드로이드는 오픈소스를 기반으로 하고 있다. (누구나 이를 사용하여 소프트웨어를 제작하거나 기기를 만들어 판매할 수 있다.)

3. 완벽한 구성요소 : 스마트폰을 위한 완벽한 구성요소를 제공하고 있다. 

4. 높은 점유율 : 애플의 IOS를 제치고 80%가 넘는 점유율을 기록했다.

5. 높은 이식성 : 리눅스를 기반으로 높은 이식성을 가지고 있으며, 새로운 하드웨어의 기능을 쉽게 연동할 수 있다.

6. 쉬운 연동 : 안드로이드로 만든 앱은 다른 앱에서 제공하는 기능을 쉽게 사용할 수 있도록 만들어져있다.

 



2. 안드로이드 4대 구성요소

: 구성요소 또는 컴포넌트(Component)라고도 한다.

- 안드로이드 앱을 구성하는데 필요한 4개의 요소를 의미한다.

- 안드로이드 4대 구성요소는 액티비티(Activity), 서비스(Service), 방송 수신자(BroadCast Receiver), 콘텐츠 제공자(Content Provider)가 있다. 

- 각 구성요소들은 독립적인 형태로 존재한다.

- 각 구성요소들은 고유한 기능을 수행하고, 인텐트를 통해 상호작용 한다.

+) 인텐트 : 어플리케이션 구성요소 간에 작업 수행을 위한 정보 전달 역할을 하는 통신수단이다. / 구성요소에게 액션, 데이터 등을 전달한다.

             ex) 액티비티 간의 화면 전환 및 이동

         

 

 

● 액티비티(Activity)

 - 액티비티는 사용자가 어플리케이션과 상호작용하며 실제로 사용자에게 보이는 화면을 뜻한다.

 - 어플리케이션에 화면이 하나도 없으면, 사용자와 상호작용을 할 수 없으므로 적어도 하나의 액티비티는 반드시 필요하다. (2개 이상의 액티비티를 동시에 Display 할 수는 없다.)

- 인텐트를 통해 다른 어플리케이션의 액티비티를 불러올 수 있다.

- 하나 이상의 View 또는 ViewGroup을 가지고 있어야 함.

+) View : 화면에서 눈에 보이는 것들을 의미함 (ex : 텍스트, 버튼, 이미지 등등)

+) ViewGroup : 레이아웃을 의미함. 

 

 

● 서비스(Service)

 - 액티비티와 반대로 사용자와 직접적으로 상호작용하지 않는 요소이다.

 - Background에서 어떠한 작업을 처리하기 위해 사용된다.

 - 어플리케이션이 종료되어도 Background에서 동작하는 구성요소이다.

 - 별도의 사용자 인터페이스를 가지지 않는다.

 - 네트워크와 연동이 가능하다.

 - 서비스에 해당되는 기능

         1. 음악 앱 -  Background에서 계속 음악을 재생시키기 때문에 실제로 음악 앱을 꺼놔도 음악은 계속 재생된다.

         2. 타이머 앱 -  실제로 타이머를 실행시킨 후 앱을 꺼놔도 타이머는 계속 작동된다.

+) 사용자 인터페이스(UI) : 사람과 컴퓨터시스템 사이의 의사소통을 할 수 있도록 만들어진 매개를 뜻한다.

 

 

 방송 수신자(BroadCast Receiver)

 - 안드로이드 운영체제로부터 발생하는 이벤트 정보를 받고 대응하는 구성요소이다.

 - 대부분 사용자 인터페이스를 가지지 않으며, 수신기를 통해 디바이스 상황을 감시하다가 이벤트가 발생하면 해당 이벤트에 맞게 정의한 작업들을 수행하는 역할을 한다.

 -> 디바이스에서 발생하는 중요한 이벤트를 어플리케이션에 알려준다.

 - ex) : 배터리 부족, 문자 수신, 전화 수신과 같은 정보를 받아 이를 처리할 때 방송 수신자가 동작한다.

 - 특정한 상황을 제외하고는 시스템에서 시작한다.

 

 

●  콘텐츠 제공자(Content Provider)

 - 데이터를 관리하고 다른 어플리케이션의 데이터를 제공하는데 사용되는 구성요소이다.

 - 데이터를 저장하고, 불러와서 사용할 수 있는 시스템들을 의미한다.

    ex) DB, 파일 시스템 등이 있다.

 - 파일 시스템이나 SQLiteDB, 기타 저장소 위치에서 앱이 접근 가능한 저장소의 데이터를 읽거나 쓸 수 있다.

 - 용량이 큰 데이터를 공유하는데 적합하다. (작은 데이터들은 인텐트로 어플리케이션끼리 서로 공유 가능하다.)

 - 콘텐츠 제공자를 이용하기 위해서는 권한을 획득해야 한다. -> 콘텐츠 제공자를 이용한 정보들은 민감한 정보들이기 때문에 보통 맨 처음에 앱을 설치하면 바로 권한 요청이 뜨도록 한다. (보안적인 이슈를 고려함)

 - ex) : 인스타그램 앱에서 갤리러 앱에 접근하여 사진 파일을 가져오거나 지도 앱에서 자신의 현재 위치를 가져오는 등이 콘텐츠 제공자의 대표적인 예시이다.

'Android - 이론' 카테고리의 다른 글

안드로이드 부팅 시 작동 순서  (0) 2023.03.20
JNI와 NDK  (0) 2023.03.11
안드로이드에서 사용하는 자바와 코틀린  (0) 2023.03.10
APKTool과 디컴파일  (0) 2023.03.10

BELATED ARTICLES

more