[Android] 안드로이드 소개 및 개발 환경 구축

728x90

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를 선택해야함 

 

 

728x90