Hayden's Archive

[Android] 안드로이드 플랫폼의 구조 본문

Study/ETC

[Android] 안드로이드 플랫폼의 구조

_hayden 2021. 6. 4. 18:29

참고 1 : 한국방송통신대학교 모바일앱프로그래밍 교재( https://press.knou.ac.kr/goods/textBookView.do?condCmdtCode=9788920035999&condLscValue=001&condYr=&condSmst= )

참고 2 : https://developer.android.com/guide/platform?hl=ko


1) 애플리케이션

  • 안드로이드는 기본적으로 캘린더, 전화번호부(contact), 구글 맵, 브라우저, 이메일, SMS 프로그램 등 핵심 애플리케이션을 탑재하고 있음
  • 여기에 개발자가 작성하는 서드 파티 애플리케이션이 추가되어 애플리케이션 생태계를 구축

 

2) 애플리케이션 프레임워크

  • 애플리케이션들이 사용하는 프레임워크를 제공
  • 개발자들이 애플리케이션을 개발하기 위해 필요한 각종 클래스와 메서드 API를 제공하는 역할
  • 애플리케이션 작성/구동에 필요한 서비스를 제공
  • Core System Service
    • 안드로이드 애플리케이션과 직접 상호작용은 하지 않지만 안드로이드 프레임워크가 동작하는데 필수적인 서비스
    • Activity Manager, Window Manager, Content Provider, View System, Notification Manager, Package Manager, Resource Manager 등
  • Hardware Service
    • 저수준 하드웨어 제어를 위한 API를 제공하는 서비스
    • Alarm Manager, Connectivity Service, Location Manager, Power Service, Telephony Service, Wifi Service 등

 

3) 라이브러리

  • 안드로이드 시스템의 라이브러리들은 애플리케이션 프레임워크를 통해 개발자들에게 제공됨
  • 안드로이드 라이브러리에는 C/C++ 라이브러리와 함께 시스템 C 라이브러리, BIONIC, WebKit, Audio Manager, Media Library, SQLite, FreeType, LibWebCore, Media Framework 등을 포함

 

4) 안드로이드 런타임

  • ART(Android Runtime)는 안드로이드 운영 체제 아래 전 버전인 Dalvik과 같은 가상 머신의 일종
  • ART는 Android 5.0(API 레벨 21) 이상에서 실행되는 기기의 기본 런타임 환경이며 안드로이드 플랫폼과 앱의 성능, 유연성을 개선하는 수많은 기능 존재
  • ART에서는 달빅 실행 파일 형식과 Dex 바이트 코드 지정을 실행

 

5) 안드로이드 커널

  • 안드로이드 커널은 유닉스나 윈도우즈와 비슷하게 운영체제 대부분 기능이 커널 내에 구현되는 모노리식 커널 형태를 취하고 있음
  • 하드웨어와 안드로이드 플랫폼 스택 사이의 추상화 계층 역할을 수행
  • 일반적인 커널의 기능 : 메모리 관리, 프로세스 관리, 네트워크 관리, 드라이버 관리