All 123456789101112131415161718192021222324252627282930
P:01
P:03
Chapter 01 안드로이드의 개요와 개발 환경 설치 01 안드로이드의 개요 02 안드로이드 개발 환경 03 안드로이드 개발 환경 설치 요약 연습문제 학습목표 ▶ 안드로이드의 개념과 특징을 이해한다. ▶ 안드로이드 개발 환경을 설치한다.
P:04
01 안드로이드의 개요 안드로이드 프로그래밍을 배우기 전에 안드로이드의 개요와 역사를 훑어보고 안드로이드 프로 그래밍에서 사용하는 기본적인 용어를 알아본다. 1 스마트폰의 개요 디지털 사회가 도래하고 가장 각광받은 기기는 바로 휴대전화이다. 휴대전화는 통화 기능은 물론 이고 컴퓨터가 하던 역할까지 하게 되었고, 휴대 기기라는 장점과 특징을 살려 컴퓨터로는 할 수 없던 다양한 기능을 내장하게 되었다. MP3, 카메라, DMB, 화상 통화, GPS 등의 기본적인 기능 뿐 아니라 다양한 애플리케이션을 통해 일정 관리, 게임, 내비게이션, 뉴스, 신문, 전자책, 건강 관리, 은행 업무 등 일상생활에서 활용 가능한 기능까지 포함하게 된 것이다. 그러면서 휴대전 화, 핸드폰이 아니라 스마트폰(smartphone)이라 불리고 있다. 최근에는 스마트폰과 연동되는 스마트워치(smart watch)와 같은 웨어러블(wearable) 기기와 스마트 TV 등도 대중화되었다. 스마트폰의 역사 일반적으로 스마트폰의 시초는 1992년 IBM이 제작한 사이먼(Simon)으로 본다. 사이먼은 달 력, 주소록, 계산기, 이메일 기능 등을 보유하여 그 당시 파격적이라는 평가를 받았다. 이후 1996년에는 노키아가 노키아 9000을 출시했고, 2002년에는 마이크로소프트가 포켓 PC 운영 체제에서 작동하는 PDA폰을 출시하여 널리 사용되었다. 이어서 2007년에 iOS를 기반으로 한 아이폰(iPhone), 2008년에 안드로이드 운영체제 를 탑재한 HTC의 상용 안드로이드폰(Android Phone), 2010년에 마이크로소프트 윈도폰 7(Windows Phone 7)이 차례로 출시되면서 스마트폰의 대중화가 본격적으로 시작되었다. 스마트폰의 운영체제 스마트폰의 운영체제는 세 가지가 주를 이룬다. 조사 기관마다 조금씩 다르지만 2021년 2분기 20 Android Studio를 활용한 안드로이드 프로그래밍
P:05
그림 1-1 스마트폰(픽셀6, 아이폰13, 윈도폰10) 발표 자료에 따르면 전 세계에서 안드로이드 운영체제를 탑재한 스마트폰이 약 72%, 아이폰이 약 23%, 윈도폰이 약 0.02%를 차지하고 있다(마이크로소프트는 2017년 말부터 윈도폰 지원을 중단하여 사실상 시장에서 사라졌다). 세 가지 운영체제는 각각 장단점이 있으며, 사용자 및 개 발자의 취향에 따라서 선택되는 경향이 강하다. [표 1-1]에서 스마트폰의 운영체제를 비교했다. 이 외에도 파이어폭스OS, 우분투 터치(Ubuntu Touch), 팜OS(Palm OS), 심비안(Symbian), 블랙베리(BlackBerry), 바다(Bada), 타이젠(Tizen), 미고(MeeGo), 리모(LiMo) 등의 운영체 제가 있으나 점유율은 미미하다. 표 1-1 스마트폰 개발 환경 비교 구분 안드로이드 아이폰 윈도폰(단종) 개발 언어 Java, Kotlin, C++ Objective C C#, VB.Net 개발 운영체제 Windows, Linux, Mac OS Mac OS Windows 8/8.1/10 개발 툴 Eclipse, Android Studio Xcode Visual Studio 2013 이상 지원 장치 안드로이드폰, 안드로이드 태블릿, 안드로이드 아이폰, 아이팟(iPod), 아이 윈도폰 스마트워치, 안드로이드 TV 패드(iPad), 애플워치 대표 제품 삼성 갤럭시 S/폴드/노트 시리즈, 구글 픽셀/넥 아이폰 시리즈, 아이패드 노키아 루미아 시리즈 서스 시리즈 시리즈 최신 개발 버전 Android 12.0(S) iOS 15 윈도폰10 앱스토어 구글 플레이, 삼성 Apps, T스토어, 네이버 스토 애플 앱스토어 Windows 스토어 어등 1장. 안드로이드의 개요와 개발 환경 설치 21
P:06
2 안드로이드 안드로이드의 짧은 역사 안드로이드(Android)는 세계적인 인터넷 기업인 구글(Google)이 2007년 안드로이드사를 인 수하면서 시작되었다. 2007년에는 구글이 모바일 장치용 운영체제를 무료로 공개하기 위해 OHA(Open Handset Alliance)라는 컨소시엄을 주체적으로 구성했다. OHA에는 애플의 아 이폰에 대응하기 위해 세계적인 기업이 100여 개 이상 가입되어 있다. 2008년 9월에 최초의 안드로이드 1.0 버전이 공개되었는데 모든 소스코드를 공개하는 오픈 소 스(open source)로 선언되었다. 현재 안드로이드는 스마트폰뿐 아니라 많은 종류의 태블릿 단 말기에도 탑재되어 출시된다. 안드로이드는 2008년 이후 계속 업그레이드되어 2021년 말을 기 준으로 12 버전까지 발표되었다. 안드로이드의 버전은 코드명으로 구분되어 발표되는데, 영어의 알파벳순으로 음식 이름을 붙이다가 10.0 버전부터는 별도의 음식 이름 없이 ‘Android 10’ 또 는 영문자 순서인 Q를 붙여서 ‘Android Q’라고 불렀으며, 이후로는 Android 11(R), Android 12(S) 등으로 부른다. [표 1-2]를 보면 API 레벨이 계속 증가하는 것을 확인할 수 있다(현재 지 원하지 않는 API 레벨은 제외했다). 발표 일자를 통해 알 수 있듯이 초반에는 업그레이드가 아주 빨랐으나 현재는 비교적 느린 주 기로 업그레이드되고 있다. 진저브레드(2.3)까지는 주로 스마트폰 탑재용이었고, 허니콤(3.0) 은 태블릿 전용으로 출시되었다. 이후 아이스크림 샌드위치(4.0)부터 태블릿과 스마트폰이 동 일한 버전을 사용하게 되었다. 킷캣(4.4w)부터 웨어러블 기기를 지원하기 시작했으며, 롤리팝 (5.0)은 스마트폰, 태블릿, 스마트워치, 안드로이드 TV, 안드로이드 AUTO까지 모두 통합해서 지원했다. 마시멜로(6.0)는 지문 인식 등의 보안이 강화되었고, 누가(7.0)는 가상현실 및 3D 게 임, 멀티태스킹 기능이 강화되었다. 오레오(8.0)는 설정 화면, PIP, 알림 등이, 파이(9.0)는 실 내 위치 추적, 향상된 알림, 노치 지원, 인공지능 등이 추가 및 개선되었으며, Android 10.0(Q) 은 라이브 캡션, 스마트 재생, 청각 보조, 동작 내비게이션, 어두운 테마, 개인 정보 제어, 위치 제어, 보안 업데이트, 포커스 모드, 패밀리 링크 등이 추가 및 개선되었다. Android 11.0(R)은 알림과 대화, 미디어 제어, 일회성 권한, 음성 액세스, 전원 메뉴 등이 추가 및 개선되었다. 또한 Android 12.0(S)은 새로운 사용자 인터페이스, 빠른 설정, 성능 및 전력 효율, 개인 정보 강화 등이 추가 및 개선되었다. 이 책은 Android 12.0(S)을 기준으로 응용 프로그램을 작성한다. ‘앱(app)’이라는 용어는 초반에는 아이폰용 응용 프로그램(application)을 줄여서 나타내는 말이었다. 요즘은 아이폰뿐 아니라 안드로이드 폰이나 윈도폰용 애플리케이션도 ‘앱’이라고 통칭한다. 22 Android Studio를 활용한 안드로이드 프로그래밍
P:07
이 책의 코드는 대부분 API 21(5.0, 롤리팝) 이후라면 잘 작동한다. 특정 버전 이상에서만 작동하는 코드의 경우에는 버전을 별도로 표기 했다. 표 1-2 안드로이드 버전의 변천사 출처: android.com 이미지 코드명 버전 API 레벨 발표 일자 비고 1.0 1 2008년 9월 2008년 9월 최초 발표 알파(Alpha) 1.1 2 2009년 2월 기존 문제 수정, API 변경, 통화 기능 수정 베타(Beta) 컵케이크(Cupcake) 1.5 3 2009년 4월 동영상 녹화, 소프트 키보드 지원, 블루투스 지 원, 애니메이션 효과 도넛(Donut) 안드로이드 마켓 개선, WVGA 해상도 지원, 갤 1.6 4 2009년 9월 러리 인터페이스, 다중 선택/삭제 지원 이클레어(Eclair) 2.1 7 2010년 1월 하드웨어 최적화, 많은 해상도 지원, 구글 맵 향 상, 가상 키보드 개선, 블루투스 2.1 지원 프로요(Froyo) 2.2 8 2010년 5월 전반적인 성능 개선, USB 테더링 지원, 업데이 트 기능 지원, 플래시 10.1 지원 진저브레드(Gingerbread) 2.3 UI 성능 개선, 향상된 응용 프로그램 관리, 인터 10 2010년 12월 넷 전화, 다양한 센서 지원 3.0 11 2011년 2월 허니콤(Honeycomb) 3.1 12 2011년 5월 태블릿 PC에 최적화 3.2 13 2011년 7월 아이스크림 샌드위치 4.0 14 2011년 10월 진저브레드와 허니콤을 통합, 스마트폰과 태블 (Ice Cream Sandwich) 4.0.3 15 2011년 11월 릿을 함께 지원 4.1 16 2012년 7월 아이스크림 샌드위치 기반 위에서 더 빠르고 부 젤리빈(Jelly Bean) 4.2 17 2012년 12월 4.3 18 2013년 6월 드러워진 화면, 다양한 액세서리 지원 킷캣(KitKat) 4.4 19 2013년 10월 메모리 관리 강화, GPU 가속화, UI 변경. 4.4w 4.4w 20 2014년 6월 는 웨어러블 확장 지원 롤리팝(Lollipop) 5.0 21 2014년 11월 64bit 지원, 매터리얼(material) 디자인, 잠금 5.1 22 2015년 3월 중에 알림 영역 표시 등 마시멜로(Marshmallow) 6.0 23 2015년 10월 앱 권한 설정, 지문 인식 등 누가(Nougat) 7.0 24 2016년 8월 가상현실 지원, 3D 게임 최적화, 멀티태스킹 강 7.1 25 2016년 10월 화, 화면 해상도 조절 등 1장. 안드로이드의 개요와 개발 환경 설치 23
이미지 코드명 버전 API 레벨 발표 일자 비고 오레오(Oreo) 8.0 26 2017년 8월 PIP, 알림 기능, Java 8 지원, 자동 완성, 어댑티 8.1 27 2017년 10월 브 아이콘, 배터리 등 파이(Pie) 9.0 28 2018년 8월 실내 위치 추적, 향상된 알림, 채널 설정, 멀티카 메라, 고정 모드, 인공지능 확장 등 Android Q 라이브 캡션, 스마트 재생, 청각 보조, 동작 내비 Android R 10.0 29 2019년 9월 게이션, 어두운 테마, 개인 정보 제어 등 11.0 30 2020년 9월 알림과 대화, 미디어 제어, 일회성 권한, 음성 액 세스, 전원 메뉴, 스크롤 스트립 등 Android S 12.0 31 2021년 10월 새로운 UI, 빠른 설정 개선, 성능 및 전력 효율 12L 32 2022년 상반기 향상, 개인 정보 강화, 구글 어시스턴트 기능 개 성 등(12L은 태블릿 및 폴더블폰 전용) 안드로이드의 주요 기능 안드로이드는 모바일 기기를 위한 운영체제이다. 안드로이드 SDK(Software Development Kit)는 Java를 기반으로 안드로이드 애플리케이션을 개발할 수 있는 API를 제공한다. 안드로이 드가 제공하는 주요 기능은 다음과 같다. •애플리케이션 프레임워크를 통해 제공되는 API를 사용함으로써 코드를 재사용하여 효율적이고 빠른 애플리케이션 개발이 가능하다. •모바일 기기에 최적화된 달빅(Dalvik) 또는 아트(Android RunTime, ART) 런타임을 제공한다. 킷캣(4.4)까지는 달빅 가상 머신을 제공했으며, 롤리팝(5.0)부터는 빠른 실행을 보이는 아트 런타임을 제공한다. •2D와 3D 그래픽을 최적화하여 표현할 수 있으며 각종 오디오, 비디오 및 이미지 형식을 지원한다. •모바일용 데이터베이스인 SQLite를 제공한다. •모바일 기기에 내장된 각종 하드웨어(블루투스, 카메라, 나침반, 와이파이 등)를 잘 지원한다. •Eclipse IDE 또는 Android Studio를 통해 강력하고 빠른 개발 환경을 제공한다. •롤리팝(5.0)부터는 다양한 안드로이드 기기를 통합 지원한다. •마시멜로(6.0)부터는 앱 권한 설정, 지문 인식 등을 지원한다. •누가(7.0)부터는 가상현실 및 3D 게임, 알림 기능 향상, 다중 창 열기 등을 지원한다. •오레오(8.0)부터는 PIP, 알림, 자동 채우기, 배터리 강화 등을 지원한다. •파이(9.0)부터는 실내 위치 추적, 알림 기능 개선, 멀티카메라, 인공지능 확장 등을 지원한다. •Android 10.0(Q)부터는 라이브 캡션, 스마트 재생, 청각 보조, 동작 내비게이션, 어두운 테마 등을 지원한다. •Android 11.0(R)부터는 알림과 대화, 미디어 제어, 일회성 권한, 음성 액세스, 전원 메뉴 등을 지원한다. •Android 12.0(S)부터는 사용자의 UI 커스터마이즈 기능 강화, 머신러닝을 카메라 앱에 적용, 제한 없는 4K 영상 24 Android Studio를 활용한 안드로이드 프로그래밍
P:09
그림 1-2 다양한 안드로이드 기기(스마트워치, 스마트폰, 태블릿, 안드로이드 AUTO, 안드로이드 TV) 출처: google.com 촬영, Privacy Dashboard 추가, 상단 바에서 센서 해제, 위치 권한을 대략적 위치만 허용하는 기능, 와이파이 보 안 강화 등을 지원한다. 안드로이드의 특징 안드로이드는 앞에서 언급한 OHA에 포함된 여러 기업이 함께 개발하는 형식을 띠고 있지만 대부 분은 구글이 주도적으로 개발하는 것으로 알려져 있다. 안드로이드의 특징을 개략적으로 알아보자. ❶안 드로이드의 핵심 커널(kernel)은 리눅스(Linux)로 구성되어 있다. 리눅스는 오픈 소스로 상당히 정교한 운영체제의 핵심 기능을 무료로 사용할 수 있다. 안드로이드 커널은 이 리눅스 커널에서 모바일용으로 적합한 내용을 추출하여 필요한 기능을 추가한 것이라고 보면 된다. 안 드로이드는 리눅스를 기반으로 작성되었지만 리눅스 사용법을 전혀 몰라도 안드로이드 애플리케이션을 작성할 수 있다. 대부분 Windows 환경에서 애플리케이션을 개발하며 리눅스 명령어도 전혀 사용하지 않기 때문이다. 참고로 컵케이크(1.5)부터 허니콤(3.2)까지는 리눅스 커 널 2.6으로 제작되었고, 아이스크림 샌드위치(4.0)부터 마시멜로(6.0)까지는 리눅스 커널 3.x로 제작되었으며, 누가(7.0)부터는 리눅스 커널 4.x로 제작되고 있다. ❷안 드로이드 애플리케이션 개발 언어로 Java를 사용한다. 그리고 Java에 최적화된 통합 개발 도구인 Eclipse 및 Android Studio를 사용함으로써 고효율의 생산성을 무료로 제공한다. 나아 가 높은 수준의 애플리케이션을 제작하기 위한 NDK(Native Development Kit)도 제공함 으로써 C, C++ 기반으로 개발하여 빠른 성능과 세밀한 조작까지 가능하게 되었다. A ndroid Studio 3.0부터는 Java 대신 Kotlin 언어를 사용해도 앱 개발이 가능하다. 구글에서는 Java보다는 Kotlin으로 개발하는 것을 적극 권장하고 있다. 1장. 안드로이드의 개요와 개발 환경 설치 25
P:10
❸안 드로이드 SDK에 많은 라이브러리를 포함하고 있어 쉽게 개발할 수 있다. 특히 SQLite, OpenGL 등도 지원함으로써 별도의 외부 라이브러리를 사용할 필요가 없다. ❹오 픈 소스를 지향하기 때문에 운영체제부터 관련 문서, 개발 도구 등 거의 모든 것을 무료로 사용할 수 있다. 초반에는 관련 문서가 좀 부실한 측면이 있었으나 최근에는 문서가 잘 갖춰 져 있어 큰 문제 없이 참조가 가능하다. 또한 Windows뿐 아니라 Linux, Mac 환경에서도 안드로이드 애플리케이션 개발이 가능하다. ❺지 속적인 업그레이드를 제공한다. [표 1-2]에서 보듯이 빠른 업그레이드를 제공함으로써 최 신 기술을 빠르게 적용할 수 있다. 빠른 업그레이드는 새로운 것을 빨리 사용할 수 있다는 장점이 있지만 종종 버그를 포함하고 있어 단점이 되기도 한다. 안드로이드의 구조 안드로이드 운영체제의 주요한 구조는 다음과 같다. 그림 1-3 안드로이드의 구조 출처: developer.android.com 26 Android Studio를 활용한 안드로이드 프로그래밍
P:11
조금 복잡해 보이지만 간략하게 큰 틀만 살펴보자. ❶응 용 프로그램(Applications): 안드로이드 스마트폰에서 사용할 수 있는 일반적인 응용 프로 그램이다. 웹브라우저, 달력, 구글 맵, 연락처, 게임 등 사용자 입장에서 가장 많이 사용하는 앱이다. 모두 Java로 작성하며, 이 책에서 제작할 애플리케이션도 모두 여기에 해당된다. ❷응 용 프로그램 프레임워크(Application Framework): 안드로이드 API가 존재하는 곳이다. 애플리케이션은 API를 통해 안드로이드의 커널에 접근할 수 있으므로, 안드로이드폰 하드웨 어에 접근할 때는 Java에서 직접 접근하는 것이 아니라 API를 통해서만 가능하다. 이 책에서 주로 배울 내용도 안드로이드 API를 사용하고 활용하는 방법이다. ❸안 드로이드 런타임(Android Runtime): Java 코어 라이브러리와 달빅 가상 머신(Dalvik Virtual Machine) 또는 아트 런타임(ART Runtime)으로 구성된다. 안드로이드는 Java 문 법으로 프로그래밍하지만 Java 가상 머신을 사용하지 않고 이곳의 달빅 가상 머신이나 아트 런타임을 사용한다. 달빅 가상 머신과 아트 런타임은 모바일 환경에 최적화되어 있어 여러 개 를 동시에 구동할 수 있다. ❹라 이브러리(Libraries): 안드로이드에서 사용되는 여러 시스템 라이브러리는 시스템 접근 때 문에 Java가 아닌 C로 작성되어 있다. 따라서 성능이 뛰어나며 세밀한 조작이 가능하다. ❺리 눅스 커널(Linux Kernel): 하드웨어의 운영과 관련된 저수준의 관리 기능이 들어 있다. 주 로 메모리 관리, 디바이스 드라이버, 보안 등이다. 안드로이드 커널로 리눅스를 채택한 이유 는 오픈 소스라는 장점과 함께 카메라, 터치스크린, GPS, 자이로스코프 등 많은 스마트폰 장 치를 지원하기 때문이기도 하다. 지금까지 안드로이드에 대한 개괄적인 내용을 살펴보았다. 이어서 안드로이드 개발 환경을 직접 구축하여 안드로이드 애플리케이션을 작성하기 위한 준비를 해보자. 1장. 안드로이드의 개요와 개발 환경 설치 27
P:12
02 안드로이드 개발 환경 그전에는 주로 Eclipse 환경에서 안드로이드 프로그래밍을 했는데, 이는 몇 가지 개발 툴을 상 호 연동하여 설치해야 해서 개발 환경 구축이 다소 까다로웠다. 하지만 Android Studio를 사용 하면 간편하게 개발 환경을 구축할 수 있다. 1 안드로이드 개발을 위한 운영체제 원칙적으로 안드로이드 애플리케이션을 개발하기 위해서는 안드로이드가 설치된 기기(스마트 폰, 태블릿 등)가 필요하다. 하지만 이 책에서는 기본적으로 독자에게 안드로이드 장비가 없다는 전제하에 개발 환경을 구축하고 진행한다. 다행히도 안드로이드 개발 환경을 구축하면 가상의 안드로이드 장치인 AVD(Android Virtual Device)가 제공되므로, 안드로이드 장비가 없어도 안드로이드 장비가 있는 것처럼 작업이 가능하다. 안드로이드 개발 환경을 설치하기 위한 운영체제로는 Windows, Linux, Mac이 있다. 운영체 제별로 장단점이 있지만 이 책의 경우 가장 보편적인 Windows 환경에서 개발 환경을 구축한 다. 이 책에서 사용하는 Android Studio Bumblebee(2021.1.1) 버전은 Windows 운영체제 의 64bit에만 설치할 수 있으며 32bit Windows는 지원하지 않는다. 이 책을 학습하려면 최소 8GB(12GB 이상 권장) RAM, 20GB 이상의 디스크 여유 공간과 64bit Windows 8/10/11이 필요하다. Windows 7은 더 이상 지원하지 않는다. 2 안드로이드 개발 환경의 구성 안드로이드 응용 프로그램을 개발하기 위해서는 [그림 1-4]와 같은 절차를 거쳐야 한다. [그림 1-4]는 안드로이드 응용 프로그램을 개발하는 데 필요한 프로그램의 관계를 잘 보여준다. ❶먼 저 안드로이드 개발에 기본이 되는 Java 언어를 사용하기 위해 JDK( Java Development Kit)가 필요하다. 참고로 Android Studio 2.2부터는 Open JDK가 내장되어 있어 JDK를 28 Android Studio를 활용한 안드로이드 프로그래밍
P:13
추가 API ➎ 다운로드 ➊ JDK ➌ Android Studio ➍ ADT ➋ 안드로이드 SDK 코딩 및 수정 화면 출력 결과 확인 ➏ AVD 생성 그림 1-4 안드로이드 개발 환경의 구성 별도로 설치하지 않아도 된다. ❷안 드로이드 SDK가 별도의 폴더에 존재해야 한다. 안드로이드 SDK에 모든 안드로이드 버전 의 개발 API(Application Programming Interface)가 들어 있지는 않기 때문에 인터넷에 서 개발에 필요한 버전의 API를 추가로 다운로드하는 과정도 필요하다. ❸실 제로 개발자가 코딩하기 위한 통합 개발 환경 Android Studio가 핵심에 존재한다. ❹A ndroid Studio와 안드로이드 SDK를 연결하기 위한 플러그인 ADT(Android Development Tools)가 내부적으로 필요하다. ❺이 때 안드로이드 SDK가 설정된 경로가 지정되어 있어야 한다. 이러한 구성이 완료되면 안드 로이드 앱을 개발하기 위한 준비가 다 된 것이다. ❻마 지막으로 코딩한 결과를 화면에 테스트로 출력하기 위한 가상 안드로이드 장치인 AVD를 별도로 만들어야 한다. A ndroid Studio를 사용하지 않고 Eclipse 환경으로 설치하려면 ❶~❻ 과정을 모두 별도로 진행해야 하므로 설치가 조금 복잡하다. 하지 만 Android Studio의 경우 ❶~❻ 과정이 대부분 자동으로 설치 및 설정되기 때문에 개발 환경을 구성하기가 한결 수월하다. 안드로이드 개발 환경의 구성이 완료되면 Android Studio를 실행하여 코딩과 수정( )을 통 해 앱을 개발할 수 있다. 코딩된 결과는 ❻에서 생성한 AVD에 출력( )하고, 개발자는 그 결과를 확인( )한다. 1장. 안드로이드의 개요와 개발 환경 설치 29
P:14
저자 한마디 안드로이드 개발 환경의 종류 안드로이드 개발 환경은 크게 세 가지로 나뉜다. 이 책은 입문자용이므로 응용 프로그램 개발 환경인 Java와 SDK만을 다룬다. 이후 고급 안드로이드 개발자로 도약하려면 NDK와 PDK도 공부해야 한다. 표 1-3 안드로이드 개발 환경 개발 환경 사용 언어 수준 개발 툴킷 비고 Java 초 ·중급 일반 응용 프로그램 개발 응용 프로그램 C, C++ 중 ·고급 SDK 개발 C, C++ 고급 (Software Development Kit) 고수준의 응용 프로그램 개발 하드웨어 수준의 강력한 프로 시스템 응용 NDK 그램 개발 프로그램 개발 (Native Development Kit) 하드웨어 제어 PDK 및 커널 관련 (Platform Development Kit) Android Studio의 역사 Android Studio는 안드로이드 프로그래밍을 위한 통합개발환경(IDE)이며 구글에서 무료로 배포한다. Android Studio 이전에는 주로 Eclipse가 사용되었으나 2014년 12월에 Android Studio 1.0이 출시되면서 점점 많 은 개발자들이 Android Studio를 사용하기 시작하여 현재는 안드로이드 개발환경의 대부분을 차지하고 있 다. Android Studio는 버전별로 Canary → Beta → RC(Release Candidate, 출시 후보) → Stable(정식) 의 차례로 출시되고 있다. 정식 버전 이후에 업데이트되면 뒤에 Patch라고 명명해서 배포된다. 2022년 1월 현 재에는 Android Studio Arctic Fox(2020.3.1) 정식 Patch, Android Studio Bumblebee(2021.1.1) RC, Android Studio Chipmunk(2021.2.1) Canary가 출시되어 있다. Android Studio 4.2 이후부터는 표기 방식을 ‘Android Studio 연도.주버전.부버전’으로 변경했으며, ‘연 도.주버전’은 JetBrains사에서 만든 IntelliJ IDEA의 버전을 따르고 있다. 또한 Android Studio 2020.3.1부 터는 버전 이름에 알파벳 A부터 동물 이름을 순서대로 붙이고 있다. 표 1- 4 Android Studio 주요 버전별 출시일 Android Studio 정식 버전 출시일 기타 1.1 ~ 1.4 출시됨 1.0 2014년 12월 2.1 ~ 2.3 출시됨 2.0 2016년 4월 3.1 ~ 3.6 출시됨 3.0 2017년 10월 4.0 2020년 5월 의미: 북극 여우 4.1 2020년 10월 의미: 호박벌 4.2 2021년 5월 의미: 다람쥐 Arctic Fox(2020.3.1) 2021년 7월 Bumblebee(2021.1.1) 2022년 상반기 예상 Chipmunk (2021.2.1) 2022년 중반기 예상 30 Android Studio를 활용한 안드로이드 프로그래밍
P:15
03 안드로이드 개발 환경 설치 1 안드로이드 개발 환경 설치 순서 [그림 1-4]에 나타낸 안드로이드 개발 환경을 구축해보자. [그림 1-5]와 같은 순서로 진행한다. 이 책에서 사용하는 모든 파일은 책의 자료실(http://hanbit.co.kr/src/4584/)에 있다. 사이트 주소가 바뀌어 다운로드가 어렵다면 책의 자료실에서 다운로드한다. ➊ 에뮬레이터 가속기 설치 ➍ Android Studio 환경 설정 ➋ Android Studio 다운로드 ➎ 안드로이드 SDK 업데이트 (https://developer.android.com) ➌ Android Studio 설치 ➏ Android Virtual Device(AVD) 생성 안드로이드 앱 개발 그림 1- 5 안드로이드 개발 환경 설치 순서 저자 한마디 실습 환경 원클릭으로 설치(★중요) 이 책에서 사용하는 환경은 Android Studio Bumblebee(2021.1.1)에 Android 12.0(S)이다. 그런데 시간이 지나면 버전이 향상될 것이고, 높은 버전을 설치하면 책의 실습과 달라질 수밖에 없을 것이다. 안드로이드를 조금 다룰 줄 안다면 달라진 부분을 스스로 수정해서 실습해도 되지만, 처음 안드로이드를 학습하는 독자라면 약간 달라지는 부분 때문에 실습의 진행이 어려운 경우도 발생할 수 있다. 이러한 문제를 해결하고자 [부록 B]에 ‘Android Studio 개발 환경을 원클릭으로 설치하기’를 제공한다. [부록 B]대로 진행하면 [그림 1-5]의 모든 단계가 원클릭으로 완료되며 2장부터 학습을 진행하면 된다. 이렇게 하면 모든 실습이 책과 동일하게 진행될 것이다. 이 환경은 학교나 학원 수업에서 일괄적으로 실습 환경을 설정할 때 도 유용하다. 1장. 안드로이드의 개요와 개발 환경 설치 31
P:16
2 에뮬레이터(AVD) 가속기 설치 실습 1-1 에뮬레이터(AVD) 가속기 설치하기 이 책에서 사용하는 에뮬레이터(AVD)는 가상의 스마트폰을 추가로 부팅하는 방식이라 매우 느 리며, 부팅 후에 반응 속도도 사용하기 힘들 정도로 느리다. 이를 보완하기 위해 인텔 또는 AMD 의 비교적 최신 CPU를 사용하면 하드웨어 가속 기능을 추가로 설치해서 에뮬레이터의 속도가 상당히 빠르게 처리된다. [제어판]의 [시스템 및 보안]-[시스템]을 실행하거나, + / Break 키를 눌러 [컴퓨터에 대한 기본 정보 보기] 창을 연다. [장치 사양] 부분에서 프로세서, 설치된 RAM, 시스템 종류 를 확인하자. 원활한 실습을 위한 권장 사항은 Intel Core i3/i5/i7/i9(4세대 이후) 또는 AMD Ryzen 3/5/ 7/9(2세대 이후), RAM 8GB 이상, 64bit Windows 8 이후 운영체제이다. Intel Core CPU의 세대를 알아보려면 뒤의 숫자(또는 문자와 혼용) 중 앞에 나오는 한 자리 또는 두 자리 숫자를 보면 된다. 예를 들 어 Core i5-6100은 첫 번째 숫자가 6이므로 6세대 CPU이고, i7-1185G7은 앞의 두 자리가 11이므로 11세대 CPU이다. AMD CPU는 마지막 네 자리 숫자가 데스크톱은 2000 이상, 노트북은 3000 이상이어야 2세대 이후의 CPU이다. 예를 들어 노트북 Ryzen 7 4700U는 3세대 CPU이다. 그림 1-6 컴퓨터 정보 확인(인텔 CPU와 AMD CPU) 32 Android Studio를 활용한 안드로이드 프로그래밍
P:17
인텔 CPU인 경우 웹브라우저에서 https://github.com/intel/haxm/releases/에 접속하여 최신 버전의 Windows용 인텔 HAXM 압축 파일(haxm-windows_버전.zip)을 다운로드한다(또는 https://cafe.naver.com/itCookBook의 ‘안드로이드_ Java’ 자료실에서 다운로드해도 된 다). 이 책에서 사용한 파일은 haxm-windows_v7_7_0.zip인데, 버전이 달라도 상관없다. 다운로드한 haxm-windows_버전.zip 파일의 압축을 풀고 haxm-버전-setup.exe 파일 을 실행하여 설치를 진행한다. 초기화면에서 <Next>와 <Install>을 클릭한다. 그림 1-7 인텔 HAXM 설치 만약 ‘This computer does not support Intel Virtualization Technology (VT-X)…’라는 메시지가 나오고 설치가 안 된다면 다음과 같이 조치한다. 방 법 1 C PU가 Intel Core i 시리즈 4세대 이후라면 CMOS의 가상화(Virtualization) 기능이 꺼져 있기 때문일 수 있다. 컴퓨터를 재부팅하여 CMOS BIOS로 진입한 후 해당 기능을 켜고 다시 설치한다. 방 법 2 인 텔 HAXM을 지원하지 않는 CPU라면 [실습 1-1]을 넘어가고 [실습 1-2]부터 진행한다. 잠시 설치가 진행된 후 완료되면 <Finish>를 클릭하여 설치를 마친다. AMD CPU인 경우 먼저 + 를 누른 후 ‘Windows 기능’을 입력해서 [Windows 기능 켜기/끄기]를 실행한 다. 또는 [제어판]-[프로그램]-[Windows 기능 켜기/끄기]를 선택해도 된다. [Windows 기능 켜기/끄기] 창에서 ‘Hyper-V’, ‘Windows 샌드박스’, ‘Windows 하이퍼 바이저 플랫폼’ 기능이 모두 꺼져 있어야 한다. 만약 켜져 있다면 끄고 <확인>을 클릭한다. 1장. 안드로이드의 개요와 개발 환경 설치 33
P:18
그림 1-8 Windows 기능 켜기/끄기 웹브라우저에서 https://github.com/google/android-emulator-hypervisor-driver- for-amd-processors/releases/에 접속하여 최신 버전의 ‘Android Emulator Hypervisor Driver for AMD Processors’ 파일(gvm-windows_버전.zip)을 다운로드한다(또는 https://cafe.naver.com/itCookBook의 ‘안드로이드_ Java’ 자료실에서 다운로드해도 된 다). 이 책에서 사용한 파일은 gvm-windows_v1_7_0.zip인데, 버전이 달라도 상관없다. 다운로드한 gvm-windows_버전.zip 파일의 압축을 풀고 silent_install.bat 파일을 실행 하여 설치를 진행한다. [사용자 계정 컨트롤] 창이 나오면 <예>를 클릭한다. 아래 화면은 잠깐 나왔다 사라진다. 그림 1-9 Android Emulator Hypervisor Driver for AMD Processors 설치 만 약 ‘Unable to run Android Emulator Hypervisor Driver for AMD Processors…’라는 메시지가 나오고 설치가 안 된다면 다음과 같이 조치한다. 방법 1 컴 퓨터를 재부팅하여 CMOS BIOS로 진입한 SVM 기능을 Enabled로 활성화한 후 다시 설치한다. 방법 2 관련 기능을 지원하지 않는 CPU라면 [실습 1-1]을 넘어가고 [실습 1-2]부터 진행한다. 34 Android Studio를 활용한 안드로이드 프로그래밍
P:19
실습 1-2 Android Studio 다운로드하기 안드로이드 개발을 위한 핵심 툴인 Android Studio Bumblebee(2021.1.1)을 다운로드하고 적당한 폴더에 압축을 푼다. 웹브라우저에서 https://developer.android.com/studio/archive에 접속하여 상단 오른 쪽에서 ‘English’를 선택한다. 그런 다음 아래로 스크롤하여 <I agree to the terms>를 클릭 한 후, Android Studio Bumblebee(2021.1.1) 버전의 ‘Windows (64-bit): android- studio-2021.1.1.◯◯-windows.exe’ 파일을 다운로드한다. 이 책이 출간되는 2022년 초에는 Android Studio Bumblebee(2021.1.1) RC1까지 출시되었다. 이 책은 RC1으로 실습해도 문 제없이 모든 실습을 진행할 수 있다. 이 후에 정식버전이 나오면 그 파일로 진행해도 동일하게 실습 될 것이다. 만약, 정식버전이 책과 달 리 진행된다면 필자와 동일한 RC1(android-studio-2021.1.1.19-windows.exe)를 사용하자. 참고로 [부록 B]에서 제공하는 원 클릭 설치 파일도 Android Studio Bumblebee(2021.1.1) RC1 버전으로 제공된다. 그림 1-10 Android Studio Bumblebee(2021.1.1) 다운로드 1장. 안드로이드의 개요와 개발 환경 설치 35
P:20
다운로드한 Android Studio Bumblebee(2021.1.1)(파일명: android-studio-2021. 1.1.◯◯-windows.exe)은 다음과 같다. 그림 1-11 Android Studio 다운로드 완료 실습 1-3 Android Studio 설치하기 안드로이드 개발 환경의 핵심인 Android Studio를 설치하자. Android Studio 2.1까지는 Android Studio를 설치하기 전에 Java 개발 환경인 JDK를 설치해야 했지만, Android Studio 2.2부터 는 Android Studio 자체에 Open JDK가 내장되어 있어 JDK를 설치하지 않아도 된다. 구글에서도 Android Studio에 내장된 Open JDK를 사용할 것을 권장한다. 다운로드한 Android Studio Bumblebee(2021.1.1)(파일명: android-studio-2021.1. 1.◯◯-windows.exe)을 실행한다. 초기화면에서 <Next>를 클릭한다. 그림 1-12 Android Studio 설치 초기화면 36 Android Studio를 활용한 안드로이드 프로그래밍
P:21
[Choose Components]에서 ‘Android Virtual Device’의 체크를 끄고 <Next>를 클릭한다. 설 치 항목이 2개 나온다. Android Studio는 개발 IDE 환경이고 Android Virtual Device는 가상의 안드로이드 기기를 제공하는데 잠시 후에 별도로 생성할 것이니 여기서는 선택하지 않는다. 그림 1-13 Android Studio 설치 항목 선택 [Configuration Settings] 환경 설정 화면에서는 Android Studio가 설치될 폴더를 선택한 다. 기본값으로 두고 <Next>를 클릭한다. 그림 1-14 설치 경로 설정 1장. 안드로이드의 개요와 개발 환경 설치 37
P:22
시작 메뉴 폴더를 생성하는 화면에서도 기본값으로 두고 <Install>을 클릭한다. 그림 1-15 시작 메뉴 폴더 생성 잠시 Android Studio의 설치가 진행된다. 그림 1-16 설치 진행 설치가 완료되면 <Next>를 클릭한다. 그림 1-17 설치 완료 1 38 Android Studio를 활용한 안드로이드 프로그래밍
P:23
설치 완료 화면에서 ‘Start Android Studio’의 체크를 끄고 <Finish>를 클릭한다. 그림 1-18 설치 완료 2 3 Android Studio 설정 Android Studio를 설치했으니 이제 [그림 1-5]의 ➍번 Android Studio에 필요한 환경을 설정 하자. 필요한 환경 설정에서는 안드로이드 SDK도 자동 다운로드 및 설치된다. Android Studio 는 앞으로 안드로이드 프로그래밍을 할 때 항상 사용할 통합 개발 환경이다. 또한 Android Studio 환경에서 안드로이드 애플리케이션을 개발하기 위한 ➎번 SDK 업데이트까지 완료하자. 실습 1-4 Android Studio의 몇 가지 설정하기 안드로이드를 처음 실행하면 안드로이드 SDK가 자동으로 다운로드 및 설치된다. Android Studio에서 개발을 편리하게 하기 위해 코드의 행 번호를 표시하거나 폰트를 변경하는 등 Android Studio의 몇 가지 설정을 확인해보자. [Windows 시작]-[Android Studio]를 선택하여 Android Studio를 실행한다. 선택 화면 이 나오면 처음으로 설치하는 것이니 아래쪽 ‘ D o not import settings’가 선택된 상태에서 <OK>를 클릭한다. 1장. 안드로이드의 개요와 개발 환경 설치 39
P:24
그림 1-19 Android Studio 이전 환경 가져오기 설정 로고 화면이 나온다. 그림 1-20 Android Studio 로고 만약 [Data Sharing] 메시지 창이 나오면 <Don’t Send>를 클릭한다. [Android Studio Setup Wizard]가 실행된다. 환영 화면에서 <Next>를 클릭한다. 그림 1-21 Android Studio Setup Wizard 실행 1 40 Android Studio를 활용한 안드로이드 프로그래밍
P:25
[Install Type]은 기본값인 ‘Standard’를 선택하고 <Next>를 클릭한다. 그림 1-22 Android Studio Setup Wizard 실행 2 [Select UI Theme]는 아무거나 선택해도 된다. 필자는 ‘ Light’를 선택했다. 선택한 후 <Next> 를 클릭한다. 그림 1-23 Android Studio Setup Wizard 실행 3 [Verify Settings]에서 다운로드 크기를 확인하고 <Finish>를 클릭한다(다운로드 항목과 크 기가 필자와 다를 수 있다). 1장. 안드로이드의 개요와 개발 환경 설치 41
P:26
그림 1-24 Android Studio Setup Wizard 실행 4 [License Agreement] 창이 나오면 각 항목을 선택하고 <Agree>를 클릭한 후 <Finish> 를 클릭하여 진행한다. [Download Component] 창이 나오고 한동안 안드로이드 SDK의 다운로드 및 설치가 진행된다. 그림 1-25 Android Studio Setup Wizard 실행 5 다운로드 및 설치가 완료되면 <Finish>를 클릭하여 종료한다. 그림 1-26 Android Studio Setup Wizard 실행 6 42 Android Studio를 활용한 안드로이드 프로그래밍
P:27
Android Studio 초기화면이 나오면 [Customize]를 선택하고 ‘All Settings’를 클릭한다. 그림 1-27 Android Studio 초기화면 먼저 자동 업데이트 기능을 끄자. 왼쪽의 [Appearance & Behavior]-[System Settings]- [Updates]를 선택하고 오른쪽의 업데이트와 관련된 체크를 모두 끈다. 업데이트를 끄는 것은 업데이트된 기능 탓에 책대로 진행되지 않을 수 있기 때문이다. 또한 업데이트된 기능에 오히려 버그가 있을 수도 있으므로 향후 문제가 발생할 경우를 미연에 방지하기 위함이다. 그림 1-28 업데이트 기능 끄기 1장. 안드로이드의 개요와 개발 환경 설치 43
P:28
앞으로 코딩할 소스코드의 행 번호가 보이도록 설정하자. 왼쪽의 [Editor]-[General]- [Appearance]를 선택하고 오른쪽의 ‘Show line numbers’에 체크하면 된다. 그림 1-29 행 번호 설정 편집기의 폰트를 변경하려면 왼쪽의 [Editor]-[Font]에서 설정할 수 있다. 지금은 변경하지 말고 <OK>를 클릭하여 설정을 마친다. 화 면을 어둡게 또는 밝게 하려면 Android Studio 초기화면에서 다시 [Customize]를 선택하고 ‘All Settings’를 클릭하여 [Appearance & Behavior] - [Appearance]를 선택한 후 오른쪽에서 Theme로 ‘IntelliJ Light’, ‘Darcula’ 등을 선택하고 <OK>를 클릭한다. 실습 1-5 안드로이드 SDK 업데이트하기 Android Studio의 설치가 완료되었으니 [그림 1-5]의 ➎번 안드로이드 SDK를 업데이트하자. 초기 설치가 필요한 모든 것을 설치하는 것은 아니므로 필요한 항목만 추가로 설치한다. Android Studio 초기화면에서 왼쪽의 [Projects]를 선택하고 오른쪽 아래의 ‘More Actions’ 를 클릭하여 [SDK Manager]를 선택한다. 44 Android Studio를 활용한 안드로이드 프로그래밍
P:29
그림 1-30 안드로이드 SDK 추가 설치 1 안드로이드 버전별로 SDK를 추가/제거할 수 있는 창이 나오는데, 이 책을 집필하는 시점에는 Android 12.0(S)가 설치되어 있다. 시간이 지나면 더 상위 버전이 설치되어 있을 수도 있지만 이 책에서는 Android 12.0(S)로 모든 실습을 진행한다. 우선 오른쪽 아래의 ‘Show Package Details’에 체크한 후 기존에 체크되어 있는 항목을 모두 끈다. 그리고 Android 12.0(S) 아래의 ‘Android SDK Platform 31’과 ‘Google APIs Intel x86 Atom_64 System Image’에만 체크한다. 아직 <OK>를 클릭하지 말자. Android 12.0(S) 아래의 모든 항목에 체크해도 된다. 설치되는 파일의 용량이 커질 뿐 별 문제는 없을 것이다. 그림 1-31 안드로이드 SDK 추가 설치 2 1장. 안드로이드의 개요와 개발 환경 설치 45