1. 안드로이드의 개요
1-1 스마트폰의 개요
- 디지털 사회가 도래하고 가장 각광받은 기기는 바로 휴대전화입니다.
- 휴대 전화는 통화기능은 물론이고 컴퓨터가 하던 역할까지 하게 되었고, 휴대 기기라는 장점과 특징을 살려 컴퓨터로는 할 수 없던 다양한 기능을 내장하게 되었습니다.
- MP3, 카메라, DMB, 화상 통화, GPS 등의 기본적인 기능뿐 아니라 다양한 애플리케이션을 통해 일정 관리, 게임, 네비게이션, 뉴스, 신문, 전자책, 건강 관리, 은행 업무 등 일상생활에서 활용 가능한 기능까지 포함하게 된 것입니다.
- 휴대전화, 핸드폰이 아니라 스마트폰(smartphone)이라 불리고 있습니다.
스마트폰의 역사
- 일반적으로 스마트폰의 시초는 1992년 IBM이 제작한 사이먼(Simon)으로 봅니다.
- 사이먼은 달력, 주소록, 계산기, 이메일 기능 등을 보유하여 그 당시 파격적이라는 평가를 받았습니다.
- 1996년에 노키아가 노키아 9000을 출시했고, 2002년에는 마이크로소프트가 포켓 PC 운영 체제에서 작동하는 PDA폰을 출시하여 널리 사용되었습니다.
- 2007년 iOS를 기반으로 한 아이폰(iPhone), 2008년에 안드로이드 운영체제를 탑재한 HTC의 상용 안드로이드폰(Android Phone), 2010년에 마이크로소프트 윈도폰7(Window Phone 7)이 차례로 출시되면서 스마트폰의 대중화가 본격적으로 시작되었습니다.
스마트폰의 운영체제
- 스마트폰의 운영체제는 세 가지가 주를 이룹니다.
- 안드로이드 운영체제를 탑재한 스마트폰이 약 74%, 아이폰이 약 25%, 윈도폰이 약 0.01%를 차지하고 있습니다.
1-2 안드로이드(Android)
안드로이드의 주요 기능
- 안드로이드는 모바일 기기를 위한 운영체제입니다.
- 안드로이드 SDK(Software Development Kit)는 Java를 기반으로 안드로이드 애플리케이션을 개발할 수 있는 API를 제공합니다.
안드로이드의 특징
- 안드로이드는 OHA에 포함된 여러 기업이 함께 개발하는 형식을 띠고 있지만 대부분은 구글이 주도적으로 개발하는 것으로 알려져 있습니다.
① 안드로이드의 핵심 커널(kernel)은 리눅스(Linux)로 구성되어 있습니다.
② 안드로이드 애플리케이션 개발 언어로 Java를 사용하고, Java에 최적화된 통합 개발 도구인 Eclipse 및 Android Studio를 사용함으로써 고효율의 생산성을 무료로 제공합니다.
③ 안드로이드 SDK에 많은 라이브러리를 포함하고 있어 쉽게 개발할 수 있습니다.
④ 오픈 소스를 지향하기 때문에 운영체제부터 관련 문서, 개발 도구 등 거의 모든 것을 무료로 사용할 수 있습니다.
⑤ 지속적인 업그레이드를 제공합니다.
안드로이드의 구조
① 응용 프로그램(Applications)
- 안드로이드 스마트폰에서 사용할 수 있는 일반적인 응용 프로그램입니다.
- 웹브라우저, 달력, 구글 맵, 연락처, 게임 등 사용자 입장에서 가장 많이 사용하는 앱입니다.
- 모두 Java로 작성됩니다.
② 응용 프로그램 프레임 워크(Applications Framework)
- 안드로이드 API가 존재하는 곳입니다.
- 애플리케이션은 API를 통해 안드로이드의 커널에 접근할 수 있으므로, 안드로이드폰 하드웨어에 접근할 때는 Java에서 직접 접근하는 것이 아니라 API를 통해서만 가능합니다.
③ 안드로이드 런타임(Android Runtime)
- Java 코어 라이브러리와 달빅 가상 머신(Dalvik Virtual Machine) 또는 아트 런타임(ART Runtime)으로 구성됩니다.
- 안드로이드는 Java 문법으로 프로그래밍하지만 Java 가상 머신을 사용하지 않고 이곳의 달빅 가상 머신이나 아트 런타임을 사용합니다.
- 달빅 가상 머신과 아트 런타임은 모바일 환경에 최적화되어 있어 여러 개를 동시에 구동할 수 잇습니다.
④ 라이브러리(Libraries)
- 안드로이드에서 사용되는 여러 시스템 라이브러리는 시스템 접근 때문에 Java가 아닌 C로 작성되어 있습니다.
- 따라서 성능이 뛰어나며 세밀한 조작이 가능합니다.
⑤ 리눅스 커널(Linux Kernel)
- 하드웨어의 운영과 관련된 저수준의 관리 기능인 메모리 관리, 디바이스 드라이버, 보안 등이 들어 있습니다.
- 안드로이드 커널로 리눅스를 채택한 이유는 오픈 소스라는 장점과 함께 카메라, 터치스크린, GPS, 자이로스코프 등 많은 스마트폰 장치를 지원하기 때문입니다.
2. 설치 및 환경 설정
생략! Android Lesson 그룹에서 확인하기