ANDROID/AOSP

AOSP System Structure

오렌지망고맛 2023. 11. 2. 22:55

 

  • Android App
  • Privileged Apps
  • Device Manufacturer Apps
    • Android API, System API, Android Framework 구현에 대한 직접 엑세스의 조합을 사용해서 만든 앱.
    • 기기 제조업체가 Android Framework 내에서 불안정한 API에 직접 액세스 할 수 있기 때문에 이러한 앱은 사전 설치되어 있어야 함.(prebuilt)
    • 기기의 SW가 업데이트된 경우에만 업데이트 가능.
  • System API
    • System API는 Bundle Application에 포함하기 위해 파트너 및 OEM만 사용할 수 있는 Android API를 나타냄.
    • 이러한 API는 소스코드에서 @SystemApi로 표시
  • Android API
  • Android Framework
    • Framework의 다른 부분은 System API를 사용하여 OEM만 사용할 수 있음.
    • Android Framework Code는 앱의 프로세스 내에서 실행
  • System Service
    • "system_server", SurfaceFlinger" 및 "MediaService"와 같은 모듈식 집중 구성 요소
    • Android Framework API에 의해 노출되는 기능은 System Service와 통신하여 기본 HW에 엑세스
  • ART :: Android Runtime
    • AOSP에서 제공하는 Java 런타임 환경.
    • ART는 앱의 바이트코드를 장치의 런타임 환경에서 실행되는 프로세서별 명령으로 변환.
  • HAL :: Hardware Abstract Layer
    • HW 공급업체가 구현할 표준 인터페이스가 있는 추상화 계층
    • HAL을 사용하면 Android는 하위 수준 드라이버 구현에 대해 독립적.
    • HAL을 사용하면 상위 시스템에 영향을 미치거나 수정하지 않고도 기능 구현 가능.
  • Native Deamons and Libraries
    • 기본 데몬에는 "init", "healthd", "logd" 및 storaged"가 포함.
    • 기본 라이브러리에는 "libc", "liblog", "libutils", "libbinder", "libselinux"가 포함.
    • 기본 라이브러리 및 데몬은 Kernel 또는 기타 Interface와 직접 상호작용하며 사용자 공간 기반 HAL
  • Linux Kernel