○ 안드로이드 아키텍처
안드로이드 아키텍처를 자세하게 이해하기보다는, 상식 수준에서 읽어두시기 바랍니다.
- 안드로이드 플랫폼은 리눅스 커널을 기반으로 만들어졌습니다.
- HAL(Hardware Abstraction Layer)은 자바 API 프레임워크에 하드웨어 기능을 이용하는 표준 인터페이스를 제공합니다. 자바 API 프레임워크에서 하드웨어(카메라, 블루투스)를 이용하기 위한 코드가 실행되면, 내부적으로 HAL의 라이브러리 모듈이 로딩되어 처리합니다.
- 안드로이드 런타임(Android Runtime)은 ART VM을 이용하며, 그 위에 일반 애플리케이션 개발 시 이용할 수 있는 자바 API 프레임워크를 제공합니다. 이 자바 API 프레임워크에서 제공하는 다양한 클래스가 앱 개발 시 사용하게 되는 클래스들입니다.
○ 안드로이드 런타임(ART)
안드로이드 개발은 JAVA를 사용하기 때문에 일반적인 자바 개발자들이 접근하기 좋습니다. 다만, 런타임 구조에서 일반 JAVA와 안드로이드 개발에는 차이가 발생합니다. 바로 VM의 차이죠. 자바는 런타임 시점에 JVM을 사용하지만, 안드로이드 VM은 ART(Android Runtime)을 사용합니다. 이는 API Level 21(5.0)에서 추가되었습니다. 이전에는 VM 중 Dalvik을 사용했습니다.
아래 컴파일 구조를 보시면 이해가 가실 것입니다.
○ 애플리케이션 프레임워크(자바 API 프레임워크)
안드로이드 개발을 공부한다는 것은, 주목적이 바로 이 자바 API 프레임워크를 이해하고 이를 이용해 앱을 개발하는 것에 있습니다. 자바 API 프레임워크를 사용한다는 것은, 하위 커널이나 시스템 라이브러리에 대한 이해가 없더라도 이를 이용해 앱의 모든 기능을 구현하게 됩니다.
자바 API 프레임워크는 안드로이드 앱 개발 시 이용하는 표준 라이브러리로서 다양한 라이브러리 클래스를 제공합니다. UI 구성 시에 대부분 사용하게 되는 View 클래스가 대표적인 예시이죠. 리소스 관리, 데이터 영속화 등 다양한 기본 기능 역시 여기서 제공됩니다.
'Programming > Android' 카테고리의 다른 글
2. 안드로이드 기본 구조의 이해 (2) - 컴포넌트(component) 2 (0) | 2023.11.27 |
---|---|
2. 안드로이드 기본 구조의 이해 (2) - 컴포넌트(component) 1 (0) | 2023.11.15 |
1. 안드로이드 스튜디오 기본 환경 구축 (3) - 앱 배포 (0) | 2023.10.17 |
1. 안드로이드 스튜디오 기본 환경 구축 (2) (0) | 2023.10.05 |
1. 안드로이드 스튜디오 기본 환경 구축 (1) (0) | 2023.10.04 |