안드로이드 - 운영체제 구조

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. 애플리케이션 계층

  • 운영체제 가장 상위 계층으로, 사용자와 직접 상호작용하는 계층이다.
  • 코딩, 앱을 실행해서 게임 등의 사용자들에게 보여지는 부분들이다.

 

 

참조

https://ko.wikipedia.org/wiki/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C_(%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C)

 

안드로이드 (운영체제) - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 안드로이드(영어: Android)는 스마트폰, 태블릿 PC 같은 터치스크린 모바일 장치 용으로 디자인된 운영 체제이자 수정된 리눅스 커널 버전을 비롯한 오픈 소스 소

ko.wikipedia.org

https://velog.io/@pnlkc/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C-%EA%B4%80%EB%A0%A8-%EC%A0%95%EB%A6%AC#%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C%EB%9E%80

 

안드로이드 운영체제 관련 정리

안드로이드 운영체제에 대해서 정리한 글입니다.

velog.io

https://bearhunter49.tistory.com/4

 

Android Architecture(안드로이드 구조)

공부 할 겸 안드로이드 구조에 대해 써봅니다! 안드로이드 구조 안드로이드 구조는 왼쪽의 사진과 같이 대표적으로 5계층으로 나뉘어져 있습니다. 리눅스 커널 계층 하드웨어 추상화(HAL) 계층 Na

bearhunter49.tistory.com

 

'앱 진단 > 안드로이드' 카테고리의 다른 글

안드로이드 - 구성요소  (1) 2024.09.10