안드로이드 (운영체제)

'''안드로이드'''()는 스마트폰, 태블릿 PC 같은 터치스크린 모바일 장치 용으로 디자인된 운영 체제이자 수정된 리눅스 커널 버전을 비롯한 오픈 소스 소프트웨어에 기반을 둔 모바일 운영 체제다. 또한, 운영 체제와 미들웨어, 사용자 인터페이스 그리고 표준 응용 프로그램(웹 브라우저, 이메일 클라이언트, 단문 메시지 서비스(SMS), 멀티미디어 메시지 서비스(MMS) 등을 포함하고 있는 소프트웨어 스택이자 모바일 운영 체제이다. '''안드로이드'''는 개발자들이 자바와 코틀린 언어로 응용 프로그램을 작성할 수 있게 하였으며, 컴파일된 바이트코드를 구동할 수 있는 런타임 라이브러리를 제공한다. 또한 안드로이드 소프트웨어 개발 키트(SDK)를 통해 응용 프로그램을 개발하는 데 필요한 각종 도구와 응용 프로그램 인터페이스(API)를 제공한다.
안드로이드는 리눅스 커널 위에서 동작하며, 자바와 코틀린으로 앱을 만들어 동작한다. 또한 다양한 안드로이드 시스템 구성 요소에서 사용되는 C/C++ 라이브러리들을 포함하고 있다. 안드로이드는 기존의 자바 가상 머신과는 다른 가상 머신인 안드로이드 런타임을 통해 자바와 코틀린으로 작성된 응용 프로그램을 별도의 프로세스(zygote 또는 zygote64)에서 실행하는 구조로 되어 있다.
2005년에 안드로이드 사를 구글에서 인수한 후 2007년 11월에 안드로이드 플랫폼을 휴대용 장치 운영체제로서 무료 공개한다고 발표한 후 48개의 하드웨어, 소프트웨어, 통신 회사가 모여 만든 오픈 핸드셋 얼라이언스(Open Handset Aliance, OHA)에서 공개 표준을 위해 개발하고 있다. 구글은 안드로이드의 모든 소스 코드를 오픈 소스 라이선스인 아파치 v2 라이선스로 배포하고 있어 기업이나 사용자는 각자 안드로이드 프로그램을 독자적으로 개발을 해서 탑재할 수 있다. 또한 등록한 개발자들이 소비자에게 응용 프로그램을 판매할 수 있는 구글 플레이를 제공하고 있으며, 이와 별도로 각 제조사 혹은 통신사별 응용 프로그램 마켓이 함께 운영되고 있다.
녹색 안드로이드 피규어
2005년 7월에 구글은 미국 캘리포니아주의 팔로알토에 위치한 작은 안드로이드사를 인수하였다.
안드로이드사는 앤디 루빈이 세운 업체이다.
2007년 11월 5일에 텍사스 인스트루먼트, 브로드컴 코퍼레이션, 구글, HTC, 인텔, LG전자, 마벨 테크놀로지 그룹, 모토로라, 엔비디아, 퀄컴, 삼성전자, 스프린트 넥스텔, T-모바일의 몇몇 회사로 구성된 컨소시엄인 오픈 핸드셋 얼라이언스(OHA)가 모바일 기기의 공개 표준을 개발하는 것을 목표로 결성되었다. 또한 OHA는 리눅스 커널 2.6에서 빌드된 그들의 첫 번째 모바일 기기 플랫폼 결과물인 안드로이드를 발표하였다.
2008년 10월 21일에 안드로이드가 오픈 소스로 선언되었다. 구글은 네트워크와 텔레폰 스택을 포함하는 완전한 소스 코드를 아파치 라이선스로 공개하였다.
2008년 12월 9일에 ARM 홀딩스, 아세로스(Atheros Communications), 에이수스, 가르민, 소프트뱅크, 소니 에릭슨, 도시바, 보다폰으로 구성된 새로운 14개의 멤버가 안드로이드 프로젝트에 참여하였다.
2014년 10월 16일 안드로이드 5.0 버전 발표와 함께 기존의 달빅 가상 머신을 안드로이드 런타임으로 대체하였다.
아키텍처 다이어그램
안드로이드의 구조는 그림과 같은 구성 요소로 구성되며 이 구성 요소에는 응용 프로그램, 응용 프로그램 프레임워크, 라이브러리, 안드로이드 런타임, 리눅스 커널의 총 5개의 계층으로 분류되어 있다.
2014년 6월 25일, 구글은 구글 I/O에서 다양한 안드로이드 구축을 통한 사물인터넷(IoT) 전략을 공개하였다. 웨어 OS는 미리 공개되었으며, 웨어를 제외한 나머지는 구글 I/O에서 공개되었다.
“일상의 전자 기기부터 농부가 사용하는 장비, 버스까지 인터넷에 연결된다면 사람들의 삶은 더 크게 변할 것이다.”2015년 4월 28일(현지시각)에 미국 샌프란시스코에서 열린 구글 I/O에서 구글의 선다 피차이 제품총괄 수석부사장이 사물인터넷(IoT) 운영체제 ‘브릴로(Brillo)’를 발표하며 한 말이다.
* 웨어 OS : 2014년 3월 18일 구글은 스마트워치와 웨어러블 컴퓨터에도 선두를 지켜나가기 위해 안드로이드를 일부 수정한 안드로이드 웨어를 발표하였다. 이후 웨어 OS로 이름을 바꾸고 아이폰도 연결하여 사용할 수 있도록 개선하였다.
* 안드로이드 오토 : 자동차에서 구글 어시스턴트를 통해 내비게이션 이용과 메시지 보내기, 음악 재생 등을 이용할 수 있다. 단, 안전상의 문제로 동영상 재생은 지원하지 않는다.
* 안드로이드 TV : 기존 구글 TV의 후속이며 TV화면에 최적화된 안드로이드 앱 기반 컨텐츠를 TV에서 사용할 수 있다.
안드로이드는 구글에 의해 개발되고 있으며 최신 변경사항과 업데이트가 출시되는 소스 코드는 안드로이드 오픈 소스 프로젝트에서 이용이 가능하다.
=== 안드로이드 오픈 소스 프로젝트 ===
상업용 안드로이드는, 오픈 소스인 안드로이드 오픈 소스 프로젝트 (Android Open Source Project), 흔히 줄여서 AOSP라고 부르는 것으로부터 만들어진다. 크롬과 크로미엄의 관계와 동일하다.
안드로이드는 6개월~12개월에 한번씩 업데이트를 주기적으로 진행하며, 업데이트의 내용은 주로 오류 수정이나 새로운 기능 추가로 구성된다. 안드로이드의 각 버전들은 알파벳 첫 글자를 오름차순에 맞춘 음식 이름(디저트)을 코드명으로 삼고 있다. 버전은 1.0, 2.0, 4.0, 5.0, 6.0, 7.0, 8.0
9.0 ...으로 올라가며, 앞자리의 숫자가 올라가면 대규모 업데이트(메이저 업데이트), 소수점 아래 숫자가 올라가면 소규모 업데이트(마이너 업데이트)로 규정한다.
이전 버전을 사용하는 기기들은 바로 업데이트를 제공받을 수 없으며, 기기 제조사에서 구글의 소스를 받아 직접 작업후 배포해야 하므로 가끔씩 하드웨어 성능의 한계로 업그레이드가 취소되기도 한다.
안드로이드 8.0부터 프로젝트 트레블을 적용하여 하드웨어 제어 부분과 소프트웨어 제어 프로그램이 분리되어 출시된 기기들은 그렇지 않은 기기들에 비해 상대적으로 빠른 업데이트가 가능하다.
=== 코드네임 ===
파일:Android Foldable Smartphone.jpg|섬네일|250px|안드로이드의 이스터 에그
버전 이름은 알파벳 C부터 알파벳 순으로 이어갔다. 1.0에서는 A부터 알파벳 순으로 로봇의 이름을 붙이려 Astro Boy라는 이름을 내부에서 붙였고 1.1에서는 이 규칙을 위반한 채 디저트가 좋다는 PM의 취향으로 Petit Four으로 지정하였다. 1.5 버전부터 지금의 체제를 완성했다. Astro Boy는 공식적인 이름으로 인정받지는 못했다.
* C : Cupcake (컵케이크) 안드로이드 버전 1.5
* D : Donut (도넛) 안드로이드 버전 1.6
* E : Éclair (이클레어(프랑스어 에클레르)) 안드로이드 버전 2.0~2.1
* F : Froyo (프로요(프로즌 요거트)) 안드로이드 버전 2.2~2.2.1
* G : Gingerbread (진저브레드) 안드로이드 버전 2.3~2.3.7
* H : Honeycomb (허니콤) 안드로이드 버전 3.0/3.1/3.2
* I : Ice Cream Sandwich (아이스크림 샌드위치) 안드로이드 버전 4.0~4.0.4
* J : Jellybean (젤리빈) 안드로이드 버전 4.1~4.3.1
* K : Kitkat (킷캣) 안드로이드 버전 4.4~4.4.4
* L : Lollipop (롤리팝) 안드로이드 버전 5.0~5.1.1
* M : Marshmallow (마시멜로) 안드로이드 버전 6.0~6.0.1, 2016년
* N : Nougat (누가) 안드로이드 버전 7.0~7.1.2
* O : Oreo (오레오) 안드로이드 버전 8.0~8.1
* P : Pie (파이) 안드로이드 버전 9.0
* Q : 안드로이드 버전 10.0.
* R : 안드로이드 버전 11.0.
* S: 안드로이드 버전 12.0.
=== 버전 10.0 ===
* 커널: 리눅스
* 그래픽 엔진: 오픈 GL의 휴대기기용 버전인 오픈GL ES과 벌컨 (API)를 채택하고 있다.
* 폰트: 프리타입
* 웹 렌더링: 웹키트 엔진
* 보안 모듈: SSL
* 개발환경: IntelliJ IDEA 기반의 안드로이드 스튜디오 사용을 권장
 구성 및 특징
 내용
 핸드셋 레이아웃
 플랫폼은 VGA, 2D 그래픽스 라이브러리, OpenGL ES, 벌컨 (API)에 기반을 둔 3D 그래픽스 라이브러리를 확장하기에 유연한 설계가 가능하다.
 저장소
 데이터 저장 목적의 SQLite 데이터베이스 소프트웨어가 사용됨.
 통신
 안드로이드는 GSM/EDGE, CDMA, EV-DO, UMTS, 블루투스, 와이파이를 포함하는 커넥션 기술을 지원한다.
 메시징
 SMS와 MMS RCS가 가능.
 웹 브라우저
 오픈 소스인 웹키트 응용 프로그램 프레임워크 기반의 브라우저 지원.
 프로그래밍 언어 지원
 자바와 코틀린으로 작성된 소프트웨어는 안드로이드 런타임에서 실행 가능한 코드로 컴파일된다. 안드로이드 4.3까지는 컴파일러로 달빅 가상 머신을 사용하였으며 안드로이드 4.4 킷캣에서는 컴파일러를 달빅 가상 머신과 안드로이드 런타임 중에서 선택할 수 있었다. 안드로이드 5.0 롤리팝부터는 달빅 가상 머신이 안드로이드 런타임으로 완전히 교체되었다.
 미디어 지원
 안드로이드는 다음의 오디오/비디오/이미지 포맷을 지원한다: H.263, H.264 (3GP 또는 MP4 컨테이너), MPEG-4 SP, AMR, AMR-WB (3GP 컨테이너), AAC, HE-AAC (MP4 또는 3GP 컨테이너), MP3, 미디, OGG Vorbis, WAV, JPEG, PNG, GIF, BMP.
 추가 하드웨어 지원
 안드로이드는 카메라, 터치스크린, GPS, 가속도계, 자력계, 트랙볼 2D 그래픽 가속, 3D 그래픽 가속을 활용할 수 있다.
 개발 환경
 기기 에뮬레이터, 디버깅 도구, 메모리와 성능 프로파일링을 포함하는 안드로이드 스튜디오, 플랫폼 개발 키트인 PDK
 마켓
 iOS의 앱 스토어와 유사한 구글 플레이는 PC 사용 없이 무선으로 대상 하드웨어로 다운로드와 설치가 가능한 응용 프로그램 목록을 제공. 2011년 2월 허니컴 발표와 함께  웹 을 통한 마켓 이용이 가능해졌다. 웹마켓에서는 여러대의 안드로이드 기기를 등록하여 사용할 수 있도록 확장되어 있다.
원래 프리웨어만 지원 되었으나 2009년 2월 19일부터 유료 애플리케이션도 제공되었다. 별도의 라이선싱, 애플리케이션 안에서 유료 구매를 위한 SDK가 함께 발표되었다.
 멀티 터치
 안드로이드는 멀티 터치를 기본으로 지원한다. 발매 초기, 미국에서 출시되는 모델에 한하여 애플의 터치스크린 기술 특허 침해를 피하기 위해 멀티터치 기능이 커널 수준에서 비활성화되었던 적이 있다. 이후에 구글은 넥서스 원, 드로이드를 위해 멀티터치를 네이티브에서 지원하는 업데이트를 발표하였다.
 블루투스
 핸즈프리 통화(HFP), 음악 재생(A2DP,AVRCP) 기능이 있으며 블루투스를 통한 파일 전송이 버전 2.0에 추가되었다. 이외 ICS 이후로 Bluetooth 4.0 기술인 BluetoothHealth 기능도 추가되었다.
안드로이드 8.0부터 소니의 고음질 음악 전송 포맷인 LDAC가 포함되었다.
=== 버전 11.0 ===
=== 버전 12.0 ===
=== 버전 13.0 ===
=== 대한민국 ===
* 2014년 1월 21일 미국의 시장조사업체 스트래티지애널리틱스(SA)는 세계 88개국을 대상으로 운영체제(OS)별 스마트폰 사용자 수(IB; Installed Base)와 점유율을 조사하였다.
* 결과 대한민국의 안드로이드 스마트폰 사용자 점유율이 93.4%로 세계에서 가장 높았으며. 이는 전 세계 시장 전체의 안드로이드 스마트폰 사용자 수 비율인 67.5%와 견줘 무려 25.9%포인트 높은 수준이다. 또한 조사 대상국 중 안드로이드의 비중이 90%를 넘는 유일한 나라이다.
초창기에는 이클립스를 통해 배포되던 IDE(통합개발환경)는 '안드로이드 스튜디오'라는 IDE 명칭으로 안드로이드에서 공식 배포하고있다.윈도우가 애초에 설치되어 있던 컴퓨터에는 모든 버전의 안드로이드를 설치할 수 없다. 하는 경우에는 EULA를 위반하는 행위이다.
* 구글 플레이
* 리눅스
* 웹키트
* 안드로보이
* 구글 크롬 OS
* 크롬북
* 안드로이드용 우분투
* 웨어 OS
* 구글 에디션
* 구글 넥서스
** 넥서스 원
** 넥서스 S
** 갤럭시 넥서스
** 넥서스 4
** 넥서스 5
** 넥서스 6
** 넥서스 7
** 넥서스 10
** 넥서스 7 (2013년)
** 넥서스 9
** 넥서스 Q
** 넥서스 플레이어
** 넥서스 5X
** 넥서스 6P
* 구글 픽셀
=== 스마트폰 운영체제의 종류 ===
* iOS - 애플
* 블랙베리 10 - 블랙베리
* 윈도우 폰, 윈도우 10 모바일 - 마이크로소프트
* 타이젠 - 삼성전자
* 우분투 터치 - 캐노니컬
* 파이어폭스 OS - 모질라 재단
* 훙멍 - 화웨이
* 
*   구글 코드 안드로이드
*  Google Play
 
분류:2008년 소프트웨어
분류:컴퓨팅 플랫폼
분류:구글 인수 기업
분류:구글의 운영 체제
분류:스마트폰
분류:ARM 리눅스 배포판
분류:임베디드 리눅스 배포판
분류:데비안 기반 리눅스 배포판
분류:아파치 라이선스 소프트웨어
분류:자유 모바일 소프트웨어
분류:클라우드 클라이언트
분류:모바일 리눅스
분류:리눅스 배포판
분류:운영체제 계열