본문 바로가기

Android 공부/Android

Android의 정의와 구조

정의

구글에 의해 개발된 리눅스 커널 기반의 모바일 운영체제

  • 오픈 소스 : 누구나 소스 코드를 확인하고 수정할 수 있는 개방형 플랫폼
  • 다양한 기기 지원 : 스마트폰, 태플릿, TV, 워치 등 다양한 폼펙터에서 구동됨
  • 자유로운 생태계 : 구글 플레이 스토어를 통해 누가나 앱을 배포하고 수익 창출 가능

 

구조

여러 층이 쌓여 있는 소프트웨어 스택 구조

  1. 시스템 앱 : 사용자와 직접 마주하는 층으로, 전화, 문자, 브라우저, 설치한 앱 등이 해당됨
  2. 자바 API 프레임워크 : 개발자들이 앱을 만들 때 사용하는 Tool Box로, 기능들이 API 형태로 제공됨
  3. 네이티브 C/C++ 라이브러리 & 런타임 (ART)
    • 네이티브 C/C++ 라이브러리 : 자바 API 프레임워크에 API 제공함 그래픽, 데이터베이스, 웹브라우저 엔진 등 핵심 기능을 C/C++로 구현하여 속도를 높임
    • 안드로이드 런타임(ART) : Android 런타임 VM(Virtual Machine) 이다. 달빅의 실행 속도, 베터리 소모 문제를 해결하기 위해 미리 기계어로 번역해 놓는 ART 도입함
  4. 하드웨어 추상화 계층 : 상위 소프트웨어가 카메라, 블루투스 등 복잡한 하드웨어의 작동방식을 몰라도 사용할 수 있게 통역하는 계층
  5. 리눅스 커널 : 하드웨어를 직접 제어함  메모리 관리, 보안, 프로세스 관리 등 운영체제의 기본 역할 수행