안드로이드 OS 구조

2022. 9. 23. 21:52android

 

1. 리눅스 커널 계층

  • 리눅스 기반으로 설계 리눅스 커널 사용 
  •  커널 = 하드웨어와 OS 의 중간다리 역할 , 하드웨어 자원을 관리하고 사용하게 하는 역할 )

 

2. 하드웨어 추상화 계층( HAL)

  • 하드웨어에 맞는 표준 인터페이스
  • 하드웨어가 어떻게 동작하는지 알 필요가 없음.
  • 하드웨어의 영향을 주지 않고 수정과 변경이 가능하게 함

3. 네이티브 라이브러리 계층

  • 핵심 안드로이드 시스템 구성요소와 서비스 라이브러리들이 모인 장소
  • 대표적으로 OpenGL( 2D/3D 그래픽 작업)

 

4. 안드로이드 런타임 계층

  • 실행중인 애플리케이션 코드들을 운영체제가 이해하도록 코드를 컴파일하는 계층.
  • 달빅 VM을 쓰다가 ART로 변경
  • BUT 달빅 JIT(Just In Time) 의 방식의 메모리를 많이 잡아먹는 문제로 인해  AOT(Ahead Of Time) 기반(설치시 한 번에 컴파일하여 바이트코드로 변환해두고 읽어들이는 형태) ART를 사용

 

5. 안드로이드 프레임워크

  • 자바 API 프레임워크를 말한다. 개발자의 코드 작성 영역인 애플리케이션 계층과 자바 API 프레임워크 밑의 계층과의 다리 역할을 맡는다.
  • 액티비티 생명주기, 언어 설정, 콘텐트 프로바이더 , 로케이션 매니저 , notification ,리소스 manager 등의 종류가 포함되어있다.

6. 애플리케이션 계층

일반 사용자들이 접하는 계층 , 기본 제공 앱과 스토어 다운 받은 앱이 속해 실행되는 영역