안드로이드는 구글이 주도하는 공개형 운영체제이자 소프트웨어 스택으로, 구글의 플랫폼 전략과 리눅스 계열의 개방형 개발 관행이 만나는 대표 사례다.[1][3]

이 문서는 안드로이드를 단일 앱 실행 환경이 아니라, 여러 운영체제 계층과 기기 범주를 묶는 공통 플랫폼으로 본다. 이런 관점은 안드로이드가 어떻게 기기별 차이를 흡수하면서도 같은 기본 규칙을 유지하는지 이해하는 데 도움이 된다.[1][2]

1. 개요

AOSP는 Android 플랫폼의 공개 소스 코드와 기초 구성요소를 제공하며, 이동통신사와 OEM, 개발자가 이를 바탕으로 각자의 제품을 구성할 수 있게 한다.[1] 안드로이드의 출발점은 모바일 기기였지만, 지금은 스마트 기기 전반을 포괄하는 쪽으로 확장되었다.[2]

Android는 스마트폰, 태블릿, 웨어러블, TV, 자동차, 연결된 기기까지 넓은 범주에서 사용된다.[2] 이 때문에 안드로이드는 단일 제품이 아니라 여러 기기 계열을 묶는 플랫폼으로 이해하는 편이 정확하다.[1][2] 같은 플랫폼 규칙을 공유하기 때문에 모바일 기기와 같은 범주를 함께 설명할 때도 연결성이 높다.[1]

2. 구조

Android 플랫폼은 커널, HAL, 프레임워크, 시스템 구성요소가 층위적으로 결합된 구조를 가진다.[2] 커널은 Linux를 기반으로 하며 하드웨어 자원과 프로세스, 메모리, 네트워크 같은 핵심 기능을 담당한다.[3]

이런 구조는 기기별 차이를 분리하면서도 공통 동작을 유지하려는 목적에 맞춰 설계되어 있다.[1][3] 그래서 제조사별 하드웨어 구현이 달라도 같은 플랫폼 규칙을 따를 수 있고, 운영체제의 핵심 메커니즘은 공유된다.[1][2] 결국 안드로이드는 리눅스 커널 위에서 장치별 변형을 흡수하는 구조를 취한다.[3]

3. 개발 환경

Android 앱 개발의 공식 IDE는 Android Studio이다.[4] Android Studio는 앱 개발용 환경을 제공하며 코드 작성, 빌드, 테스트 작업을 한 흐름으로 다루도록 돕는다.[4]

안드로이드 앱은 일반적으로 모바일 애플리케이션 문맥에서 다뤄지지만, 실제 개발 흐름은 플랫폼 구조와 강하게 연결된다.[1][4] Android 플랫폼의 개방성 덕분에 개발자는 단일 도구에만 묶이지 않고 다양한 빌드와 배포 흐름과도 연결할 수 있다.[1][4] 이 점에서 Android Studio는 구글의 플랫폼 생태계 안에서 핵심적인 진입점이 된다.[4]

4. 생태계

Android는 제조사, 이동통신사, 개발자가 함께 참여하는 개방형 플랫폼으로 성장했다.[1][2] 공개 소스 기반과 공통 커널 체계는 기기군이 넓어져도 플랫폼 규칙을 공유하게 만드는 기반이다.[1][3]

이 생태계는 구글의 제품 전략과 리눅스 계열의 개방형 개발 관행이 만나는 접점이기도 하다.[1][3] 그래서 안드로이드는 태블릿, 웨어러블, 자동차처럼 서로 다른 하드웨어 범주를 연결하는 공용 기반으로 기능한다.[2] 이러한 확장성은 모바일 기기를 넘어 다양한 폼 팩터를 하나의 계열로 묶는 힘이 된다.[2]

5. 같이 보기

안드로이드는 모바일 기기운영체제 항목을 함께 보면 구조를 더 쉽게 파악할 수 있다.[1]

6. 관련 문서

7. 인용 및 각주

[1] Oopensource.google(새 탭에서 열림)

[2] Ssource.android.com(새 탭에서 열림)

[3] Ssource.android.com(새 탭에서 열림)

[4] Ddeveloper.android.com(새 탭에서 열림)