1. 리눅스 커널 계층(Linux Kernel)
- 안드로이드 리눅스 커널은 경량화하여 명령어는 같으나 디렉토리 구조는 다를 수 있다.
- 안드로이드 운영체제에서 하드웨어를 제어(자원관리)하고 애플리케이션과 상호작용 할 수 있도록 한다. ( 즉, 하드웨어와 OS의 중간다리 역할)
- 안드로이드 운영체제의 보안을 관리해준다.
2. 하드웨어 추상화 계층 (Hardware Abstraction Layer)
- 각각의 하드웨어(그래픽, 오디오, 블루투스 등)를 추상화 하여 애플리케이션 프레임워크 계층에 제공한다.
- 하드웨어의 추상화된 인터페이스를 이용하여 개발자들은 하드웨어와 관련된 복잡한 작업을 수행하지 않아도 된다.
- 하드웨어 추상화 계층은 리눅스 커널의 디바이스(하드웨어)를 조종할 때 사용된다.
3-1. 라이브러리 계층 (Native Libraries)
- 안드로이드에 필수적인 라이브러리(낮은 계층 애들이 사용하는 라이브러리)들이 포함되어 있는 계층이다. 그러므로 C/C++과 같은 Low한 언어로 만들어져 있고 사용하려면 Android NDK(Native Development Kit)을 쓴다.
- 하드웨어와 애플리케이션 프레임워크 계층 사이에서 통신해주는 역할이다.
- OpenGL , SQLite , SSL, WebKit 등이 포함되어 있다.
3-2. 안드로이드 런타임(Android Runtime)
- 애플리케이션을 실행할 때 컴파일을 제공해주는 계층이다.
- 보통의 애플리케이션들은 Java코드로 만들어지는데 Java를 Byte코드(.class) 로 컴파일 하고 이를 기계어로 바꿔주는 역할을 하는게 JVM인데 안드로이드는 JVM을 사용하지 않는다. 그래서 DVM(Dalvik VM) 을 사용하는데, 하지만 요즘엔 ART(Android RunTime)을 사용한다.
- 컴파일은 JIT(Just In Time)이라는 실행 중에 컴파일을 하는 방식과 AOT(Ahead-Of-Time)이라는 앱을 까는 순간에 기계어로 다 해석해놓는 방식이 있는데 보통 AOT방식을 사용하지만, 2016년 이후에는 JIT를 섞어서 사용한다.
4. 애플리케이션 프레임워크 계층 (Application FrameWork)
- 프레임워크 계층은 안드로이드 개발을 위한 API 계층이다.
- 해당 계층에 안드로이드 구성요소 인 컴포넌트들을 사용할 수 있는 API가 존재한다.
더보기
API 란?
- 응용프로그램이 운영체제나 하드웨어 등을 기능을 쉽게 쓸 수 있도록 하는 인터페이스이다.
프레임워크란?
- 개발을 편리하기 하기 위해 만들어진 구조화된 틀이다. ex) Spring, Django
5. 애플리케이션 계층
- 운영체제 가장 상위 계층으로, 사용자와 직접 상호작용하는 계층이다.
- 코딩, 앱을 실행해서 게임 등의 사용자들에게 보여지는 부분들이다.
참조
안드로이드 (운영체제) - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전. 안드로이드(영어: Android)는 스마트폰, 태블릿 PC 같은 터치스크린 모바일 장치 용으로 디자인된 운영 체제이자 수정된 리눅스 커널 버전을 비롯한 오픈 소스 소
ko.wikipedia.org
안드로이드 운영체제 관련 정리
안드로이드 운영체제에 대해서 정리한 글입니다.
velog.io
https://bearhunter49.tistory.com/4
Android Architecture(안드로이드 구조)
공부 할 겸 안드로이드 구조에 대해 써봅니다! 안드로이드 구조 안드로이드 구조는 왼쪽의 사진과 같이 대표적으로 5계층으로 나뉘어져 있습니다. 리눅스 커널 계층 하드웨어 추상화(HAL) 계층 Na
bearhunter49.tistory.com
'앱 진단 > 안드로이드' 카테고리의 다른 글
안드로이드 - 구성요소 (1) | 2024.09.10 |
---|