안드로이드 (운영체제)

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

안드로이드(Android)는 구글이 개발하고 안드로이드 오픈 소스 프로젝트(AOSP)를 통해 공개하는 모바일 운영체제이다. 2003년 안드로이드사로 시작하여 2005년 구글에 인수되었으며, 2007년 오픈 핸드셋 얼라이언스(OHA) 결성을 통해 리눅스 커널 기반의 모바일 플랫폼으로 발표되었다. 2008년 오픈 소스로 공개되었으며, 전 세계 스마트폰 시장에서 높은 점유율을 차지하고 있다. 주요 기능으로는 다양한 하드웨어 지원, 웹 브라우저, 멀티미디어 API, 멀티터치 등을 제공하며, 정기적인 업데이트를 통해 개선 및 새로운 기능을 추가한다. 안드로이드 웨어, 안드로이드 오토, 안드로이드 TV 등 다양한 형태로 확장되어 사물 인터넷(IoT) 분야에서도 활용되고 있다. 안드로이드 애플리케이션은 안드로이드 스튜디오를 통해 개발되며, 구글 플레이 스토어를 통해 배포된다. 보안 취약점, 개인 정보 유출, 파편화, 업데이트 지연 등의 문제로 비판을 받기도 한다.

안드로이드 (운영체제) - [IT 관련 정보]에 관한 문서
기본 정보
이름안드로이드
워드마크와 로고
워드마크와 로고
설명최신 버전인 안드로이드 13의 스크린샷
개발자구글
오픈 핸드셋 얼라이언스
Android 오픈 소스 프로젝트 (AOSP)
계열유닉스 계열 (수정된 리눅스 커널)
상태지원 중
출시일안드로이드 1.0
최신 미리보기 버전안드로이드 16 개발자 프리뷰 2
최신 출시 버전안드로이드 15
마케팅 대상스마트폰
태블릿 컴퓨터
스마트 TV (Android TV)
자동차 (Android Automotive)
스마트워치 (Wear OS)
언어100개 이상
프로그램 언어자바
코틀린 (UI)
C (코어)
C++
러스트
업데이트 모델무선 통신
패키지 관리자APK 기반
지원 플랫폼ARM64 (이전 버전은 ARMv7, x86, x86-64, MIPS 및 RISC-V와도 호환; 이러한 아키텍처는 타사 솔루션을 통해 비공식적으로 지원됨)
커널 유형모놀리식 커널 (리눅스 커널)
사용자 공간Bionic libc, mksh 쉘, Toybox (코어 유틸리티)
UI그래픽 사용자 인터페이스 (멀티터치)
라이선스아파치 라이선스 2.0 (사용자 공간 소프트웨어)
GNU GPL v2 (Linux 커널 수정)
웹사이트Android 공식 웹사이트
지원 상태지원 중
기타
기타 문서안드로이드 버전 역사
📚 더 읽어볼만한 페이지
  • 운영체제 계열 - BSD
    BSD는 캘리포니아 대학교 버클리에서 시작된 유닉스 계열 운영 체제로, 오픈 소스 라이선스인 BSD 라이선스를 통해 자유롭게 사용 및 배포되며, FreeBSD, OpenBSD, NetBSD 등 다양한 운영 체제로 파생되었다.
  • 운영체제 계열 - 유닉스 계열
    유닉스 계열은 유닉스 운영체제의 특징과 설계를 공유하는 운영체제들을 지칭하며, 유전적, 상표, 기능적 유닉스로 분류되고 macOS는 상표 유닉스이자 유전적 유닉스에 해당하며 리눅스는 기능적 유닉스의 대표적인 예이다.
  • 구글의 운영 체제 - 웨어 OS
    웨어 OS는 구글이 개발한 스마트워치용 운영 체제로, 구글 서비스 통합, 음성 제어, 피트니스 추적 등의 기능을 제공하며 안드로이드 및 iOS 기기와 연동되고, 핏비트 인수 후 디자인 개선 및 피트니스 기능 통합, 삼성 갤럭시 워치 시리즈 탑재 등을 통해 지속적으로 발전하고 있다.
  • 구글의 운영 체제 - 구분투
    구분투는 투표 용지에 후보나 정당을 구분하여 표시하는 방식이다.
  • 클라우드 클라이언트 - 스마트폰
    스마트폰은 개인용 컴퓨터 수준의 기능을 갖춘 휴대형 정보 단말기로, iOS와 안드로이드 운영체제를 기반으로 다양한 기능을 제공하지만 과도한 사용은 문제를 야기할 수 있다.
  • 클라우드 클라이언트 - 구글 크롬
    구글 크롬은 구글이 개발한 웹 브라우저로, 크로미엄 프로젝트를 기반으로 오픈 소스 코드를 활용하여 개발되었으며, 다양한 기능과 운영체제 지원을 통해 세계 시장 점유율 1위를 기록하지만 개인 정보 보호 정책으로 비판을 받기도 한다.

2. 역사

녹색 안드로이드 피규어
녹색 안드로이드 피규어


안드로이드의 역사는 2003년 10월, 앤디 루빈을 비롯한 여러 개발자들이 미국 캘리포니아주 팔로알토에서 안드로이드사(Android Inc.)를 설립하면서 시작되었다. 2005년 7월, 구글은 이 회사를 인수했고, 앤디 루빈 등 주요 개발자들은 구글에 합류하여 리눅스 커널 기반의 모바일 플랫폼을 개발했다.

2007년 11월 5일, 구글은 텍사스 인스트루먼트, 브로드컴, HTC, 삼성전자, LG전자 등 여러 회사들과 함께 오픈 핸드셋 얼라이언스(OHA)를 결성하고, 모바일 기기의 공개 표준을 목표로 하는 안드로이드 플랫폼을 발표했다. 2008년 10월 21일에는 안드로이드가 아파치 라이선스를 통해 오픈 소스로 공개되었다.

2008년 9월 23일, 최초의 상용 안드로이드 스마트폰인 HTC 드림(T-Mobile G1)이 발표되었다. 이후 안드로이드는 지속적인 업데이트를 통해 발전해왔다. 초기에는 컵케이크, 도넛 등 디저트 이름을 코드명으로 사용했으나, 안드로이드 10부터는 숫자만 사용하고 있다.

2014년 10월 16일, 안드로이드 5.0 버전부터는 달빅 가상 머신을 대체하는 안드로이드 런타임(ART)이 도입되어 성능이 향상되었다.

안드로이드 발전에 큰 영향을 미친 주요 기기로는 넥서스 시리즈와 픽셀 시리즈가 있다. 넥서스 시리즈는 "순정 안드로이드"와 빠른 업데이트를 제공하며 안드로이드의 표준을 제시했고, 픽셀 시리즈는 구글이 직접 설계한 하드웨어와 소프트웨어의 최적화된 경험을 제공한다.

2.1. 안드로이드사 설립과 구글 인수

2003년 10월, 앤디 루빈, 리치 마이너, 닉 시어스, 크리스 화이트는 미국 캘리포니아주 팔로알토에서 안드로이드사(Android Inc.)를 설립했다. 루빈은 안드로이드 프로젝트에 대해 "소유자의 위치와 선호도를 더 잘 인식하는 더욱 스마트한 모바일 기기를 개발하는 데 엄청난 잠재력을 가지고 있다"고 설명했다.

2005년 7월, 구글은 안드로이드사를 인수했다. 인수 당시 안드로이드사에 대해 알려진 바는 거의 없었으나, 이 회사가 휴대전화용 소프트웨어를 개발하고 있다는 사실은 알려져 있었다. 앤디 루빈을 포함한 안드로이드사의 주요 직원들은 구글에 합류했으며, 이들은 리눅스 커널을 기반으로 하는 모바일 기기 플랫폼을 개발했다.

2.2. 오픈 핸드셋 얼라이언스(OHA) 결성과 안드로이드 발표

2005년 7월, 구글은 앤디 루빈이 설립한, 미국 캘리포니아주 팔로알토에 위치한 작은 회사인 안드로이드사를 인수했다. 이후, 구글이 "gPhone"이라는 자체 휴대전화를 개발한다는 소문이 돌기도 했다.

2007년 11월 5일, 구글, 미국의 퀄컴, 독일의 통신사 T-모바일 등이 주축이 되어 오픈 핸드셋 얼라이언스(OHA)를 결성하고, 휴대전화용 소프트웨어 플랫폼인 안드로이드를 발표했다. OHA의 주요 목표는 모바일 기기의 공개 표준을 개발하는 것이었다.

2.3. 초기 안드로이드 버전 출시

2008년 10월 21일, 구글은 네트워크와 텔레폰 스택을 포함하는 안드로이드의 완전한 소스 코드를 아파치 라이선스로 공개하며 오픈 소스로 선언하였다.

안드로이드를 탑재한 최초의 상용 기기인 HTC 드림(T-Mobile G1)(2008년)
안드로이드를 탑재한 최초의 상용 기기인 HTC 드림(T-Mobile G1)(2008년)

최초의 상용 안드로이드 스마트폰은 2008년 9월 23일에 발표된 HTC 드림(T-Mobile G1)이었다.

2.4. 안드로이드 버전 업데이트와 코드네임

안드로이드는 6개월~12개월에 한 번씩 주기적으로 업데이트를 진행하며, 주로 오류 수정이나 새로운 기능을 추가한다. 안드로이드의 각 버전은 알파벳 첫 글자를 오름차순에 맞춘 음식 이름(디저트)을 코드명으로 사용했다. 예를 들어, 1.5 버전은 컵케이크(Cupcake), 1.6 버전은 도넛(Donut), 2.0~2.1 버전은 이클레어(Éclair) 등으로 불렸다.



2019년 안드로이드 10부터는 디저트 코드명 사용을 중단하고 숫자만 사용한다. 구글은 이러한 코드명들이 국제 사용자에게 "포괄적이지 않다"고 판단했다. 즉, 디저트 이름이 국제적으로 이해하기 어렵거나 일부 언어에서 발음하기 어렵기 때문에 이러한 결정을 내렸다고 설명했다.

안드로이드 버전 업데이트는 기기 제조사에서 구글의 소스를 받아 직접 작업 후 배포해야 하므로, 이전 버전을 사용하는 기기들은 바로 업데이트를 제공받지 못할 수 있다. 하드웨어 성능의 한계로 업그레이드가 취소되기도 한다. 그러나 안드로이드 8.0부터 프로젝트 트레블이 적용되어 하드웨어 제어 부분과 소프트웨어 제어 프로그램이 분리되면서, 업데이트가 더 빨라졌다.

2.5. 안드로이드 런타임(ART) 도입

2014년 10월 16일 안드로이드 5.0 버전 발표와 함께 기존의 달빅 가상 머신안드로이드 런타임(ART)으로 대체하였다.

2.6. 주요 안드로이드 기기

2010년 구글은 다양한 기기 제조업체와 협력하여 새로운 기기를 생산하고 새로운 안드로이드 버전을 소개하는 제품군인 넥서스 시리즈를 출시했다. 이 시리즈는 "새로운 소프트웨어 반복과 하드웨어 표준을 전반적으로 도입함으로써 안드로이드 역사에서 중요한 역할을 했다"고 설명되었으며, "시기적절한… 업데이트"가 포함된 "블로트웨어가 없는" 소프트웨어로 유명해졌다.

2013년 5월 개발자 컨퍼런스에서 구글은 삼성의 자체 안드로이드 사용자 정의 대신 "순정 안드로이드"를 실행하고 새로운 시스템 업데이트를 빠르게 받을 것을 약속한 특별 버전의 삼성 갤럭시 S4(Samsung Galaxy S4)를 발표했다. 이 기기는 구글 플레이 에디션 프로그램의 시작이 되었으며, HTC 원 구글 플레이 에디션, 모토 G 구글 플레이 에디션 등이 뒤따랐다.

2016년 10월 구글은 구글이 만든 최초의 휴대전화로 판매되는 픽셀 및 픽셀 XL 스마트폰을 출시했고, 구글 어시스턴트(Google Assistant)와 같이 특정 소프트웨어 기능을 독점적으로 제공한 후 광범위하게 출시했다. 픽셀 휴대전화는 넥서스 시리즈를 대체했으며, 2017년 10월 새로운 세대의 픽셀 휴대전화가 출시되었다.

3. 구조

아키텍처 다이어그램
아키텍처 다이어그램

안드로이드의 구조는 응용 프로그램, 응용 프로그램 프레임워크, 라이브러리, 안드로이드 런타임, 리눅스 커널의 총 5개 계층으로 분류된다.

순정 안드로이드 7.0 누가(Nougat)부터 분할 화면 보기를 기본적으로 지원하게 되었다.

분할 화면 보기 모드를 제공하는 것으로 알려진 가장 초기의 공급업체 맞춤형 안드로이드 기반 스마트폰은 2012년 삼성 갤럭시 S3와 삼성 갤럭시 노트 II이며, 전자는 안드로이드 4.1 젤리빈(Jelly Bean)에서 터치위즈(TouchWiz)를 통해 제공된 프리미엄 스위트(premium suite) 업그레이드로 이 기능을 지원하게 되었다.

이 절에서는 [https://developer.android.com/ Android Developers]에서 발표된 표준 Android(AOSP)에 대해 기술한다. 서드파티가 독자적으로 추가(커스터마이징)한 기능은 포함하지 않는다.

3.1. 계층 구조

아키텍처 다이어그램
아키텍처 다이어그램

안드로이드의 구조는 응용 프로그램, 응용 프로그램 프레임워크, 라이브러리, 안드로이드 런타임, 리눅스 커널의 총 5개 계층으로 분류된다.

3.2. 핵심 구성 요소

아키텍처 다이어그램
아키텍처 다이어그램

안드로이드의 핵심 구성 요소는 다음과 같다.

* 리눅스 커널: 하드웨어 추상화, 메모리 관리, 프로세스 관리 등을 담당한다. 안드로이드 커널은 리눅스 커널에 고유 패치를 적용한 Android 공통 커널(ACK)을 사용한다. ACK 5.4 이후로는 외부 모듈을 로드하기 위한 커널 모듈 인터페이스(KMI)를 제공하는 범용 커널 이미지(GKI)가 되었으며, 각 프로세서 벤더는 벤더 모듈을 제공하는 형태가 되었다.

👆
좌우로 밀어서 보기
종류커널 URL
Android 공통 커널 (ACK)https://android.googlesource.com/kernel/common/
CodeLinaro의 커널 관련 코드
(Code Aurora Forum의 후속)
https://git.codelinaro.org/clo/la/kernel/


* 안드로이드 런타임(ART): 애플리케이션 실행 환경을 제공한다. 안드로이드 5.0 이상에서는 표준 가상 머신이 Android Runtime(ART)으로 변경되었다. Dalvik/ART는 일반적인 Java 가상 머신과 달리 메모리 소비량이 낮게 유지되는 등 모바일 환경에 최적화된 설계이다.
* 라이브러리: 미디어 프레임워크, 그래픽 라이브러리 등 다양한 기능을 제공한다.
* C/C++ 라이브러리:
👆
좌우로 밀어서 보기
기능
항목설명
이동통신망 지원GSM, UMTS, CDMA2000, EV-DO, LTE, 3G, 4G, 5G
기타 네트워크 지원블루투스, Wi-Fi, NFC
다양한 하드웨어 지원위성항법시스템, 가속도 센서, 자력 센서, 2D/3D 그래픽 지원 하드웨어(GPU) 등
웹 브라우저Chromium 기반 브라우저가 내장되어 있다(4.3 이전 버전은 WebKit 기반). 이 기능은 다른 응용 프로그램에서도 사용할 수 있다.
이메일SMS(단문 메시지 서비스)와 MMS(멀티미디어 메시지 서비스)를 사용할 수 있다.
응용 프로그램 마켓Google에서 Android용 응용 프로그램을 배포하고 판매하는 Google Play 스토어를 운영하고 있다.
멀티터치기본적으로 지원하며, HTC Hero 등의 기기에서 지원된다.
데이터 저장 API데이터 저장을 위해 SQLite가 내장되어 있다.
멀티미디어 APIMedia Framework라는 비디오 및 오디오 라이브러리를 통해 H.263, H.264(3GPP/MP4 컨테이너), H.265, MPEG-4 SP, WebM, AMR, AMR-WB(3GPP 컨테이너), AAC, HE-AAC(MP4/3GPP 컨테이너), MP3, MIDI, Vorbis, WAV, JPEG, PNG, HEIF, GIF, BMP, WebP 등을 지원한다.
폰트FreeType 폰트 라이브러리를 통해 TrueType, Type1, OpenType 등의 폰트 형식을 지원한다.
기타 라이브러리OpenGL ES, Vulkan, OpenSL ES, OpenMAX AL, Skia(SGL), SSL, zlib, 표준 C 라이브러리(Bionic), 표준 C++ 라이브러리(libstdc++/libc++) 등

* 애플리케이션 프레임워크: 애플리케이션 개발을 위한 API를 제공한다.
* 응용 프로그램: 전화, 메시지, 브라우저 등 기본 앱 및 사용자 설치 앱이 있다. 대부분의 안드로이드 기기에는 Gmail, Google 지도, Google 크롬, YouTube, Google Play 무비 & TV 등의 Google 앱이 사전 설치되어 있다.

4. 안드로이드 에브리웨어

2014년 6월 25일, 구글은 구글 I/O에서 사물인터넷(IoT) 전략의 일환으로 다양한 안드로이드 파생 운영체제를 공개했다. 여기에는 웨어러블 기기를 위한 웨어 OS, 텔레비전을 위한 안드로이드 TV, 스마트 기기 및 사물 인터넷 기기를 위한 안드로이드 Things, 자동차를 위한 안드로이드 오토모티브가 포함된다.

안드로이드의 개방성과 사용자 정의 가능성은 기기 제조업체들이 노트북, 넷북, 데스크탑 컴퓨터, 카메라, 헤드폰, 홈 오토메이션 시스템, 게임 콘솔, 미디어 플레이어, 위성, 라우터, 프린터, 결제 단말기, 현금 자동 입출금기, 기내 엔터테인먼트 시스템, 로봇 등 다양한 전자기기에 안드로이드를 적용할 수 있도록 하였다.

4.1. 웨어 OS

2014년 3월 18일 구글은 스마트워치와 웨어러블 컴퓨터에서 선두를 지키기 위해 안드로이드를 일부 수정한 안드로이드 웨어를 발표하였다. 이후 웨어 OS로 이름을 바꾸고 아이폰도 연결하여 사용할 수 있도록 개선하였다.

4.2. 안드로이드 오토

2014년 6월 25일 구글 I/O에서 공개된 안드로이드 오토는 자동차에서 구글 어시스턴트를 통해 내비게이션 이용과 메시지 보내기, 음악 재생 등을 할 수 있게 해주는 플랫폼이다. 안전상의 문제로 동영상 재생은 지원하지 않는다.

4.3. 안드로이드 TV

2014년 6월 25일 구글 I/O에서 발표된 안드로이드 TV는 기존 구글 TV의 후속 플랫폼이다. TV 화면에 최적화된 안드로이드 앱 기반 콘텐츠를 TV에서 사용할 수 있도록 지원한다.

4.4. 브릴로(Brillo)

2015년 4월 28일(현지시각) 미국 샌프란시스코에서 열린 구글 I/O에서 구글의 선다 피차이 제품총괄 수석부사장은 사물인터넷(IoT) 운영체제 ‘브릴로(Brillo)’를 발표하면서, “일상의 전자 기기부터 농부가 사용하는 장비, 버스까지 인터넷에 연결된다면 사람들의 삶은 더 크게 변할 것이다.”라고 말했다.

5. 개발

안드로이드는 구글에 의해 개발되고 있으며, 최신 변경 사항 및 업데이트가 출시되는 소스 코드는 안드로이드 오픈 소스 프로젝트에서 이용 가능하다. 구글은 새로운 기기의 공장 설치와 기존 기기의 무선 업데이트를 위해 매년 안드로이드를 출시한다.

안드로이드 기기의 다양한 하드웨어는 소프트웨어 업그레이드와 보안 패치에 상당한 지연을 초래했다. 각 업그레이드는 특별히 맞춤화되어야 했는데, 이는 시간과 자원을 소모하는 과정이었다. 구글 넥서스 및 픽셀 브랜드 내 기기를 제외하고는 업데이트가 새로운 버전이 출시된 후 몇 달 후에 도착하거나 전혀 도착하지 않는 경우가 많았다. 제조업체는 종종 최신 기기를 우선시하고 이전 기기는 뒤처지게 하며, 이동통신사가 안드로이드를 자체 요구 사항에 맞게 추가로 사용자 지정하고 업그레이드를 보내기 전에 자체 네트워크에서 광범위한 테스트를 수행함으로써 추가 지연이 발생할 수 있다. 또한 제조업체가 필요한 드라이버를 업데이트하지 않아 업그레이드가 불가능한 경우도 있다.

이러한 문제점들로 인해, 제조업체와 이동통신사의 판매 후 지원 부족은 소비자 단체와 기술 매체로부터 광범위하게 비판을 받았다.

2012년 구글은 운영 체제의 특정 측면을 분리하기 시작하여 OS와 독립적으로 구글 플레이 스토어를 통해 업데이트할 수 있도록 했다. 구글 플레이 서비스는 클로즈드 소스 시스템 수준 프로세스로서 API를 구글 서비스에 제공하며 안드로이드 2.2 "프로요" 이상을 실행하는 거의 모든 기기에 자동으로 설치된다. 이러한 변경을 통해 구글은 운영 체제 자체에 대한 업그레이드를 배포하지 않고도 새로운 시스템 기능을 추가하고 앱을 업데이트할 수 있다.

2017년 5월 안드로이드 8.0 발표와 함께 구글은 Project Treble을 도입했다. 이는 안드로이드 OS 프레임워크의 주요 재구축으로 제조업체가 안드로이드의 최신 버전으로 기기를 더 쉽고 빠르게, 그리고 저렴하게 업데이트할 수 있도록 설계되었다.

2019년 5월 안드로이드 10 발표와 함께 구글은 안드로이드 에코시스템에 대한 업데이트 제공을 간소화하고 가속화하기 위해 Project Mainline을 도입했다. Project Mainline은 Google Play 스토어를 통해 핵심 OS 구성 요소를 업데이트할 수 있도록 한다.

구글은 타사 애플리케이션 스토어의 사용을 더 쉽게 하기 위해 안드로이드 12에 새로운 수정 사항을 도입했다고 보고했다.

응용 프로그램 개발에는 Android SDK(Software Development Kit)가, 런타임 및 라이브러리 개발에는 Android NDK가 무료로 제공된다.

5.1. 안드로이드 오픈 소스 프로젝트(AOSP)

안드로이드는 구글에 의해 개발되고 있으며 최신 변경사항과 업데이트가 출시되는 소스 코드는 안드로이드 오픈 소스 프로젝트에서 이용이 가능하다. 상업용 안드로이드는 오픈 소스인 안드로이드 오픈 소스 프로젝트(Android Open Source Project), 흔히 줄여서 AOSP라고 부르는 것으로부터 만들어진다. 크롬과 크로미엄의 관계와 동일하다.

5.2. 개발 도구

--
안드로이드 스튜디오는 안드로이드 운영체제용 앱을 개발하기 위한 공식 통합 개발 환경(IDE)이다. IntelliJ IDEA를 기반으로 하며, Gradle을 빌드 도구로 사용한다. 레이아웃 디자인은 실제 단말기 이미지에 가깝게 표현된다. 2014년 12월 8일 정식 버전 1.0이 출시되었으며, 이전까지 사용되던 Eclipse용 플러그인 지원은 2015년에 종료되었다.

안드로이드 SDK(Software Development Kit)는 안드로이드 앱 개발을 위한 도구 모음이다. 여기에는 디버거, 라이브러리, 에뮬레이터 등이 포함되어 있다. 안드로이드 기기와 PC를 USB로 연결하여 앱을 실행하고 디버깅할 수 있게 해주는 "Android Debug Bridge"(adb) 도구도 포함되어 있다. 안드로이드 스튜디오에는 SDK가 포함되어 있으며, 독립적인 명령줄 도구로도 사용 가능하다.

Android NDK는 C/C++로 안드로이드 앱의 일부를 개발할 수 있게 해준다. Java Native Interface(JNI)를 통해 Java와 C/C++ 간의 상호 운용이 가능하다. 안드로이드 2.3 이후로는 Native Activity 지원을 통해 C/C++만으로 앱을 개발할 수 있지만, 사용 가능한 API에는 제약이 있다.

5.3. 프로그래밍 언어

안드로이드 운영체제는 자바, 코틀린, C/C++ 등 다양한 프로그래밍 언어를 지원한다.

안드로이드는 런타임 환경으로 Android Runtime(ART)을 사용하며, 이는 사전 컴파일(AOT 컴파일)을 통해 애플리케이션 설치 시 바이트코드를 기계어로 컴파일한다. 5.0 버전 이전에는 Dalvik을 프로세스 가상 머신으로 사용하여 JIT(Just-in-Time) 컴파일을 통해 Dalvik "dex 코드"를 실행했다.

자바 라이브러리의 경우, 안드로이드 플랫폼은 현재 단종된 Apache Harmony 프로젝트의 하위 집합을 사용한다. 2015년 12월, 구글은 다음 안드로이드 버전에서 OpenJDK 프로젝트 기반의 자바 구현으로 전환할 것이라고 발표했다.

안드로이드의 표준 C 라이브러리인 Bionic은 구글이 안드로이드를 위해 특별히 개발한 것으로, BSD의 표준 C 라이브러리 코드에서 파생되었다. Bionic은 리눅스 커널에 특정한 여러 주요 기능을 갖도록 설계되었다.

Android Native Development Kit r5 버전까지 C 또는 C++로 완전히 작성된 애플리케이션에 대한 지원이 제공되었다. C로 작성된 라이브러리는 JNI를 사용하여 애플리케이션에서 사용할 수도 있다.

2021년부터 신규 코드의 기본 언어를 Rust로 변경했으며, 2022년 12월 현재 신규 코드에서 Rust가 차지하는 비율은 21%에 달한다. 애플리케이션과 애플리케이션 프레임워크는 구글이 자체적으로 구축한 가상 머신인 Dalvik 가상 머신 또는 Android Runtime(ART) 상의 "자바 플랫폼, 표준 에디션(Java SE)의 하위 집합 + 안드로이드 확장" 환경에서 작성한다.

6. 버전

안드로이드는 6개월에서 12개월 주기로 업데이트를 진행하며, 주로 오류 수정이나 새로운 기능을 추가한다. 각 버전은 버전 1.5부터 알파벳 순서에 맞춰 디저트 이름을 코드명으로 사용한다. 버전 번호는 1.0, 2.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0 등으로 올라가며, 앞자리 숫자가 바뀌면 대규모 업데이트(메이저 업데이트), 소수점 아래 숫자가 바뀌면 소규모 업데이트(마이너 업데이트)를 의미한다.

이전 버전을 사용하는 기기는 바로 업데이트를 제공받을 수 없으며, 기기 제조사가 구글의 소스를 받아 직접 작업 후 배포해야 한다. 이 때문에 하드웨어 성능의 한계로 업그레이드가 취소되기도 한다. 하지만 안드로이드 8.0부터 프로젝트 트레블이 적용되어 하드웨어 제어 부분과 소프트웨어 제어 프로그램이 분리되어 출시된 기기는 그렇지 않은 기기에 비해 상대적으로 빠른 업데이트가 가능하다.

안드로이드 소스 코드는 구글에 의해 오픈소스 라이선스 하에 공개되어, 많은 개발자와 애호가들이 오픈소스 코드를 기반으로 커뮤니티 주도 프로젝트를 진행하고 있다. 이러한 프로젝트는 구형 기기에 업데이트를 제공하거나, 고급 사용자를 위한 새로운 기능을 추가하거나, 원래 다른 운영 체제와 함께 출시된 기기에 안드로이드를 적용하는 것을 목표로 한다. 사이노젠모드는 가장 널리 사용되는 커뮤니티 펌웨어였지만, 현재는 서비스가 중단되었고 LineageOS가 그 뒤를 잇고 있다.

👆
좌우로 밀어서 보기
버전코드명API 레벨점유율
4.0.3 - 4.0.4아이스크림 샌드위치(Ice Cream Sandwich)150%
4.1젤리빈(Jelly Bean)160%
4.2170%
4.3180%
4.4킷캣(KitKat)190.3%
5.0롤리팝(Lollipop)210.3%
5.1220.3%
6.0마시멜로(Marshmallow)231.9%
7.0누가(Nougat)242.0%
7.1255.0%
8.0오레오(Oreo)267.0%
8.1275.3%
9파이(Pie)2817.7%
10큐(Q)2934.5%
11아르(R)3025.9%
12에스(S)31미측정
13티라미수(Tiramisu)33미측정
14업사이드다운케이크(Upside Down Cake)34미측정
15바닐라 아이스크림(Vanilla Ice Cream)35미측정


2003년 앤디 루빈 등이 설립한 안드로이드사는 2005년 구글에 인수되었고, 2007년 오픈 핸드셋 얼라이언스를 통해 안드로이드 플랫폼이 발표되었다. 주요 연혁은 다음과 같다.

* 2007년 11월 5일: 오픈 핸드셋 얼라이언스 (OHA)에서 안드로이드 발표.
* 2008년
* 9월 23일: 최초의 상용 안드로이드 기기인 T-Mobile G1 발표 및 "Android 1.0 SDK, Release 1" 발표.
* 10월 22일: T-Mobile G1 출시 및 "Android Market" 개설.
* 12월 9일: 소프트뱅크 모바일, 보다폰, 도시바 등 14개사 OHA 참여.
* 2009년 11월 8일: 모토로라 제조 Android 2.0 탑재 스마트폰 Motorola Droid 미국 판매.
* 2010년
* 1월 5일: Android 2.1 탑재 넥서스 원 출시.
* 12월 16일: Android 2.3 탑재 넥서스 S 미국 출시.
* 2011년
* 2월 24일: Android 3.0 탑재 모토로라 줌 미국 출시.
* 11월 17일: Android 4.0 탑재 갤럭시 넥서스 유럽 출시.
* 2012년
* 7월 10일: Android 4.1 공개.
* 11월 13일: Android 4.2 공개.
* 2013년
* 7월 24일: Android 4.3 공개.
* 11월 1일: Android 4.4 탑재 넥서스 5 출시.
* 2014년
* 3월 18일: 스마트워치용 Android Wear 출시.
* 6월 25일: Android Auto 발표.
* 10월 15일: Android 5.0 발표.
* 11월 3일: Android 5.0 정식 버전 공개.
* 2015년
* 3월 10일: Android 5.1 정식 버전 공개.
* 10월 6일: Android 6.0 정식 버전 공개.
* 2016년
* 8월 23일: Android 7.0 정식 버전 공개.
* 10월 4일: Android 7.1 정식 버전 공개.
* 12월 5일: Android 7.1.1 정식 버전 공개.
* 2017년
* 4월 4일: Android 7.1.2 정식 버전 공개.
* 8월 21일: Android 8.0 정식 버전 공개.
* 11월 27일: Android 8.1 정식 버전 공개.
* 2018년 8월 6일: Android 9 정식 버전 공개.
* 2019년 9월 3일: Android 10 정식 버전 공개.
* 2020년 9월 8일: Android 11 정식 버전 공개.
* 2021년 10월 4일: Android 12 정식 버전 공개.
* 2022년 8월 16일: Android 13 정식 버전 공개.
* 2023년
* 9월 6일: 로고 갱신.
* 10월 4일: Android 14 정식 버전 공개.
* 2024년 10월 15일: Android 15 정식 버전 공개.

6.1. 버전별 코드네임

안드로이드 버전은 1.0부터 시작하여 숫자가 올라가며 판올림을 한다. 앞자리의 숫자가 올라가면 대규모 업데이트(메이저 업데이트), 소수점 아래 숫자가 올라가면 소규모 업데이트(마이너 업데이트)로 규정한다.

안드로이드의 각 버전들은 알파벳 첫 글자를 오름차순에 맞춘 음식 이름(디저트)을 코드명으로 삼고 있다. 버전 이름은 알파벳 C부터 알파벳 순으로 이어갔다. 1.0에서는 A부터 알파벳 순으로 로봇의 이름을 붙이려 Astro Boy라는 이름을 내부에서 붙였고 1.1에서는 이 규칙을 위반한 채 디저트가 좋다는 PM의 취향으로 Petit Four으로 지정하였다. 1.5 버전부터 지금의 체제를 완성했다. Astro Boy는 공식적인 이름으로 인정받지는 못했다.

👆
좌우로 밀어서 보기
버전코드명출시일
1.5컵케이크
1.6도넛
2.0~2.1에클레르(이클레어)
2.2~2.2.1프로요
2.3~2.3.7진저브레드
3.0/3.1/3.2허니콤
4.0~4.0.4아이스크림 샌드위치
4.1~4.3.1젤리빈
4.4~4.4.4킷캣
5.0~5.1.1롤리팝
6.0~6.0.1마시멜로
7.0~7.1.2누가
8.0~8.1오레오
9.0파이
10.0안드로이드 10
11.0안드로이드 11
12.0안드로이드 12
13티라미수
14거꾸로 케이크
15바닐라 아이스크림

6.2. 주요 버전별 특징 (예: 버전 10.0)

안드로이드는 6개월~12개월 주기로 업데이트를 진행하며, 주로 오류를 수정하거나 새로운 기능을 추가한다. 각 버전은 알파벳 순서에 맞춰 디저트 이름을 코드명으로 사용한다. 버전 번호는 1.0, 2.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0 등으로 올라가며, 앞자리 숫자가 바뀌면 대규모 업데이트(메이저 업데이트), 소수점 아래 숫자가 바뀌면 소규모 업데이트(마이너 업데이트)를 의미한다.

안드로이드 8.0부터는 프로젝트 트레블이 적용되어 하드웨어 제어 부분과 소프트웨어 제어 프로그램이 분리되어 출시된 기기들은 상대적으로 빠른 업데이트가 가능하다.

안드로이드 10의 주요 특징은 다음과 같다.

* 커널: 리눅스
* 그래픽 엔진: 오픈 GL의 휴대기기용 버전인 오픈GL ES와 벌컨 (API)
* 폰트: 프리타입
* 웹 렌더링: 웹키트 엔진
* 보안 모듈: SSL
* 개발 환경: IntelliJ IDEA 기반의 안드로이드 스튜디오 사용을 권장

7. 시장 점유율

2014년 1월 21일 미국의 시장조사업체 스트래티지애널리틱스(SA)는 세계 88개국을 대상으로 운영체제(OS)별 스마트폰 사용자 수(Installed Base)와 점유율을 조사하였다.

세계 스마트폰 판매량 점유율 추이는 다음과 같다.

👆
좌우로 밀어서 보기
시기총계안드로이드iOS심비안블랙베리바다마이크로소프트기타
2009년 2분기40,971,8001.8%13.0%51.0%19.0%9.3%5.8%
2009년 3분기41,093,3003.5%17.1%44.6%20.7%7.9%6.2%
2009년 4분기
2010년 1분기54,505,5009.6%15.3%44.2%19.7%6.8%4.4%
2010년 2분기62,058,10017.2%14.1%40.9%18.7%0.9%4.9%3.2%
2010년 3분기81,132,60025.3%16.6%36.3%15.4%1.1%2.7%2.5%
2010년 4분기101,150,30030.5%15.8%32.3%14.6%2.0%3.4%1.5%
2011년 1분기99,775,00036.4%16.9%27.7%13.0%1.9%2.6%1.5%
2011년 2분기107,740,40043.4%18.2%22.1%11.7%1.9%1.6%1.0%
2011년 3분기115,185,40052.5%15.0%16.9%11.0%2.2%1.5%0.9%
2011년 4분기149,041,80050.9%23.8%11.7%8.8%2.1%1.9%0.8%
2012년 1분기144,391,70056.1%22.9%8.6%6.9%2.7%1.9%0.9%
2012년 2분기153,686,10064.1%18.8%5.9%5.2%2.7%2.7%0.6%
2012년 3분기169,178,60072.4%13.9%2.6%5.3%3.0%2.4%0.4%
2012년 4분기207,662,40069.7%20.9%1.2%3.5%1.3%3.0%0.3%
2013년 1분기210,046,10074.4%18.2%0.6%3.0%0.7%2.9%0.3%
2013년 2분기225,326,20079.0%14.2%0.3%2.7%0.4%3.3%0.2%
2013년 3분기250,231,70081.9%12.1%0.2%1.8%0.3%3.6%0.2%
2013년 4분기
2014년 1분기281,636,90080.8%15.3%0.6%2.7%0.6%
2014년 2분기290,384,40083.8%12.2%0.7%2.8%0.5%
2014년 3분기305,384,00083.3%12.5%0.8%3.0%0.4%
2014년 4분기367,334,40076.0%20.4%0.5%2.8%0.4%
2015년 1분기336,054,40078.9%17.9%0.4%2.5%0.4%
2015년 2분기329,676,40082.2%14.6%0.3%2.5%0.4%
2015년 3분기352,844,00084.7%13.1%0.3%1.7%0.3%
2015년 4분기403,109,40080.7%17.7%0.2%1.1%0.2%
2016년 1분기349,251,40084.1%14.8%0.2%0.7%0.2%
2016년 2분기344,359,70086.2%12.9%0.1%0.6%0.2%
2016년 3분기373,292,50087.8%11.5%0.1%0.4%0.2%


일본 국내 스마트폰 이용자 수(계약자 수) 추이는 다음과 같다.

👆
좌우로 밀어서 보기
시기총계안드로이드iOS(아이폰)마이크로소프트기타조사기관
2010년 6월435,0002,557,0002,144,000컴스코어(Comscore)
2010년 9월5,702,000841,0003,347,0001,475,00039,000
2010년 12월6,975,0002,174,0003,787,000831,000183,000
2011년 3월9,764,0004,601,0003,906,0001,257,000
2011년 11월15,100,00061.0%33.0%5.7%0.3%
2012년 2월19,300,00061.4%34.2%3.9%0.5%
2012년 3월62.2%33.7%3.7%0.4%
2012년 6월24,086,00064.1%32.3%3.2%0.4%
2013년 1월40,610,00063.3%34.8%1.9%MM연구소(MM総研)
2013년 9월50,150,00063.0%35.6%1.4%
2014년 3월57,340,00057.1%41.8%1.2%
2017년 10월31.8%68.2%웹레지(ウェブレッジ)
2019년 8월40.8%59.2%
2019년 12월42.08%57.02%
2020년 5월39.6%60.4%BCN


전 세계 태블릿 출하량(전자책 단말기 제외)은 다음과 같다.

👆
좌우로 밀어서 보기
시기총계안드로이드(Android)iOS윈도우기타조사기관
2010년 4분기10,700,00029.0%68.2%2.8%Strategy Analytics
2011년 2분기15,042,00029.2%61.4%8.6%
2011년 3분기17,200,00029.2%64.5%6.4%
2011년 4분기26,800,00039.2%57.4%1.9%
2012년 1분기18,700,00034.2%63.1%2.7%
2012년 2분기24,944,00029.3%68.3%2.4%
2012년 3분기24,700,00041.3%56.7%2.0%
2012년 4분기52,500,00043.6%IDC
2013년 1분기40,600,00043.4%48.2%7.4%1.0%Strategy Analytics
2013년 2분기51,700,00067.0%28.3%4.5%0.2%
2013년 3분기47,600,00029.6%IDC


일본 국내 태블릿 출하량(전자책 단말기 제외)은 다음과 같다.

👆
좌우로 밀어서 보기
시기총계안드로이드(Android)iOS윈도우기타조사기관
2010년 4월 - 2010년 9월350,00020,000320,00010,000ICT총연
2010년 10월 - 2011년 3월540,00050,000480,00010,000
2011년 4월 - 2011년 9월1,180,000370,000780,00030,000
2011년 10월 - 2012년 3월1,580,000490,0001,040,00050,000
2012년 4월 - 2013년 3월5,680,00042.4%52.5%0.0%5.1%MM종연
2013년 4월 - 2014년 3월7,480,00045.7%43.8%10.5%-
2014년 4월 - 2015년 3월9,290,00045.7%43.9%10.4%-
2015년 4월 - 2016년 3월9,030,00046.0%40.0%14.1%-

7.1. 대한민국 시장 점유율

2014년 1월 21일, 미국의 시장조사업체 스트래티지애널리틱스(SA)는 세계 88개국을 대상으로 운영체제(OS)별 스마트폰 사용자 수(Installed Base)와 점유율을 조사하였다. 조사 결과, 대한민국의 안드로이드 스마트폰 사용자 점유율은 93.4%로 세계에서 가장 높았다. 이는 전 세계 안드로이드 스마트폰 사용자 점유율(67.5%)보다 25.9%p 높은 수치이며, 조사 대상 국가 중 유일하게 안드로이드 점유율이 90%를 넘는 국가였다.

7.2. 글로벌 시장 점유율

2014년 1월 21일 미국의 시장조사업체 스트래티지애널리틱스(SA)는 세계 88개국을 대상으로 운영체제(OS)별 스마트폰 사용자 수(IB; Installed Base)와 점유율을 조사했다. 조사 결과, 대한민국의 안드로이드 스마트폰 사용자 점유율은 93.4%로 세계에서 가장 높았으며, 전 세계 시장 전체의 안드로이드 스마트폰 사용자 수 비율인 67.5%보다 25.9%p 높았다. 또한 조사 대상국 중 안드로이드 비중이 90%를 넘는 유일한 나라였다.

세계 스마트폰 판매량 점유율 추이는 다음과 같다.

👆
좌우로 밀어서 보기
시기총계안드로이드iOS심비안블랙베리바다마이크로소프트기타
2009년 2분기40,971,8001.8%13.0%51.0%19.0%9.3%5.8%
2009년 3분기41,093,3003.5%17.1%44.6%20.7%7.9%6.2%
2009년 4분기
2010년 1분기54,505,5009.6%15.3%44.2%19.7%6.8%4.4%
2010년 2분기62,058,10017.2%14.1%40.9%18.7%0.9%4.9%3.2%
2010년 3분기81,132,60025.3%16.6%36.3%15.4%1.1%2.7%2.5%
2010년 4분기101,150,30030.5%15.8%32.3%14.6%2.0%3.4%1.5%
2011년 1분기99,775,00036.4%16.9%27.7%13.0%1.9%2.6%1.5%
2011년 2분기107,740,40043.4%18.2%22.1%11.7%1.9%1.6%1.0%
2011년 3분기115,185,40052.5%15.0%16.9%11.0%2.2%1.5%0.9%
2011년 4분기149,041,80050.9%23.8%11.7%8.8%2.1%1.9%0.8%
2012년 1분기144,391,70056.1%22.9%8.6%6.9%2.7%1.9%0.9%
2012년 2분기153,686,10064.1%18.8%5.9%5.2%2.7%2.7%0.6%
2012년 3분기169,178,60072.4%13.9%2.6%5.3%3.0%2.4%0.4%
2012년 4분기207,662,40069.7%20.9%1.2%3.5%1.3%3.0%0.3%
2013년 1분기210,046,10074.4%18.2%0.6%3.0%0.7%2.9%0.3%
2013년 2분기225,326,20079.0%14.2%0.3%2.7%0.4%3.3%0.2%
2013년 3분기250,231,70081.9%12.1%0.2%1.8%0.3%3.6%0.2%
2013년 4분기
2014년 1분기281,636,90080.8%15.3%0.6%2.7%0.6%
2014년 2분기290,384,40083.8%12.2%0.7%2.8%0.5%
2014년 3분기305,384,00083.3%12.5%0.8%3.0%0.4%
2014년 4분기367,334,40076.0%20.4%0.5%2.8%0.4%
2015년 1분기336,054,40078.9%17.9%0.4%2.5%0.4%
2015년 2분기329,676,40082.2%14.6%0.3%2.5%0.4%
2015년 3분기352,844,00084.7%13.1%0.3%1.7%0.3%
2015년 4분기403,109,40080.7%17.7%0.2%1.1%0.2%
2016년 1분기349,251,40084.1%14.8%0.2%0.7%0.2%
2016년 2분기344,359,70086.2%12.9%0.1%0.6%0.2%
2016년 3분기373,292,50087.8%11.5%0.1%0.4%0.2%


일본 국내 스마트폰 이용자 수(계약자 수) 추이는 다음과 같다.

👆
좌우로 밀어서 보기
시기총계안드로이드iOS(아이폰)마이크로소프트기타조사기관
2010년 6월435,0002,557,0002,144,000컴스코어(Comscore)
2010년 9월5,702,000841,0003,347,0001,475,00039,000
2010년 12월6,975,0002,174,0003,787,000831,000183,000
2011년 3월9,764,0004,601,0003,906,0001,257,000
2011년 11월15,100,00061.0%33.0%5.7%0.3%
2012년 2월19,300,00061.4%34.2%3.9%0.5%
2012년 3월62.2%33.7%3.7%0.4%
2012년 6월24,086,00064.1%32.3%3.2%0.4%
2013년 1월40,610,00063.3%34.8%1.9%MM연구소(MM総研)
2013년 9월50,150,00063.0%35.6%1.4%
2014년 3월57,340,00057.1%41.8%1.2%
2017년 10월31.8%68.2%웹레지(ウェブレッジ)
2019년 8월40.8%59.2%
2019년 12월42.08%57.02%
2020년 5월39.6%60.4%BCN


전 세계 태블릿 출하량(전자책 단말기 제외)은 다음과 같다.

👆
좌우로 밀어서 보기
시기총계안드로이드(Android)iOS윈도우(Windows)기타조사기관
2010년 4분기10,700,00029.0%68.2%2.8%Strategy Analytics
2011년 2분기15,042,00029.2%61.4%8.6%
2011년 3분기17,200,00029.2%64.5%6.4%
2011년 4분기26,800,00039.2%57.4%1.9%
2012년 1분기18,700,00034.2%63.1%2.7%
2012년 2분기24,944,00029.3%68.3%2.4%
2012년 3분기24,700,00041.3%56.7%2.0%
2012년 4분기52,500,00043.6%IDC
2013년 1분기40,600,00043.4%48.2%7.4%1.0%Strategy Analytics
2013년 2분기51,700,00067.0%28.3%4.5%0.2%
2013년 3분기47,600,00029.6%IDC


일본 국내 태블릿 출하량(전자책 단말기 제외)은 다음과 같다.

👆
좌우로 밀어서 보기
시기총계안드로이드(Android)iOS윈도우(Windows)기타조사기관
2010년 4월 - 2010년 9월350,00020,000320,00010,000ICT総研
2010년 10월 - 2011년 3월540,00050,000480,00010,000
2011년 4월 - 2011년 9월1,180,000370,000780,00030,000
2011년 10월 - 2012년 3월1,580,000490,0001,040,00050,000
2012년 4월 - 2013년 3월5,680,00042.4%52.5%0.0%5.1%MM総研
2013년 4월 - 2014년 3월7,480,00045.7%43.8%10.5%-
2014년 4월 - 2015년 3월9,290,00045.7%43.9%10.4%-
2015년 4월 - 2016년 3월9,030,00046.0%40.0%14.1%-

8. 안드로이드 애플리케이션 제작

안드로이드 애플리케이션 개발에는 Android SDK(Software Development Kit)가, 런타임 및 라이브러리 개발에는 Android NDK(Native Development Kit)가 무료로 제공된다. 초기에는 이클립스를 통해 IDE(통합개발환경)가 배포되었으나, 현재는 '안드로이드 스튜디오'가 공식적으로 사용된다. SDK와 관련 도구들은 안드로이드 스튜디오에 포함되어 있으며, 독립적인 명령줄 도구도 사용 가능하다.

안드로이드 SDK에 포함된 "Android Debug Bridge"(adb)를 이용하면, USB를 통해 안드로이드 기기(휴대전화/태블릿 등)와 호스트 PC를 연결하여 기기에서 애플리케이션을 실행하면서 PC에서 디버깅할 수 있다.

또한, Android SDK는 Android Virtual Device(AVD)라는 PC에서 작동하는 가상 기기를 제공한다. SDK에는 ARM, MIPS, x86 아키텍처를 에뮬레이션하는 소프트웨어가 포함되어 있으며, 각 Android 버전에 맞는 시스템 이미지가 제공된다. 사용자는 이를 조합하여 AVD를 생성할 수 있다.

일반적인 에뮬레이터는 다른 컴퓨터 시스템을 에뮬레이션하므로 동작이 무겁다. 하지만 x86 아키텍처 CPU와 x86 시스템 이미지를 사용하는 AVD는 가상화 지원 기능을 통해 고속화할 수 있다. Windows 및 macOS에서는 인텔의 Intel Hardware Accelerated Execution Manager(HAXM)를 통해 Intel VT 지원을 활성화할 수 있다. Linux에서는 x86 에뮬레이터를 KVM에서 실행하여 Intel VT 또는 AMD-V 지원으로 고속화할 수 있다.

한편, 구글은 구글 플레이를 거치지 않는 앱 배포도 허용하며, APK 파일을 통해 직접 설치할 수 있다. 이를 '떠돌이 앱(野良アプリ)'이라고 부르지만, 악성 앱(멀웨어)의 위험이 있으므로 공식 마켓 이외의 경로를 통한 다운로드에는 주의가 필요하다.

8.1. 안드로이드 스튜디오

--
안드로이드 공식 IDE(통합개발환경)는 '안드로이드 스튜디오'이며, 초창기에는 이클립스를 통해 배포되었다. 안드로이드 스튜디오는 IntelliJ IDEA 기반 오픈소스 Android 전용 개발 환경으로, 빌드 도구로 Apache Ant 대신 Gradle을 채택했다. 레이아웃 디자인 또한 더욱 그래픽적이고 실제 단말기 이미지에 가깝게 개선되었다. 2014년12월 8일 정식 버전 1.0이 출시되면서, Eclipse용 플러그인 지원은 2015년에 종료되었다.

통합 개발 환경으로는 Android Studio가 권장된다. Android Studio는 Microsoft Windows, macOS, Linux(Ubuntu 등), ChromeOS에서 실행 가능하다.

9. 윈도우 PC에 설치

윈도우가 설치되어 있던 컴퓨터에는 모든 버전의 안드로이드를 설치할 수 없다. 이는 EULA를 위반하는 행위이다.

11. 비판 및 논란

안드로이드는 개방형 운영체제라는 특성 때문에 다양한 보안 취약점 및 개인 정보 유출 문제에 직면해 왔다.

--

안드로이드 애플리케이션은 일반적으로 샌드박스 환경에서 실행되어 시스템의 중요 영역이나 사용자 정보에 접근하는 것이 제한된다. 앱 설치 시 필요한 권한 목록을 사용자에게 명확하게 보여주는 기능이 있지만, 4.3 버전에서 실험적으로 추가된 앱별 권한 설정 기능은 애플리케이션 호환성 문제로 4.4 버전에서 제거되었다.

안드로이드 5.0 이상에서는 스마트 잠금 기능을 통해 특정 조건에서 자동으로 잠금이 해제되도록 설정할 수 있다. 또한, 도난 등으로 초기화된 기기를 보호하기 위해 Android Device Protection (안드로이드 디바이스 프로텍션) 기능이 작동하여 이전 소유자의 Google 계정 로그인이 필요하다. 안드로이드 디바이스 매니저(ADM, 스마트폰 찾기)를 통해 기기 위치 추적 및 원격 잠금도 가능하다.

2012년 트렌드마이크로는 안드로이드 악성 앱이 5,000종 발견되었다고 보고했으며, 인스타그램과 앵그리 버드 스페이스 등의 가짜 앱이 유포되기도 했다. 심지어 구글 플레이(구 안드로이드 마켓)와 같은 공식 웹사이트에서도 가짜 앱이 발견되기도 했다.

2019년에는 운영체제별 취약점 수에서 안드로이드가 414건으로 가장 많았으며, 같은 해 11월에는 개인 정보 유출로 이어질 수 있는 146건의 새로운 취약점이 발견되었다.

2011년 4월, 월스트리트 저널은 안드로이드가 사용자의 이름, 위치, 주변 Wi-Fi 네트워크 정보 등을 수집하여 구글에 전송한다고 보도했다. 구글은 위치 정보 수집을 인정했지만, 사용자 동의를 얻고 익명화된 형태로 전송하므로 문제가 없다고 주장했다. 그러나 2011년 5월, 한국 경찰은 구글코리아를 압수수색하여 위치 정보 수집 관련 데이터를 확보했다.

2019년 12월과 2020년 1월, 트렌드마이크로는 구글 플레이에서 배포되는 앱에서 수정되지 않은 취약점과 악성 앱을 발견했다. 2020년 2월, 라인은 구글 플레이 상위 100개 앱 중 절반가량에 취약점이 있다고 보고했다.

한국 정부와 관련 기관들은 이러한 문제에 대응하기 위해 2011년 "스마트폰·클라우드 보안 연구회"를 설치하고, "스마트폰 정보보안 3가지 조항"을 제안하는 등 다양한 노력을 기울여 왔다.

12. 법적 문제

안드로이드의 성공은 기술 회사들 사이에서 특허 및 저작권 소송의 표적이 되었으며, 안드로이드와 안드로이드 휴대전화 제조업체 모두 수많은 특허 소송 및 기타 법적 문제에 연루되었다.

유럽 연합 집행위원회(EC)는 2019년 4월 18일에 구글이 독점금지법을 위반했다는 판결을 내렸고, 이에 따라 유럽의 안드로이드 사용자에게 검색 앱과 브라우저 선택지를 제공하는 계획을 발표했다. 또한 EC는 2019년 3월에 구글에 1490(약 1900억 엔)의 과징금을 부과했다.

12.1. 오라클과의 특허 소송

2010년 8월 12일, 오라클은 자바 프로그래밍 언어와 관련된 저작권 및 특허 침해를 이유로 구글을 상대로 소송을 제기했다. 오라클은 당초 최대 6100의 손해배상을 청구했으나, 미국의 연방 판사는 이 금액을 기각하고 오라클에 추산액을 수정할 것을 요청했다.

이에 대해 구글은 안드로이드가 오라클의 특허나 저작권을 침해하지 않았고, 오라클의 특허가 무효이며, 기타 여러 방어 논리를 제기하며 맞섰다. 구글은 안드로이드의 자바 런타임 환경이 자바 클래스 라이브러리의 클린룸 구현인 아파치 하모니와 달빅이라는 독자적으로 개발된 가상 머신을 기반으로 한다고 주장했다.

2012년 5월, 배심원단은 구글이 오라클의 특허를 침해하지 않았다고 판결했고, 재판장은 구글이 사용한 자바 API의 구조는 저작권의 보호 대상이 아니라고 판결했다. 양측은 소량의 복사된 코드에 대해 법정 손해배상으로 0달러에 합의했다. 2014년 5월 9일, 연방 순회 항소법원은 지방 법원의 판결을 부분적으로 뒤집고 저작권 보호 가능성 문제에 대해 오라클의 손을 들어주었고, 사건을 공정 이용 문제에 대해 지방 법원으로 환송했다.

2015년 12월, 구글은 안드로이드의 차기 주요 버전(안드로이드 누가)이 더 이상 중단된 아파치 하모니 프로젝트를 런타임으로 사용하지 않고 자바 플랫폼의 공식 오픈소스 구현인 오픈JDK로 전환될 것이라고 발표했다. 구글은 나중에 법원 제출 서류에서 이것이 오라클과의 분쟁을 해결하기 위한 노력의 일환이었으며, 오픈JDK 코드 사용은 GNU 일반 공중 사용 허가서(GPL)에 연결 예외가 적용되며, "오픈JDK에 따라 오라클이 명시적으로 허가한 새로운 버전과 관련된 손해 배상 청구는 이전 버전과 별도로 손해 배상을 분석해야 한다"고 인정했다. 2016년 6월, 미국의 연방 법원은 구글의 API 사용이 공정 이용이라고 판결했다.

2021년 4월, 미국 연방 대법원은 구글의 자바 API 사용이 공정 이용의 범위 내에 있다고 판결하여 연방 순회 항소법원의 판결을 뒤집고 추가 심리 진행을 위해 사건을 환송했다. 다수 의견은 API가 저작권 보호 대상일 수 있다는 전제로 시작하여 공정 이용에 기여한 요소들을 검토했다.

12.2. 유럽 연합의 반독점 조사

2013년, 마이크로소프트, 오라클 등이 지원하는 로비 단체인 페어서치(FairSearch)는 유럽 연합 집행위원회(European Commission)에 안드로이드 운영체제에 대한 불만을 제기했다. 이들은 구글의 무료 배포 모델이 반경쟁적인 피싱 가격에 해당한다고 주장했다. 유럽 자유 소프트웨어 재단(Free Software Foundation Europe)은 페어서치의 주장을 반박했다.

2016년 4월 20일, EU는 페어서치의 주장을 바탕으로 구글에 대해 공식적인 반독점 소송을 제기했다. EU는 안드로이드 제조업체에 대한 구글의 영향력, 특히 구글 소프트웨어 전체 제품군의 의무적 번들링을 통해 경쟁 검색 제공업체가 안드로이드에 통합되는 것을 방해하고, 제조업체가 안드로이드의 포크 버전을 실행하는 기기를 생산하는 것을 금지하는 것이 반경쟁적인 관행이라고 주장했다.

2018년 7월 18일, 유럽 연합 집행위원회는 구글이 안드로이드와 관련하여 독점 금지 규정을 위반하는 세 가지 행위를 저질렀다고 판결했다.

* 안드로이드에 구글 검색 및 크롬을 번들링하는 것
* 휴대전화 제조업체가 안드로이드의 포크 버전을 사용하는 것을 차단하는 것
* 휴대전화 제조업체 및 네트워크 제공업체와 계약을 맺어 휴대전화에 구글 검색 애플리케이션을 독점적으로 번들링하는 것 (구글은 2014년까지 이 관행을 중단)

EU는 구글에 43(약 50)의 벌금을 부과하고 90일 이내에 이러한 행위를 중단하도록 명령했다. 구글은 2018년 10월에 이 판결에 대한 항소를 제기했지만, 행위 요구 사항의 시행을 지연시키기 위한 임시 조치는 요청하지 않았다.

2018년 10월 16일, 구글은 EU에서 구글 모바일 서비스의 배포 모델을 변경할 것이라고 발표했다. EU의 판결에 따라 구글 검색 및 크롬 사용을 통해 얻은 안드로이드 수익원의 일부가 금지되었기 때문이다. 핵심 안드로이드 시스템은 무료로 유지되지만, 유럽의 OEM은 Gmail, Google 지도, Google Play 스토어와 같은 핵심 구글 애플리케이션 제품군에 대한 유료 라이선스를 구매해야 한다. 구글 검색은 별도로 라이선스가 제공되며, 검색에 크롬을 추가 비용 없이 포함할 수 있는 옵션이 있다. 유럽 OEM은 원하는 경우 고객에게 판매하는 휴대전화 및 기기에 타사 대안을 번들로 제공할 수 있다. OEM은 더 이상 유럽에서 호환되지 않는 안드로이드 버전을 실행하는 기기 판매가 금지되지 않는다.

2019년 4월 18일, 유럽 연합 집행위원회(EC)의 독점금지법 위반 판결을 받아, 유럽의 안드로이드 사용자에게 검색 앱과 브라우저 선택지를 제공하는 계획 개요를 발표했다. 또한 EC는 3월에 구글에 1490 (약 1900억 엔)의 과징금을 부과했다.