Skip to content

Latest commit

 

History

History
50 lines (42 loc) · 2.45 KB

architecture.md

File metadata and controls

50 lines (42 loc) · 2.45 KB

Apps

  • 안드로이드 앱
    • 안드로이드 API를 이용하여 만든 앱
    • 구글 플레이 스토어를 통해 설치 및 업데이트 가능
    • 경우에 따라 제조사가 기기에 사전에 설치할 수 있음
  • 권한 있는 앱
    • 안드로이드와 시스템 API를 이용하여 만든 앱
    • 특정 장치에 권한이 있는 앱
    • 제조사에 의해 사전 설치 필요
  • 기기 제조업체 앱
    • 안드로이드와 시스템 API 및 프레임워크를 이용하여 만든 앱
    • 제조사에 의해 프레임워크의 불안정한 API를 직접 사용 가능
    • 제조사에 의해 사전 설치 필요
    • 앱 업데이트는 시스템 소프트웨어 업데이트로 가능

APIs

  • 안드로이드 API
    • 모든 안드로이드 개발자가 공개적으로 사용할 수 있는 API
    • 젯팩, 디바이스, 머터리얼 디자인, NDK, 게임 킷, 그래들 플러그인, 구글 플레이 등
  • 시스템 API:
    • 시스템 기능에 접근할 수 있는 API
    • 안드로이드와 협업하는 일부 제조사에만 제공

Framework

  • 앱을 구축하기 위해 사용되는 자바 클래스, 인터페이스 및 사전 컴파일된 코드
  • 프레임워크 일부는 안드로이드 API를 통해 공개적으로 접근 가능
  • 시스템 기능에 접근할 수 있는 API는 일부 제조사만 비공개적으로 접근 가능
  • 프레임워크 코드는 앱 프로세스 내에서 실행

System Services

  • 프레임워크는 하드웨어에 다양한 시스템 모듈을 통해 간접 접근
  • 시스템 서버, 서피스 플링거, 미디어 서비스 등

Runtime

  • 안드로이드에서 제공하는 자바 실행 환경
  • 자바 바이트코드를 기기에서 실행가능한 기계어로 변환 및 실행

HAL

  • 하드웨어 공급업체가 구현해야하는 표준 인터페이스 추상화 계층
  • 안드로이드가 하위 수준의 하드웨어 드라이버 구현에 대해 독립적으로 유지 가능

System Services & Daemons

  • 데몬과 라이브러리로 구성되어 있음
  • HAL 구현에 의존하지 않고 커널 및 다른 인터페이스와 상호작용

Linux Kernel

  • 운영체제의 핵심 부분으로 프로세스, 메모리, 파일, 네트워크 및 기타 하드웨어와 통신 담당
  • 안드로이드 커널은 하드웨어에 의존하지 않는 모듈과 제조사별 모듈로 분할

architecture