안드로이드는 Google이 주도하고 AOSP를 중심으로 공개되는 오픈소스 운영체제이자 플랫폼이다. 이 문서는 휴머노이드 로봇이 아니라 모바일·다기기 운영체제로서의 안드로이드를 다루며, 단일 제품이 아니라 공통 기반과 제조사별 변형이 결합된 생태계로 이해하는 데 초점을 둔다.[1][2]

1. 개요

Android는 단일 기기용 소프트웨어 묶음이 아니라, 여러 제조사와 기기 유형 위에 공통 기반을 제공하는 플랫폼이다. 공개 문서상 Android는 모바일 기기용 오픈소스 플랫폼과 API 환경으로 설명되며, 실제 배포 단계에서는 제조사, 칩셋, 센서 조합, 업데이트 정책, 기본 앱 구성이 더해져 같은 안드로이드 계열이라도 체감 경험이 크게 달라질 수 있다.[1][2]

운영체제 관점에서 Android의 핵심은 하드웨어 제어 계층과 앱 실행 계층을 분리해 두었다는 점이다. 이 덕분에 개발자는 공통 프레임워크와 API를 상대로 앱을 만들 수 있고, 기기 제조사와 벤더는 각자 하드웨어를 붙이면서도 전체 앱 생태계에는 참여할 수 있다. 즉 Android는 하나의 완성품이라기보다, 공통 코어를 중심으로 다양한 기기 시장을 묶는 운영체제 계열에 가깝다.[1][4]

2. 아키텍처

Android의 공개 아키텍처 문서는 Linux kernel, HAL, native libraries, ART, Android framework, system services를 하나의 적층 구조로 설명한다.[1] Linux kernel은 하드웨어와 직접 통신하는 기반이고, HAL은 카메라, 오디오, 센서 같은 장치 기능을 표준 인터페이스로 노출하게 만드는 추상화 계층이다. 그 위에서 native librariesART가 앱 실행과 성능의 기반을 제공하고, Android frameworksystem services가 앱이 기대하는 상위 기능을 구성한다.[1]

이 적층 구조가 중요한 이유는 Android가 기기별 차이를 완전히 없애지 않으면서도 앱 호환성을 유지하는 데 있기 때문이다. 제조사마다 카메라 센서나 통신 모뎀, 전원 관리 정책이 달라도, 앱 개발자는 가능한 한 공통 프레임워크와 공개 API를 상대로 개발하게 된다. 그래서 Android를 이해할 때는 개별 기기 스펙보다도, 어떤 차이가 커널과 HAL 쪽에서 흡수되고 어떤 차이가 프레임워크 바깥에서 드러나는지를 함께 보는 편이 더 정확하다.[1][4]

3. 제조사 변형과 공통 기반

Android는 AOSP를 중심으로 공개되지만, 실제 시장의 Android 기기는 AOSP 그대로만 배포되지 않는다. 제조사와 벤더는 하드웨어 지원, 사용자 인터페이스, 기본 앱, 성능 조정, 배터리 정책, 업데이트 주기 같은 요소를 각자 조정하며, 이 과정에서 같은 Android 버전을 써도 제품별 사용감이 크게 달라질 수 있다.[1][4]

그렇다고 해서 Android가 완전히 파편화된 집합이라는 뜻은 아니다. 공통 프레임워크, 보안 원칙, 앱 호환성 규칙, 그리고 Google Play를 중심으로 한 배포 관행이 있어서 개발자와 사용자는 여전히 하나의 플랫폼처럼 Android를 인식한다. 즉 Android의 본질은 “공통 운영체제 코어 + 제조사별 구현 + 호환성 규칙”의 조합이며, 이 세 축을 동시에 봐야 실제 생태계를 설명할 수 있다.[1][4]

4. 기기와 폼팩터

Android는 전통적인 스마트폰을 중심에 두지만, 그 범위는 더 넓다. Google의 multidevice 문서는 Wear OS, Android XR, Android TV, Android for Cars, foldables, tablets 같은 폼팩터를 같은 생태계의 일부로 다룬다.[5] 즉 Android는 단순한 휴대전화 운영체제가 아니라, 화면 크기와 입력 방식, 이동성, 착용성, 거치 환경이 서로 다른 장치들을 묶는 범용 플랫폼으로 설계되어 있다.[5]

이 점은 Android의 강점이자 복잡성이다. 손목 위의 웨어러블, 거실의 TV, 차량용 디스플레이, 접히는 대화면 기기는 모두 다른 제약을 갖기 때문에, 같은 운영체제 계열이라도 앱 구조와 인터페이스 우선순위가 달라진다. 그래서 Android를 설명할 때는 “폰 OS”라는 좁은 표현보다, 여러 장치 유형을 포괄하는 다기기 소프트웨어 기반으로 보는 편이 실제 플랫폼 구조를 더 잘 드러낸다.[5]

5. 호환성과 배포

Android의 앱 호환성은 단순히 버전 번호만으로 결정되지 않는다. Android Developers 문서는 앱이 의존하는 하드웨어 또는 소프트웨어 기능을 'uses-feature'로 선언하고, Google Play가 이 요구 사항과 실제 기기 기능을 비교해 설치 가능 여부를 판단한다고 설명한다.[4] 다시 말해 Android 생태계에서는 운영체제 이름이 같아도, 센서·입력 방식·화면 특성·통신 기능 차이 때문에 설치 가능 범위와 실제 동작 품질이 달라질 수 있다.[4]

이 구조 때문에 같은 APKAAB라도 모든 Android 기기에서 같은 방식으로 설치되거나 동작하지는 않는다. 특정 센서가 없거나 화면 조건이 다르면 설치를 막아야 할 수도 있고, 런타임에서 기능 유무를 점검한 뒤 단계적으로 기능을 줄이는 방식이 더 적절할 수도 있다. Android의 호환성 모델은 그래서 “모든 기기에 완전히 동일한 경험”을 약속하기보다, 기기 다양성을 전제로 하면서도 하나의 앱 생태계를 유지하려는 설계라고 보는 편이 맞다.[4][5]

6. 보안

Android 보안은 단일 기능이 아니라 여러 방어층의 조합으로 설명하는 것이 맞다. 공개 보안 문서는 Application Sandbox, SELinux, Verified Boot, encryption을 핵심 축으로 다룬다.[2][3][6][7] 이 구성은 앱 격리, 운영체제 무결성, 저장소 보호를 서로 다른 계층에서 맡게 해, 특정 한 기능의 실패가 전체 보안 붕괴로 직결되지 않도록 설계되어 있다.[2][3]

Application Sandbox는 각 앱을 고유 UID와 프로세스로 분리해, 앱끼리의 직접 접근을 기본적으로 제한한다. 이 원칙 덕분에 앱 A가 앱 B의 데이터를 임의로 읽거나 바꾸는 것이 기본 동작으로 허용되지 않으며, 권한 모델과 프로세스 격리가 함께 작동해 앱 단위의 경계를 형성한다.[3] Android 보안의 출발점은 그래서 “앱은 서로 믿지 않는다”는 가정이라고 볼 수 있다.[2][3]

그 위에서 SELinux는 시스템 전반에 강제 접근 제어를 적용하고, Verified Boot는 부팅 시점부터 실행 코드의 무결성을 검증한다. 여기에 파일 기반 암호화와 전체 디스크 암호화 같은 저장소 보호가 더해져, 실행 중인 앱의 격리와 기기 자체의 신뢰 체인을 함께 유지한다. Android는 흔히 개방성과 유연성으로 기억되지만, 공식 문서가 보여 주는 기본 보안 모델은 오히려 다층 방어를 강하게 전제한 구조에 가깝다.[2][6][7]

7. 버전과 지원

Android는 버전이 올라갈수록 API, 보안 기준, 기기 요구 조건, 다기기 적응 범위가 함께 바뀐다. 다만 사용자 입장에서는 버전 번호 자체보다 “내 기기가 어떤 기능을 제공하고, 어느 앱을 안정적으로 돌릴 수 있는가”가 더 중요한 질문이 된다. 그래서 Android의 버전 이해는 단순한 숫자 비교보다, 호환성 규칙과 폼팩터 지원, 제조사 업데이트 정책이 실제 사용 경험을 어떻게 바꾸는지와 함께 읽어야 한다.[4][5]

제조사별 커스터마이징과 기기별 차이 때문에 Android를 하나의 단일 제품처럼 다루면 쉽게 오해가 생긴다. 더 정확한 이해는 “AOSP 기반의 공통 운영체제 + 제조사와 기기별 변형 + Play와 호환성 규칙 + 다기기 확장”의 조합으로 보는 것이다. 이 문서는 그런 큰 틀을 설명하는 부모 문서이고, 특정 버전 변화나 장치별 구현 차이는 후속 문서로 분리해 다루는 편이 적절하다.[1][4][5]

8. 관련 문서

9. 인용 및 각주

[1] Architecture overview, Android Open Source Project, Ssource.android.com(새 탭에서 열림)

[2] Secure an Android device, Android Open Source Project, Ssource.android.com(새 탭에서 열림)

[3] Application Sandbox, Android Open Source Project, Ssource.android.com(새 탭에서 열림)

[4] Device compatibility overview, Android Developers, Ddeveloper.android.com(새 탭에서 열림)

[5] Multidevice development, Android Developers, Ddeveloper.android.com(새 탭에서 열림)

[6] Security-Enhanced Linux in Android, Android Open Source Project, Ssource.android.com(새 탭에서 열림)

[7] Verified Boot, Android Open Source Project, Ssource.android.com(새 탭에서 열림)