스터디

[Manifest-Android] 1. 안드로이드 프레임워크

참깨빵위에참깨빵_ 2025. 6. 7. 22:20
728x90
반응형

안드로이드 프레임워크는

 

  • 스마트폰, 태블릿 등의 모바일 기기를 위해 설계된 오픈소스 OS
  • 구글에서 개발, 관리하며 리눅스 커널을 기반으로 함
  • 다양한 하드웨어 구성, 디바이스 지원

 

안드로이드의 핵심 기능은 아래와 같다

 

  • 오픈소스, 맞춤형 : 오픈소스라서 개발자, 제조사가 커스텀 가능. 이로 인해 웨어러블, TV, IoT 등에서 사용됨
  • 앱 생태계가 풍부함 : 플레이 스토어를 통해 개발자, 소비자는 여러 카테고리의 앱을 배포 / 다운로드할 수 있음. 다른 스토어나 다운로드로 독립적 앱 배포도 가능함
  • 멀티태스킹, 리소스 관리 : 멀티태스킹 지원으로 여러 앱을 동시 실행할 수 있음. 관리형 메모리 시스템, GC를 통해 여러 기기에서 성능 최적화
  • 여러 하드웨어 지원 : 저렴한 스마트폰부터 프리미엄 플래그십까지 여러 기기를 지원하고 여러 화면 크기, 해상도, 하드웨어 구성, 광범위한 호환성 제공

 

안드로이드 OS의 구조는 아래와 같다.

 

https://developer.android.com/guide/platform

 

최하단부터 위로 올라오면서 확인한다.

 

  • 리눅스 커널 : 안드로이드의 기반은 리눅스 커널이기 때문에 가장 낮은 영역에 리눅스 커널이 위치한다. 하드웨어 추상화를 담당해서 소프트웨어, 하드웨어 간 원활한 상호작용을 보장하고 메모리 / 프로세스 관리, 보안 적용, 와이파이, 블루투스 등 하드웨어 컴포넌트 드라이버 관리를 수행한다
  • 하드웨어 추상화 계층 : 안드로이드의 자바 API 프레임워크, 장치 하드웨어를 연결하는 표준 인터페이스를 제공한다. 카메라, 블루투스 등 특정 하드웨어 컴포넌트에 맞춰 설계된 라이브러리 모듈로 구성된다. 프레임워크 API가 하드웨어 접근을 요청하면 안드로이드는 요청 처리를 위해 해당 하드웨어 추상화 계층 모듈을 동적 로드한다
  • 안드로이드 런타임(ART), 핵심 라이브러리 : ART는 자바 or 코틀린으로 컴파일된 바이트코드를 실행한다. ART는 최적화된 성능을 위해 AOT, JIT 컴파일을 지원한다. 핵심 라이브러리는 데이터 구조, 파일 조작, 쓰레딩 등에 필요한 필수 API를 제공해서 앱 개발을 위한 환경을 제공한다
  • 네이티브 C/C++ 라이브러리 : C/C++로 작성된 네이티브 라이브러리 세트를 포함해 핵심 기능을 지원한다. OpenGL은 그래픽 렌더링을 관리하고 SQLite는 DB 작업을 가능하게 하며 WebKit은 웹 컨텐츠 표시를 지원한다. 이 라이브러리들은 안드로이드 프레임워크, 앱 모두에서 성능이 요구되는 작업에 직접 쓰인다
  • 안드로이드 프레임워크(API) : 앱 프레임워크 계층은 앱 개발을 위한 고수준 서비스, API를 제공한다. ActivityManager, NotificationManager, 컨텐츠 프로바이더 등 개발자가 안드로이드 앱을 만들 수 있게 한다. 이 계층은 개발자가 안드로이드 시스템 기능을 활용할 수 있게 지원한다
  • 애플리케이션 : 최상위 계층에는 시스템 앱(연락처, 설정 등)과 안드로이드 SDK를 써서 개발된 서드파티 라이브러리 등 모든 UI 앱들이 포함된다. 하위 계층에 의존해서 유저에게 기능, 성능을 제공한다
반응형