728x90
반응형

안드로이드는 휴대전화를 비롯한 휴대용 장치를 위한 운영체제와 미들웨어, 사용자 인터페이스 그리고 표준 응용 프로그램(웹 브라우저, 이메일 클라이언트, 단문 메시지 서비스(SMS), 멀티미디어 메시지 서비스(MMS) 등)을 포함하고 있는 소프트웨어 스택이자 모바일 운영체제이다. 

 

Android Architecture

리눅스 커널( != 리눅스 배포판)

- 안드로이드는 리눅스 커널 상에 만들어져 있음

- 하드웨어 구동하는 기능 수행

   - 프로세스, 메모리, 전원, 네트워크, 디바이스 드라이버, 보안 등의 핵심적인 시스템 서비스를 지원함

- 표준 리눅스 유틸리티를 모두 제공하지는 않음

- 안드로이드 커널도 공개되어 있음

 

HAL(Hardware Abstraction Layer)

- 자바 API 프레임워크에서 하드웨어 기능을 이용하는 표준 인터페이스 제공

- 자바 API 프레임워크에서 하드웨어 기기( 카메라, 블루투스 등)를 이용하기 위한 코드가 실행되면 내부적으로 HAL의 라이브러리 모듈이 로딩되어 처리됨.

 

라이브러리

- 장비의 전반적인 속도를 결정하는 중요한 요소임

- 자바가 아니라 C/C++로 작성되어 있으며, 애플리케이션 프레임워크를 통해 사용할 수 있도록 구성되어 있음

- 안드로이드 라이브러리 종류

  - 웹브라우저 및 웹렌더링 엔진 WebKit

  - 미디어 응용 개발 OpenMax AL

  - 임베디드용 c라이브러리 libc

  - 오디오, 비디오 재생을 위한 미디어 지원

  - 3차원 컴퓨터 그래픽스 OpenGL ES

  - 벡터 폰트 출력을 위한 FreeType

  - 데이터베이스 지원을 위한 SQLite

 

안드로이드 런타임 : 코어 라이브러리(자바 라이브러리의 대부분 기능) + Android Runtime

 

애플리케이션 프레임워크

- 안드로이드 API : 안드로이드에서 제공하는 애플리케이션도 애플리케이션 프레임워크의 API 기능을 기반으로 함

- 응용 프로그램들은 하위의 커널이나 시스템 라이브러리를 직접적으로 호출할 수 없으며 API를 통해서 기능을 요청해야 함

 

애플리케이션(응용프로그램)

- 모든 응용프로그램은 애플리케이션 프레임워크의 API를 사용

 

안드로이드 앱은 컴포넌트를 기반으로 함

컴포넌트 : 안드로이드 시스템에서 생성하고, 관리하는 클래스( 앱 내에서의 실행 단위 )

인스턴스화 할 수 있는 4개의 컴포넌트( 이걸 잘 익히면 된다 )

- 액티비티 : 사용자 인터페이스를 구성하는 기본 단위이며, 눈에 보이는 화면 하나가 액티비티이며, 여러 개의 뷰들로 구성, 응용 프로그램은 필요한 만큼의 액티비티를 가질 수 있으며 그 중 어떤 것을 먼저 띄울지를 지정

- 서비스 : UI가 없어 보이지 않으며 백그라운드에서 무한히 실행되는 컴포넌트, 액티비티와 연결해서 사용함

(ex> 미디어 플레이어는 비활성화된 상태라도 노래는 계속 재생되어야 한다)

- 방송수신자(Broadcast Receiver) : 시스템으로부터 전달되는 방송을 대기하고 신호 전달 시 수신하는 역할

(ex> 배터리가 떨어졌다, 사진을 찍었다, 네트워크 전송이 완료되었다 같은 신호 받음)

- 콘텐츠 제공자(Content Provider) : 다른 응용 프로그램을 위해 자의 데이터를 제공, 응용 프로그램 간에 데이터 공유

Manifests : XML 파일로 구성 컴포넌트, 앱에 대한 전반적인 정보
Java : 소스 파일들이 저장
generatedJava : Java 관련 라이브러리 (터치할일 거의 x)
Res : 외부의 다양한 리소스들 저장하기 위한 폴더
Gradle scripts : Gradle이 빌드시에 필요한 스크립트(Java는 Marven, 안드로이드는 gradle)

-> 코드와 리소스를 분리한 것이 특징이다.

728x90
반응형

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

[3] Kotlin : 제어문, 함수  (0) 2022.03.11
[2] Kotlin  (0) 2022.03.08
RecyclerView  (0) 2021.08.25
Fragment  (0) 2021.08.23
Intent  (0) 2021.08.23

+ Recent posts