안드로이드는 구글이 주도하는 공개형 운영체제이자 소프트웨어 스택으로, 스마트 기기와 모바일 기기 전반을 하나의 플랫폼으로 묶는다.[1]

1. 개요

안드로이드는 구글이 주도하는 공개형 운영체제이자 소프트웨어 스택으로, 스마트 기기와 모바일 기기 전반에서 같은 기본 플랫폼을 제공한다.[3] AOSP는 공개적으로 이용 가능하고 수정 가능한 Android 소스 코드를 제공하며, 기기 제작자와 개발자가 이를 바탕으로 각자의 제품을 구성할 수 있게 한다.[1] 이 점에서 안드로이드는 스마트 기기모바일 기기를 잇는 공통 토대에 가깝다.

안드로이드의 개방형 구조는 특정 단일 제품에 묶이지 않는다는 점에서 의미가 크다. 기기 범주가 달라도 운영체제의 기본 규칙을 공유할 수 있기 때문에, 제조사와 개발자는 같은 플랫폼 위에서 서로 다른 제품 전략을 펼칠 수 있다.[1][3]

2. 구조

AOSP의 구조는 커널, HAL, 프레임워크, 시스템 구성요소가 이어지는 계층형 모델이다.[1] Android 커널은 업스트림 리눅스 LTS 커널을 기반으로 하며, Android Common Kernel(ACK)으로 관리된다.[2] 이러한 구조는 하드웨어별 차이를 분리하면서도 플랫폼 일관성을 유지하는 데 목적이 있다.[1][2]

이 때문에 구글이 제공하는 공통 기반 위에서도 제조사별 구현 차이를 둘 수 있다.[3] 다시 말해 Android는 하드웨어를 추상화해 공통 규칙을 만들고, 그 위에 기기별 확장을 얹는 방식으로 생태계를 유지한다.[1][2]

3. 개발 환경

안드로이드 앱 개발의 공식 IDE는 Android Studio이다.[4] Android Studio는 Android 앱 개발용 환경을 제공하며, Windows, macOS, Linux, ChromeOS에서 사용할 수 있다.[4] 개발자는 이 환경에서 앱 소스와 빌드 과정을 관리하고, 플랫폼용 애플리케이션을 테스트한다.[4]

이 개발 환경은 앱의 구조와 빌드 결과를 한 흐름으로 다룰 수 있게 해 준다. 따라서 Android 개발자는 단일 도구 안에서 코드, 리소스, 배포 준비를 함께 살피며 작업하게 된다.[4] 이런 개발 방식은 모바일컴퓨팅구글의 플랫폼 전략이 만나는 지점이기도 하다.

4. 활용 범위

안드로이드는 스마트폰에만 머물지 않고 태블릿, 웨어러블, 자동차 같은 서로 다른 기기 범주로 확장되었다.[3] 또한 연결된 기기 전반을 지원하도록 설계되어 스마트 기기 환경 전반에서 같은 사용자 경험을 이어 가는 데 초점을 둔다.[3]

기기마다 입력 방식과 화면 비율, 사용 맥락은 다르지만 Android는 같은 플랫폼 규칙을 바탕으로 그 차이를 흡수한다.[1][3] 이 범위 확장은 안드로이드가 단일 제품군이 아니라, 서로 다른 장치 위에서 공통 인터페이스를 제공하는 플랫폼임을 보여 준다.

5. 생태계

Android는 개방형 플랫폼이기 때문에 통신사, OEM, 개발자가 각자 역할을 나누어 참여할 수 있다.[3] AOSP와 ACK를 중심으로 한 공개 구조는 새로운 기기와 서비스가 같은 플랫폼 위에서 확장될 수 있는 기반을 제공한다.[1][2]

그 결과 안드로이드는 구글의 제품군을 넘어 외부 개발자와 제조사가 함께 다루는 공용 기반으로 자리 잡았다.[3] 이러한 생태계는 구글의 소프트웨어 전략과 리눅스 계열의 개방형 개발 관행이 만나는 접점으로도 볼 수 있다.

6. 관련 문서

7. 인용 및 각주

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

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

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

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