1. 안드로이드 소개
- ART 가상 머신 (안드로이드 런타임)
* 기존 Dalvik 에는 단말기에 설치된 이후 실행을 할 때마다 매번 기기어로 번역하여 실행
* ART 가상머신은 실행 전 자바로 만들어진 코드를 해당 단말기에 최적화된 기계어로 변환을 하면서 설치를한 뒤 기계어를 가지고 번역을 실행 → 매번 기기어로 번역하는 일이 없음
2. 안드로이드 구조
- 리눅스 커널: 리눅스 커널을 사용하여 여러가지 H/W 관리(OS 자체가 리눅스 기반)
- 하드웨어 어뎁테이션 레이어 (HAL) : 리눅스 커널과 H/W 기기간의 인터페이스 부분으로 단말기 제조사가 드라이버를 구현할 수 있도록 제공되는 계층 그래서 HAL은 크게 두가지로 나뉜다. 하나는 안드로이드 OS가 사용하는 부분, 하나는 단말기 제조사들이 만들어야하는 부분. 즉, 안드로이드 OS가 단말기의 H/W를 직접 컨트롤 하는 것이 아니라 H/W 컨트롤 부분은 단말기 유저들이 만들고 컨트롤 하는 부분과 OS가 가진 인터페이스 부분이 서로 데이터 통신을 하면서 H/W를 컨트롤 하는 구조를 만들 수 있도록 제공되는 영역임.
- Android 런타임 : 안드로이드 App 구동을 위한 가상머신. 5.0 이상은 ART 사용
- Native C/C++ : 안드로이드 OS가 App 및 기능을 구동하기 위해 사용하는 라이브러리
- Java/Kotlin API : 개발자가 App 제작 시 사용하는 라이브러리
- 시스템 앱 : OS 내부에 내장되어있는 App으로 개발자가 App 개발 시 일부 기능을 가져다 사용 할 수 있음.
3. 안드로이드 X 라이브러리
- 상위버전에 추가된 기능 중 일부를 하위 버전에서도 사용할 수 있도록 라이브러리가 추가 됨 (Support 라이브러리)
- Support 라이브러리가 많아지면서 안드로이드 10 버전 부터는 Android X라는 이름의 라이브러리로 통합 됨
- import 시 반드시 안드로이드 X를 선택해야함
'안드로이드 스튜디오' 카테고리의 다른 글
[Android] View의 기본 개념 (1) | 2025.06.06 |
---|---|
[Android] 동작원리 (0) | 2025.06.06 |
[Android] 프로젝트 생성 및 AVD 테스트 (1) | 2025.06.06 |
[Android] 안드로이드 개발환경 구축 (0) | 2025.05.30 |
[Android] Execution failed for task ':app:checkDebugAarMetadata'. 빌드에러 (0) | 2025.03.25 |