00. 안드로이드 개요
일반적으로 스마트폰의 시초는 1992년 IBM에서 제작한 사이먼(Simon)으로 본다. 사이먼은 달력, 주소록, 계산기, 이메일 기능 등을 보유하고 있었다. 2007년 iOS를 기반으로 한 아이폰, 2008년 안드로이드 운영체제를 가진 안드로이드 폰 등이 나오기 시작했다.
2019년 3분기 발표 자료를 참고하면 전 세계에서 안드로이드 운영체제를 탑재한 스마트폰이 약 85%, 아이폰이 11% 정도라고 한다.
안드로이드의 개발 언어로는 Java, Kotlin, C++이 있으며 툴로는 Eclipse나 안드로이드 스튜디오를 사용한다.
나는 안드로이드 스튜디오를 이용해서 각 언어로 앱을 하나씩 만들어보는게 이번 목표다.
안드로이드는 Google에서 2007년 안드로이사를 인수하면서 시작됐다.
2007년에 구글은 모바일 장치용 운영체제를 무료로 공개하기 위해 OHA라는 컨소시엄을 주체적으로 구성했고 이 그룹에는 애플에 대응하기 위해 세계적인 기업이 1000여 개 이상이 가입되어 있었다고 한다. 2008년 9월 최초로 공개한 안드로이드 1.0은 오픈소스로 선언되었고 이 이후로 계속 업그레이드 되고 있다. 안드로이드 10.0 이전은 버전별로 크드명이 존재하는데 코드명이 음식 형태고 이미지도 해당 음식이다. (귀엽) Android Q 부터는 라이브 캡션, 스마트 재생, 청각 보조, 어두운 테마, 개인 정보 제어 등을 지원한다.
안드로이드는 모바일 기기를 위한 운영체제다. 안드로이드 SDK(Software Development Kit)는 Java를 기반으로 안드로이드 애플리케이션을 개발할 수 있는 API를 제공한다.
- 애플리케이션 프레임워크를 통해 제공되는 API를 통해 코드를 재사용하여 효율적이고 빠른 애플리케이션 개발 가능
- 모바일 기기에 최적화된 Dalvik/ART 런타임 제공
- 2D, 3D 그래픽 최적화
- 모바일용 데이터베이스인 SQLite 제공
- 각종 오디오, 비디오, 이미지 형식 지원
- 모바일 기기에 내장된 하드웨어(블르투스, 카메라, 와이파이 등) 지원
- Eclipse IDE/ Android Studio를 통해 빠르고 강력한 개발 환경 제공
- 다양한 안드로이드 기기를 통합 지원
안드로이드의 핵심 커널은 리눅스로 구성되어 있다. 안드로이드 커널은 리눅스 커널에서 모바일용으로 적합한 내용을 추출하여 필요한 기능을 추가 제작한 것이라고 볼 수 있다. 그리고, 안드로이드는 리눅스 기반으로 작성되었지만 대부분 Windows 환경에서 개발하며 리눅스 명령어도 전혀 사용하지 않기 때문에 리눅스 사용법을 몰라도 애플리케이션을 작성할 수 있다.
안드로이드 애플리케이션 개발 언어로 Java를 사용하고 Java에 최적화된 통합 개발 도구인 이클립스와 안드로이드 스튜디오를 사용함으로써 고효율의 생산성을 무료로 제공한다. 높은 수준의 애플리케이션을 제작하기 위한 C, C++기반의 NDK도 제공한다.
안드로이드 SDK에 많은 라이브러리를 포함하고 있어 개발이 용이하다. 대표적으로 SQLite, OpenGL 등도 지원하기 때문에 별도의 외부 라이브러리를 사용할 필요가 없다.
안드로이드 운영체제의 구조는 크게 응용 프로그램, 응용 프로그램 프레임워크, 안드로이드 런타임, 라이브러리, 리눅스 커널로 구성되어 있다. 응용 프로그램에는 일반적인 응용 프로그램들이 들어간다. 프레임워크에는 안드로이드 API가 존재해서 API를 통해 안드로이드 커널에 접근할 수 있다. 런타임에는 Java 코어 라이브러리와 달빅 가상 머신, 아트 런타임으로 구성된다. 안드로이드는 Java 문법으로 프로그래밍하지만 가상머신은 Java가 아닌 달빅이나 아트 런타임을 사용한다. 이 두 런타임은 모바일 환경에 최적화되어 있어 여러 개를 동시에 구동할 수 있다. 라이브러리는 시스템 접근 때문에 Java가 아닌 C로 작성되어 있다. 안드로이드에서 리눅스 커널을 채택한 이유는 오픈 소스라는 장점과 함께 카메라, 터치스크린, GPS 등 많은 스마트폰 장치를 지원하기 때문이다.
안드로이드를 개발하기 위해서는 JDK와 SDK가 필요하다. SDK는 별도의 폴더에 존재해야하는데 안드로이드 SDK에는 모든 안드로이드 버전의 개발 API가 들어 있지는 않기 대문에 필요한 버전을 추가로 다운로드해야한다. Android Studio와 SDK를 연결하기 위한 플로그인 ADT가 내부적으로 필요하고 SDK가 설정된 경로로 지정되어 있어야한다. 이렇게 하면 안드로이드 앱을 개발하기 위한 준비를 끝낸 것이다.
다 다운받고 AVD 실행하면 이렇게 뜨는 걸 볼 수 있다!