그림으로 쉽게 설명하는 안드로이드 프로그래밍 초판발행 2012년 8월 20일 제3판2쇄 2016년 1월 15일 지은이 천인국 펴낸이 김승기 펴낸곳 (주)생능출판사 / 주소 경기도 파주시 광인사길 143 출판사 등록일 2005년 1월 21일 / 신고번호 제406-2005



Similar documents
Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx

아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상

SBR-100S User Manual

Windows 8에서 BioStar 1 설치하기

4S 1차년도 평가 발표자료

Microsoft PowerPoint - chap01-C언어개요.pptx

디지털 공학

PathEye 공식 블로그 다운로드 받으세요!! 지속적으로 업그래이드 됩니다. 여러분의 의견을 주시면 개발에 반영하겠 습니다.

을풀면된다. 2. JDK 설치 JDK 는 Sun Developer Network 의 Java( 혹은 에서 Download > JavaSE 에서 JDK 6 Update xx 를선택하면설치파일을

IRISCard Anywhere 5

JDK이클립스

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

Microsoft PowerPoint - 11주차_Android_GoogleMap.ppt [호환 모드]

iOS5_1±³

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

Microsoft Word - windows server 2003 수동설치_non pro support_.doc

SIGIL 완벽입문

PowerPoint Template

View Licenses and Services (customer)

1

(Microsoft PowerPoint - AndroG3\306\367\306\303\(ICB\).pptx)

LATEX과 Mendeley를 활용한 문헌 관리 2017년 2월 6일 제1절 서지 관리 프로그램 연구 주제를 찾거나 선행 연구를 조사하는 가장 대표적인 방법이 문헌들을 찾아보는 것이다. 수없이 많은 논문들을 찾게 되고, 이런 논문들을 다운로드한 후 체계적으로 관리할 필

목 차 1. 드라이버 설치 설치환경 드라이버 설치 시 주의사항 USB 드라이버 파일 Windows XP에서 설치 Windows Vista / Windows 7에서 설치 Windows

비디오 / 그래픽 아답터 네트워크 만약에 ArcGolbe를 사용하는 경우, 추가적인 디스크 공간 필요. ArcGlobe는 캐시파일을 생성하여 사용 24 비트 그래픽 가속기 Oepn GL 2.0 이상을 지원하는 비디오카드 최소 64 MB 이고 256 MB 이상을 메모리

Microsoft 을 열면 깔끔한 사용자 중심의 메뉴 및 레이아웃이 제일 먼저 눈에 띕니다. 또한 은 스마트폰, 테블릿 및 클라우드는 물론 가 설치되어 있지 않은 PC 에서도 사용할 수 있습니다. 따라서 장소와 디바이스에 관계 없이 언제, 어디서나 문서를 확인하고 편집

Studuino소프트웨어 설치

Microsoft PowerPoint App Fundamentals[Part1].pptx

Microsoft PowerPoint - 02_Linux_Fedora_Core_8_Vmware_Installation [호환 모드]

wtu05_ÃÖÁ¾

Microsoft PowerPoint App Fundamentals[Part1](1.0h).pptx

PowerPoint Template

슬라이드 1

( )부록

서현수

Microsoft PowerPoint - 안드로이드 개발 환경 구축(170411)

사용설명서를 읽기 전에 안드로이드(Android)용 아이디스 모바일은 네트워크 연결을 통해 안드로이드 플랫폼 기반의 모바일 기기에서 장치 (DVR, NVR, 네트워크 비디오 서버, 네트워크 카메라) 에 접속하여 원격으로 영상을 감시할 수 있는 프로그램입니다. 장치의 사

스마트월드캠퍼스 교육교제

고객 카드

게임 기획서 표준양식 연구보고서

ThinkVantage Fingerprint Software

B2B 매뉴얼

Microsoft Word - Korean_뷰어 메뉴얼_공용_ADVR&SWi_.doc

PowerPoint 프레젠테이션

Microsoft PowerPoint - 02처음으로만드는(Ver 1.0)

슬라이드 1


: AA ( ) TV : ios ( ).. 2

슬라이드 1

Frequently Asked Question 버전 변경 날짜 변경 내용 v /07/22 최초 작성

설치 순서 Windows 98 SE/Me/2000/XP 1 PC를 켜고 Windows를 시작합니다. 아직 컴퓨터에 프린터를 연결하지 마십시오. 2 PC에 P-S100 CD-ROM(프 린터 드라이버)을 삽입합니다. 3 설치 프로그램을 시작합니다. q CD-ROM의 PS1

Web Scraper in 30 Minutes 강철

Microsoft Word - src.doc

목차 윈도우드라이버 1. 매뉴얼안내 운영체제 (OS) 환경 윈도우드라이버준비 윈도우드라이버설치 Windows XP/Server 2003 에서설치 Serial 또는 Parallel 포트의경우.

MF Driver Installation Guide

52 l /08

사용하기 전에 2

Microsoft PowerPoint UI-Event.Notification(1.5h).pptx

CODESYS 런타임 설치과정

슬라이드 1

H3250_Wi-Fi_E.book

Splentec V-WORM Quick Installation Guide Version: 1.0 Contact Information 올리브텍 주소 : 경기도성남시분당구구미로 11 ( 포인트타운 701호 ) URL: E-M

Install stm32cubemx and st-link utility

B.3 JDBC 설치 JDBC Java DataBase Connectivity 는자바에서 DBMS의종류에상관없이일관된방법으로 SQL을수행할수있도록해주는자바 API Application Program Interface 다. 이책에서는톰캣과 SQL Server 간의연결을위

Chapter 1

슬라이드 1

Mango-IMX6Q mfgtool을 이용한 이미지 Write하기

1부

사용설명서를 읽기 전에 ios용 아이디스 모바일은 네트워크 연결을 통해 ios 플랫폼 기반의 모바일 기기(iOS 버전 6.0 이상의 ipod Touch, iphone 또는 ipad)에서 장치(DVR, 네트워크 비디오 서버 및 네트워크 카메라)에 접속하여 원격으로 영상을

Google Maps Android API v2


Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Windows Live Hotmail Custom Domains Korea

Galaxy S 사용의 필수 지침서 SMART Basic 10 Contents Basic 1. 처음 사용하기 006 단말기 기본 사용하기 1 내부 구성품 살펴보기 2 배터리 교체하기 3 버튼별 기능 살펴보기 4 터치/드래그 사용하기 5 보안 설정/해제하기 025 전화

[ 그림 8-1] XML 을이용한옵션메뉴설정방법 <menu> <item 항목ID" android:title=" 항목제목 "/> </menu> public boolean oncreateoptionsmenu(menu menu) { getme

이 드리는 혜택 완벽 을 위한 발환경 : Team Foundation Server 200 & CAL 제공 최저의 비용으로 구현을 위해 Visual Studio Team Foundation Server 200 서버 라이센스와 CAL이 에 포함되어 있습니다 을 모든 팀원이

슬라이드 제목 없음

슬라이드 1

User Guide

슬라이드 1

<4D F736F F D D31312D30312D53572D30312DBBE7BFEBC0DABCB3B8EDBCAD5FBFDCBACEB9E8C6F7BFEB2E646F63>

윈도 모바일 6.1을 OS로 사용하는 스마트폰(옴니아2 등)에서의 Tcl/Tk의 사용

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

Getting Started With Parallels Desktop¢ç 9

문서의 제목 나눔고딕B, 54pt

슬라이드 1

온라인등록용 메뉴얼

OM2M 기반의 OHP-M2M 오픈소스설치가이드 2015 년 8 월 경북대학교통신프로토콜연구실 최예찬, 강형우 요약 사물인터넷 (Internet of Things: IoT) 이이슈가되면서다양한사

win8_1±³

PDF_Compass_32호-v3.pdf

RHEV 2.2 인증서 만료 확인 및 갱신

Microsoft PowerPoint - 권장 사양

01장

윈도우시스템프로그래밍

Microsoft Word - 문필주.doc

PowerPoint 프레젠테이션

DE1-SoC Board

NX1000_Ver1.1

152*220

161117_EX Phone stick_manual

Transcription:

그림으로 쉽게 설명하는 안드로이드 프로그래밍 초판발행 2012년 8월 20일 제3판2쇄 2016년 1월 15일 지은이 천인국 펴낸이 김승기 펴낸곳 (주)생능출판사 / 주소 경기도 파주시 광인사길 143 출판사 등록일 2005년 1월 21일 / 신고번호 제406-2005-000002호 대표전화 (031)955-0761 / 팩스 (031)955-0768 홈페이지 www.booksr.co.kr 책임편집 손정희 / 편집 최일연, 신성민, 김민보 / 디자인 유준범 마케팅 백승욱, 최복락, 김민수, 심수경, 최권혁, 백수정, 이재원, 최태웅, 김민정 인쇄 제본 (주)상지사P&B ISBN 978-89-7050-846-7 93000 정가 44,000원 이 도서의 국립중앙도서관 출판예정도서목록(CIP)은 서지정보유통지원시스템 홈페이지(http://seoji.nl.go.kr)와 국가자료공동목록시스템(http://www.nl.go.kr/kolisnet)에서 이용하실 수 있습니다. (CIP제어번호: CIP2015019201) 이 책의 저작권은 (주)생능출판사와 지은이에게 있습니다. 무단 복제 및 전재를 금합니다. 잘못된 책은 구입한 서점에서 교환해 드립니다.

개정3판 머리말 안드로이드는 현재 전 세계 사람들이 가장 많이 사용하는 모바일 운영체제이다. 안드로이드는 스마트폰을 넘어서 스마트카나 스마트워치와 같은 웨어러블 컴퓨터 에서도 많이 사용되고 있다. 안드로이드는 컴퓨터 공학도라면 반드시 알고 지나가 야 하는 중요한 주제가 되었다. 특히 안드로이드 5.0 버전(롤리팝)부터는 개발도구가 안드로이드 스튜디오 로 전격적으로 변경되었다. 그동안 이클립스로 개발해오던 개 발자들에게는 상당한 충격이었을 것이다. 하지만 사용하다보면 안드로이드 스튜디 오도 이클립스만큼 상당히 편리한 도구라는 것을 느낄 수 있다. 이 책의 개정3판에 서는 다음과 같은 점에 역점을 두고 개정하였다. P R E F A C E 안드로이드 5.0 버전부터 공식 개발 도구가 된 안드로이드 스튜디오 의 설치, 사용법을 자세하게 설명하였다. 현재 최신 버전인 6.0 기반에서 모든 예제를 다시 작성하고 테스트하였다. 최 신 버전에 맞지 않는 코드는 삭제하였고 최신 예제들을 보강하였다. 독자들이 조금 큰 규모의 앱을 개발할 때 사용할 수 있는 Lab을 제공한다. Lab 에서는 여러 가지 분야의 대표적인 앱의 기초 버전을 제공한다. 독자들은 이 기초 버전에서 출발하여서 더 큰 규모의 앱을 작성할 수 있을 것이다. 예를 들 어서 초보적인 만보계 나 초보 영상처리 프로그램 앱을 Lab으로 제공한다. 독자들은 여기에 살을 붙여서 본격적인 앱을 제작할 수 있을 것이다. 기존의 내용 중에서 지나치게 자세하거나 혼동을 줄 수 있는 부분은 삭제하였 으며, 설명을 보다 쉽게 이해할 수 있도록 보강하였다. 인텐트, 리스트뷰, NFC, 방송수신자 등의 많은 분야를 다시 작성하였다. 개정판을 준비하면서도 항상 초판의 목표는 잊지 않았다. 이 책은 안드로이드 입문자들을 위한 책이다. 초판의 가장 큰 목표는 컴퓨터 공학에 대한 기본적인 지식을 가진 개발자들이 쉽게 이해할 수 있는 안드로이드 책을 만들어 보자는 것이었다. 안드로이드에서도 기본적인 개념을 이해하는 것이 무척 중요하다. 3

4P R E F A C E 예를 들어서 인텐트, 이벤트 처리, 액티비티 등의 개념을 정확하게 이해 하여야 한다. 이 책은 기본적인 개념을 독자들에게 친절하고 자세히 설명하고 자 노력하였다. 개 정 3판에서도 적절한 그림을 가능한 많이 사용하여 보다 친숙하고, 지루하지 않은 책을 만들려고 노력하였다. 개정3판을 만들면서 많은 도움이 있었다. 항상 적극적으로 지원해주시는 (주)생능 출판사 여러분께 깊은 감사를 표한다. 그리고 책이 출간될 때마다 격려해주시고 오 류를 지적해주시는 모든 독자 여러분께 깊이 감사드린다. 2015년 7월 저자 천인국

머리말 안드로이드는 최근에 각광받는 모바일 운영 체제이다. 안드로이드는 지속적으로 마켓 쉐어를 늘려가고 있으며, 버전이 올라갈 때마다 각종 첨단 기술들이 추가되고 있다. 하지만 안드로이드는 상당히 배우기 힘든 점이 있다. 첫 번째로 자바, 데이터 베이스, 멀티태스킹, 네트워크, 센서 등의 광범위한 분야에 대한 지식이 있어야 한 다. 두 번째로 현존하는 가장 앞선 이론과 기술들을 채택하다보니 입문자들이 이해 하는 데 상당한 어려움을 느낀다. 시중에 나와 있는 안드로이드에 관한 좋은 책들도 상당히 어렵게 기술되어 있다. 저자가 이 책을 저술하게 된 가장 큰 이유가 바로 이 때문으로 컴퓨터 공학에 대한 기본적인 지식을 가진 개발자들이 쉽게 이해할 수 있 는 안드로이드 책을 만들어보자는 것이었다. 먼저 적절한 그림을 가능한 많이 사용 하여 안드로이드 개념을 쉽게 이해하도록 노력하였다. 또한 컬러를 사용하여 지루하 지 않고 친숙한 책이 되도록 노력하였다. P R E F A C E 이 책은 안드로이드 입문자들을 위한 책이다. 이 책으로 안드로이드에 대한 기초 를 확실히 하고, 실제 애플리케이션 개발에는 구글의 전문적인 문서들과 전문적인 책들을 참조하면 될 것이다. 안드로이드에 대한 가장 큰 정보 원천은 역시 구글의 안 드로이드 개발자 웹페이지라 할 수 있다. 이 책을 저술하면서도 구글의 웹페이지와 샘플 프로그램을 많이 참조하였다. 안드로이드는 너무 자주 버전이 업그레이드되는 데, 책을 저술하는 입장에서는 상당히 어려운 문제였다. 이 책을 저술하는 중에도 버 전이 두 번이나 업그레이드되었다. 이 책에는 가능한 한 최선을 다해서 최신의 내용 을 담으려고 노력하였다. 한 가지 다행스러운 점은 안드로이드에서는 이전 버전도 최신 버전에서 계속 지원된다는 점이다. 책에 들어 있는 소스는 생능출판사 홈페이 지(www.booksr.co.kr)에서 제공될 것이다. 이 책이 만들어지기까지 많은 도움이 있었다. 특히 까다로운 요구들을 묵묵히 들 어주고 적극적으로 지원해주신 생능출판사 여러분께 깊은 감사를 표한다. 그리고 항 5

6P R E F A C E 상 격려해주시고 오류를 지적해주시는 모든 교수님들과 독자 여러분께 깊이 감사드 린다. 책을 저술하는 동안 안드로이드에 포함된 첨단 기술들이 필자를 즐겁게 했듯 이, 독자 여러분들이 이 책에서 즐거움을 발견할 수 있다면 필자에게는 큰 보람이 될 것이다. 2012년 7월 저자 천인국

차례 CHAPTER 01 기초 사항 1. 스마트폰 18 2. 안드로이드란? 22 3. 안드로이드의 특징 24 4. 안드로이드의 구조 29 5. 애플리케이션의 기초 개념 31 6. 인텐트 39 7. 매니페스트 파일 41 8. 안드로이드 개발 준비 사항 43 C O N T E N T S CHAPTER 02 안드로이드 개발 도구 설치 1. 개발 과정의 개요 50 2. 안드로이드 개발 도구 51 3. JDK 52 4. 안드로이드 스튜디오 설치하기 54 5. SDK 추가로 설치하기 60 6. 첫 번째 프로젝트 만들기 66 7. 에뮬레이터 생성하기 71 8. 앱 실행하기 76 9. 예제 코드를 가져와서 실행하여 보자. 78 CHAPTER 03 첫 번째 애플리케이션 1. 애플리케이션의 구성 84 2. 마음껏 변경하여 보자 91 3. XML을 이용하여 앱의 화면 작성하기 96 7

8C O N T E N T S CHAPTER CHAPTER 04 05 4. 리소스 103 5. 매니페스트 파일 106 6. 자동으로 생성되는 파일의 분석 108 7. 에뮬레이터 로그캣 111 8. 안드로이드 폰을 연결한 개발 환경 구축 112 9. 여러 가지 형식의 앱 114 10. 정리 116 사용자 인터페이스 기초 1. 사용자 인터페이스 개요 120 2. 사용자 인터페이스 작성 방법 121 3. 비주얼 도구를 이용하여 사용자 인터페이스 만들기 129 4. 뷰 132 5. 기초적인 뷰들 138 Lab 계산기 앱 작성 146 레이아웃 1. 레이아웃 148 2. 선형 레이아웃 149 3. 프레임 레이아웃(FrameLayout) 157 4. 테이블 레이아웃(TableLayout) 159 5. 상대적 레이아웃(RelativeLayout) 161 6. 절대적 레이아웃(AbsoluteLayout) 164 7. 코드로 레이아웃 변경하기 165 Lab 계산기 앱 작성 171

CHAPTER 06 입력 위젯과 이벤트 처리 1. 입력 위젯 176 2. 버튼 178 3. 이벤트를 처리하는 방법 186 4. 이벤트 처리 객체를 이용하여 이벤트 처리하기 187 5. 텍스트 필드 195 6. 체크 박스 200 7. 라디오 버튼 202 8. 토글 버튼 205 9. 레이팅 바 207 10. 커스텀 컴포넌트 208 11. 터치 이벤트 216 12. 멀티 터치 이벤트 221 C O N T E N T S Lab 여론 조사 앱 작성 229 Lab 온도 변환기 앱 작성 233 CHAPTER 07 메뉴와 대화 상자 1. 사용자 인터페이스 개요 236 2. 메뉴 238 3. XML로 메뉴 정의하기 240 4. 옵션 메뉴 생성하기 244 5. 컨텍스트 메뉴 250 6. 팝업 메뉴 259 7. 액션바 262 8. 액션바 추가사항 269 9. 대화 상자 274 9

C O N T E N T S CHAPTER 08 10. AlertDialog 277 11. DatePickerDialog 283 12. 커스텀 대화 상자 286 13. 알림기능(notification) 291 Lab 예약 앱 작성 295 그래픽 1. 그래픽 300 2. 커스텀 뷰를 사용하여 그리기 301 3. 그리기 속성 308 4. 패스 그리기 315 5. 이미지 표시하기 317 6. 도형 객체 이용하기 322 7. 애니메이션 330 8. 프로퍼티 애니메이션 331 9. 뷰 애니메이션 335 10. 드로워블 애니메이션 338 11. 서피스 뷰(SurfaceView) 340 Lab 랜덤 그래픽 작성 350 Lab 그림판 예제 작성 354 Lab My Photoshop 작성 360 Lab MyImagePro 작성 364 CHAPTER 09 고급 위젯과 프래그먼트 1. 어댑터 뷰 클래스 370 10

2. 리스트 뷰 371 3. 그리드 뷰 382 4. 갤러리 386 5. 스피너 390 6. 프로그레스 바 394 7. 레이팅 바 397 8. 데이트 픽커와 타임 픽커 400 9. 프래그먼트 404 10. 프래그먼트의 생애주기 408 11. 프래그먼트 생성하기 409 12. 태블릿과 스마트폰에서 화면 다르게 하기 412 13. 유연한 UI 만들기 416 14. 다른 프래그먼트와의 통신 422 15. 머티어리얼 디자인 431 C O N T E N T S Lab 주소록을 ListView로 표시하기 437 CHAPTER 10 액티비티와 인텐트 1. 애플리케이션, 액티비티, 액티비티 스택, 태스크 442 2. 인텐트 447 3. 명시적 인텐트 449 4. 여러 페이지로 구성된 애플리케이션 작성 454 5. 액티비티로부터 결과받기 461 6. 암시적 인텐트 468 7. 멀티태스킹 474 8. 태스크 관리하기 478 9. 인텐트 필터 483 10. 액티비티 생애주기 490 11. 액티비티 상태 저장 499 11

C O N T E N T S CHAPTER CHAPTER 11 12 리소스와 보안 1. 리소스 506 2. 기본 리소스와 대체 리소스 508 3. 리소스 참조 514 4. 다양한 화면 지원하기 518 5. 지역화 522 6. 보안 528 7. 권한 요청하기 530 서비스와 방송 수신자 1. 서비스 536 2. 서비스 기초 539 3. IntentService 클래스 546 4. 연결 타입 서비스 551 5. 방송 수신자란? 561 6. 애플리케이션이 방송하기 568 7. 중요한 방송 572 Lab 센서값을 읽는 앱 작성 578 CHAPTER 13 프로세스와 스레드 1. 프로세스와 스레드 586 2. 프로세스 588 3. 스레드 591 4. 스레드에서 UI를 조작하는 방법 598 12

CHAPTER 14 5. 스레드를 이용한 이미지 다운로드 606 6. 게임 예제 609 데이터베이스와 환경 설정 1. 데이터를 저장하는 방법 618 2. 공유 프레퍼런스 619 3. 애플리케이션 환경 설정 624 4. 내부 공간에 파일 만들기 628 5. 외부 저장 공간 632 6. 데이터베이스 638 7. 데이터베이스 사용하기 640 8. 데이터베이스와 어댑터 651 C O N T E N T S Lab 영화 데이터베이스 만들기 655 CHAPTER 15 콘텐트 제공자 1. 콘텐트 제공자 668 2. 콘텐트 제공자의 기본 669 3. 콘텐트 제공자로부터 데이터 읽기 674 4. 주소록 680 5. 콘텐트 제공자를 이용하여 데이터 변경하기 691 6. Calendar Provider 696 CHAPTER 16 네트워크 1. 네트워킹 상태 조회 702 13

C O N T E N T S 2. 웹에서 파일 다운로드 706 3. 웹앱 710 4. XML 처리 722 CHAPTER 17 구글 지도 2.0 CHAPTER 18 1. 위치 기반 애플리케이션 730 2. 사용자 위치 파악하기 732 3. 지오코딩 739 4. 구글 지도 v2 743 5. 구글 플레이 서비스 747 6. 지도 API 키 얻기 750 7. 지도 애플리케이션 작성 755 8. 구글 지도 기초 사항 761 9. 지도 위에 마커 그리기 768 10. 지도 위에 그림 그리기 775 11. 지도와 상호작용하기 780 멀티미디어 1. 안드로이드의 멀티미디어 지원 786 2. 오디오 재생 787 3. 오디오 녹음 796 4. 인텐트를 이용한 이미지 캡처 800 5. Camera 클래스를 이용한 영상 캡처 809 6. 내장 사진 선택하기 816 7. 비디오 재생 818 8. 비디오 녹화 822 14

CHAPTER CHAPTER 19 20 전화, SMS, 데이터 공유 1. 인텐트를 사용한 전화 걸기와 문자 메시지 보내기 830 2. 전화 상태 얻기 834 3. 이메일 보내기 839 4. 다른 앱에 데이터 보내고 받기 843 블루투스 C O N T E N T S 1. 블루투스 856 2. 블루투스 설정 절차 859 3. 블루투스로 채팅하기 866 4. 저전력 블루투스(블루투스 스마트) 877 CHAPTER 21 센서 1. 센서 하드웨어 894 2. 방향 센서 902 3. 가속도 센서 905 Lab 만보계 제작 910 Lab 주사위 게임 앱 작성 914 CHAPTER 22 NFC와 앱 위젯 1. NFC 920 2. NFC의 기초 923 3. 안드로이드는 어떻게 NFC를 처리하는가? 926 15

C O N T E N T S CHAPTER 23 4. 앱 위젯 942 애플리케이션 배포하기 1. 애플리케이션 배포 과정 958 2. 애플리케이션 서명하기 960 3. 애플리케이션 버전 966 4. 애플리케이션 마켓 968 찾아보기 972 16

A n d r o i d 02CHAPTER 안드로이드 개발 도구 설치 1. 개발 과정의 개요 2. 안드로이드 개발 도구 3. JDK 설치 4. 안드로이드 스튜디오 설치하기 5. 첫 번째 프로젝트 만들기 6. 에뮬레이터로 앱 실행하기 7. 추가로 에뮬레이터 생성하기 8. SDK 추가로 설치하기 9. 예제 코드를 가져와서 실행하여 보자.

02 안드로이드 개발 도구 설치 Android 안드로이드 앱을 개발 하고 싶어요. 허허! 이런, 걷지도 못하는데 벌 써 뛰시려고? 자, 먼저 안드로 이드 앱을 개발하는 데 필요한 도구에 대해 차분히 알아보자. 1. 개발 과정의 개요 안드로이드 애플리케이션을 개발하고 배포하는 전체 과정을 안드로이드 웹페이지를 참조하여 살펴보자. 이 단계에서는 개발 환경을 구축한다. 또 AVD(Android Virtual Device)라고 불리는 가 상 장치를 생성한다. 아니면 실제 모바일 장치를 PC에 연결하여도 된다. 이 단계에서는 안드로이드 프로젝트를 생 성하고 소스 코드, 리소스 파일 등을 작성 한다. 50

roid 안드로이드 개발 도구 설치 02 CHAPTER 이 단계에서는 프로젝트를.apk 패키지로 제작하여서 에뮬레이터나 실제 장치에서 실행한다. 이클립스를 사용하면 프로젝트 가 저장될 때마다 빌드가 자동으로 이루 어진다. 디버깅은 안드로이드 SDK와 함께 제공되 는 디버깅 및 로그 도구를 이용하면 된다. 테스트와 성능 측정도 SDK 테스팅 도구를 사용한다. 애플리케이션을 배포 모드로 구성하고 빌 드하여서 사용자에게 배포한다. 2. 안드로이드 개발 도구 안드로이드 애플리케이션을 개발하기 위해서는 다음과 같은 도구들이 필요하다. 모 두 인터넷을 통하여 설치가 가능하고 무료로 다운로드할 수 있다. 안드로이드 자체 도 오픈 소스이고 사용하는 라이브러리들도 대부분 오픈 소스이다. 가능하면 최신 버전을 받아서 설치하여 보자. 이 책에서는 윈도우 7(64비트 버전)이 설치된 PC에서 안드로이드 6.0 버전을 기준으로 설명한다. 설치 과정이 최근에는 매우 간편해졌다. 다음과 같은 2가지만 설치하면 된다. JDK 안드로이드 스튜디오(안드로이드 SDK, 안드로이드 플랫폼 등이 포함되어 있음) JDK를 설치한 후에 안드로이드 개발자 사이트에서 안드로이드 스튜디오 파일을 다운로드하여 압축을 풀면 개발에 필요한 모든 것이 한 번에 설치된다. 51

안드로이드 프로그래밍 3. JDK 설치 JDK는 Java Development Kit의 약자로 자바로 프로그램을 개발하는 데 필요한 개 발 도구이다. 안드로이드 애플리케이션도 자바로 작성되므로 반드시 필요하다. JDK 7 이후 버전이 필요하다. JDK의 최신 버전을 http://java.sun.com에서 받아서 설치 하여 보자. 1 다운로드 선택 2 SE 버전 다운로드 선택 자바는 ME, SE, EE 버전으로 나누어진다. 우리는 SE(Standard Edition) 버전으로 작업할 것이다. [Download]를 선택하고 [Java] 탭을 누른다. 화면에서 Java SE를 선 택한다. 52

안드로이드 개발 도구 설치 02 CHAPTER JDK 선택 위의 화면에서 JDK와 JRE가 있는데 자바 개발자라면 JDK를 다운로드해야 한다. [Download] 버튼을 클릭하면 된다. 라이선스에 동의한다. 자신의 컴퓨터의 OS 가 32비트 버전이면 Windows x86을 다운 로드하고 64비트 버전 이면 Windows x64를 다운로드한다. 위의 화면에서는 먼저 오라클 사의 자바 라이선스에 동의한다는 체크를 한다. 다 음 단계는 개발 플랫폼을 선택하는 단계이다. 윈도우 운영체제에도 32비트와 64비 트가 있다. 개발자의 컴퓨터의 운영체제가 32비트 버전이면 Windows x86 을 다운 로드하고 64비트 버전이면 Windows x64 를 다운로드한다. 파일 크기는 180MB 정도 53

안드로이드 프로그래밍 되고 다운로드한 파일을 실행하면 설치가 된다. 모든 것을 디폴트로 하고 설치하면 큰 문제가 없다. 4. 안드로이드 스튜디오 설치하기 안드로이드 스튜디오의 특징 안드로이드 스튜디오는 2014년 12월부터 안드로이드 공식 개발 도구가 되었다. 안 드로이드 스튜디오는 IntelliJ IDEA에 기반을 두고 있다. 개발자 사이트가 말하는 장점들은 다음과 같다. 그레이들(Gradle) 기반의 유연한 빌드 시스템 다중 apk 파일 생성 시스템 앱의 공통 특징을 지원하는 코드 템플레이트 제공 마우스 드래그앤 드롭 방식의 테마 편집이 가능한 레이아웃 에디터 구글 클라우드 플랫폼 지원 내장: 구글 클라우드 메시징과 앱 엔진을 쉽게 통합할 수 있다. 프로젝트 뷰 기본적으로 안드로이드 스튜디오는 파일들을 프로젝트 뷰(project view)에 표시한 다. 프로젝트 뷰는 안드로이드 프로젝트의 핵심 소스 파일에 쉽게 접근할 수 있도록 한다. 다음과 같은 것들이 프로젝트 뷰에 표시된다. 모든 모듈에 대한 빌드 파일 핵심 소스 파일 각 모듈에 대한 매니페스트 파일 리소스 파일 54

안드로이드 개발 도구 설치 02 CHAPTER 프로젝트 뷰는 Gradle Scripts라는 폴더 아래에 모든 빌드 파일을 보여준다. 각 프로젝트 모듈은 최상위 계층에서 하나의 폴더로 나타나며 다음과 같은 3가지 폴더 를 포함하고 있다. java/ - 모듈의 소스 파일 manifest/ - 모듈의 매니페스트 파일 res/ - 모듈의 리소스 파일 안드로이드 스튜디오 설치 과정 안드로이드 스튜디오는 안드로이드 개발자 사이트에서 다운로드할 수 있다. 안드로 이드 개발자 사이트에는 개발자 가이드, 레퍼런스, 리소스, 비디오, 블로그 등의 많 은 정보가 있으니 안드로이드 개발자라면 반드시 둘러보아야 한다. 1. 안드로이드 개발자 사이트 http://developer.android.com/sdk/index.html에 접속한다. 다음 화면에 있는 Download Android Studio 를 누르면 안드로이드 스튜디오를 다운로드하는 화면으로 이동한다. 안드로이드 스튜디오는 안드로이드 애플리케이 션을 개발, 테스트, 디버깅하는 데 필요한 모든 도구를 포함하고 있다. 55

안드로이드 프로그래밍 클릭하여 안드로이드 스튜디오를 다운로드한다. 2. 다운로드하기 전에 라이선스에 동의한다는 체크를 하여야 한다. 화면 아래의 체크 박스를 클릭하여서 동의하고 Download Android Studio for Windows 버튼을 클릭한다. 1 라이선스 계약에 동의 한다는 체크를 한다. 2 클릭하여 ADT 번 들을 다운로드한다. 다운로드 버튼을 클릭하여 적절한 디렉터리에 ADT 번들 파일을 다운로드한다. 56

안드로이드 개발 도구 설치 02 CHAPTER 클릭하여 파일을 다운로드한다. 3. 다운로드된 파일을 찾아서 더블 클릭하면 설치가 시작된다. 많은 화면들이 등장하 지만 [Next] 버튼을 눌러서 모든 것을 디폴트로 설치하면 된다. C 드라이브에 충분한 공간이 있어야 한다. 57

안드로이드 프로그래밍 안드로이드 스튜디오 와 안드로이드 SDK가 설치되는 경로가 다르 다. 참고로 알아두자. 에뮬레이터도 상당한 공간을 차지한다. 경고 안드로이드 SDK와 안드로이드 스튜디오, 에뮬레이터를 모두 설치하려면 약 8GB가 권장된다. 디폴트 설치 드라이브는 c:이지만 만약 c: 드라이브에 충분한 공간이 없다면 d:와 같은 다른 드라이브에 설치하여야 한다. 만약 공간이 부족하면 SDK가 설치되지 않고 에뮬레이터는 실행 되지 않는다. 각별히 주의하여야 한다. 4. 설치가 완료되면 다음과 같은 화면이 등장한다. [Finish] 버튼을 누르면 설치가 끝나고 자동으로 안드로이드 스튜디오가 시작된다. 58

안드로이드 개발 도구 설치 02 CHAPTER 안드로이드 스튜디오는 컴퓨터의 이름이 한글로 되어 있거나 중간에 스페이스가 있는 경우에 오류가 발생하는 경우도 있다고 한다. 따라서 컴퓨터 이름은 가능하다면 영문으로 하자. 참고사항 만약 설치 과정에서 No JVM installation found 오류가 발생하면 자바가 설치된 디렉터 리를 찾지 못한 것이다. 이 경우에는 환경 변수 JAVA_HOME을 정의해주면 된다. [시작] [제 어판] [시스템]을 선택하고 대화 상자에서 [고급 시스템 설정]을 클릭한다. [고급] 탭을 선 택하고 화면 하단의 [환경 변수(N)...] 버튼을 클릭한다. [시스템 변수] 항목에서 [새로 만 들기(W)...] 버튼을 클릭하여서 [새 시스템 변수] 대화 상자에서 [변수 이름]에 JAVA_HOME 이라는 이름을 입력한다. 그리고 [변수 값]에 자바가 설치된 경로를 입력한다. 예를 들어서 C:\Program Files\Java\jdk1.8.0_25 와 같다. 자바 설치 경로는 사용자마다 다를 수 있 으니 필히 확인한 후에 입력하여야 한다. 참고사항 5. 안드로이드 스튜디오가 시작되면서 다음과 같은 화면이 등장한다. 이것은 이전에 안드로이드 스튜디오를 설치한 적이 있으면 환경을 가져올 것인지를 물어보는 것 이다. 없으면 그대로 [OK] 버튼을 클릭한다. 59

안드로이드 프로그래밍 6. 안드로이드 SDK가 업데이트되었는지를 체크한다. 최신 버전이 있으면 다운로드 한다. 7. 앞의 화면의 [Finish] 버튼을 누르면 안드로이드 스튜디오의 첫 화면을 볼 수 있다. 60

안드로이드 개발 도구 설치 02 CHAPTER 5. 첫 번째 프로젝트 만들기 지금부터 앱을 만들어 봐요. 어떤 경우에는 무작정 시작해보는 것이 좋은 결과를 낸다. 안드로이드도 너무 어렵 게만 생각해선 안 된다. 이번 장에서는 무작정 안드로이드 스튜디오를 시작하여서 첫 번째 프로젝트를 작성해보겠다. 1. 안드로이드 스튜디오를 시작하면 다음과 같은 대화 상자가 나타난다. 1 선택 61

안드로이드 프로그래밍 2. 앞의 화면에서 Start a new Android project 를 선택하면 다음과 같이 새로운 프로젝트를 만들 수 있는 대화 상자가 나타난다. Application name: 에 Hello 를 입력하고 [Next] 버튼을 누른다. 1 "Hello"를 입력한다. 2 회사의 인터넷 도메인 이름을 입력한다. 3 프로젝트가 생성되는 폴더를 지정한다. 3. 아래 화면에서는 플랫폼을 선택한다. Phone and Tablet 항목을 선택한다. Minimum SDK 는 우리가 제작할 앱이 어떤 버전까지 지원할 것인지를 지정한다. 기본적으로 API 15: Android 4.0.3 항목이 선택되어 있지만 얼마든지 변경이 가 능하다. 약 87%의 단말기에서 실행이 가능하다는 설명이 나온다. 1 "Phone and Tablet"을 체크한다. 2 최소 SDK 버전을 선택 한다. 앱이 실행될 수 있 는 최소 버전을 의미한다. 62

안드로이드 개발 도구 설치 02 CHAPTER 4. 다음 화면에서 현재의 앱에 추가할 액티비티의 모양을 선택한다. 즉 첫 화면을 선 택하는 것이다. Blank Activity 는 비어 있는 액티비티로, 이 액티비티를 앱에 추가한다. "Blank Activity"를 선택한 다. Black Activity는 화면이 비어 있는 액티비티이다. 5. [ Next] 버튼을 누르면 생성될 파일의 이름을 선택하는 화면이 나온다. 액티비티의 이름과 레이아웃의 이름을 지정한다. 액티비티는 안드로이드에서 하나의 작업(활 동)을 담당하는 컴포넌트이다. 레이아웃은 화면을 정의하는 XML 파일이다. 여러 가지 이름을 변경하여도 되지만 그대로 두는 편이 수월하다. 여기서는 기본적으 로 입력되는 이름을 사용한다. 하지만 액티비티의 이름과 레이아웃의 이름은 애 플리케이션마다 달라질 수 있다. [Finish] 버튼을 누른다. 1 액티비티의 이름을 입력한다. 2 레이아웃의 이름을 입력한다. 3 앱의 타이틀을 입력한다. 4 메뉴 파일의 이름을 입력한다. 63

안드로이드 프로그래밍 참고사항 처음으로 안드로이드 스튜디오를 실 행하는 경우에는 오른쪽과 같은 보 안 경고 창이 뜰 수 있다. 안드로 이드는 자바를 사용하는데, 이 자 바의 통신을 허용하겠는지를 물어보 는 것이다. [액세스 허용] 버튼을 누르면 된다. 6. 한참 기다리면 안드로이드 스튜디오의 메인 화면이 등장한다. 안드로이드 프로젝트 뷰: 프로젝트의 구조 를 보여준다. 화면을 보면 넥서스 5의 화면이 표시되고 있다. 안드로이드 스튜디오를 사용하면 필요한 위젯들을 스마트폰의 화면 위로 드래그하여서 화면을 구성할 수 있다. 만약 오류가 발생한다면 안드로이드 스튜디오를 설치하여 첫 번째 프로젝트를 생성할 때 다음과 같은 오류와 경고가 발생할 수 있다. 64

안드로이드 개발 도구 설치 02 CHAPTER 첫 번째 경고는 빌드와 프로젝트에서 문자 엔코딩 방법이 서로 다르다는 경고이 다. 이것을 UTF-8로 통일하여야 한글이 제대로 표시된다. [File] [Setting] [File Encoding]을 선택하고 다음과 같은 대화 상자를 열 어서 엔코딩을 모두 UTF-8로 지정한다. 두 번째 오류는 안드로이드 버전 23이 JDK 7 이상을 사용한다는 오류이다. 이 오 류는 여러분의 컴퓨터에 JDK7 이전 버전이 사용되고 있는 경우에 발생한다. 여기를 클릭하여서 1 JDK 7 이상 버전으로 설치하거나 2 기존의 자바 버전 중에서 JDK 7 65

안드로이드 프로그래밍 이상 버전으로 선택하면 된다. 소스 파일은 어디에 있을까? 앱이 자동으로 만들어지기는 했는데 소스 파일들은 어디에 있을까? 다음 화면의 왼 쪽에 있는 안드로이드 프로젝트 뷰에서 java 폴더 아래의 kr.co.company.hello 아 래에 있는 MainActivity.java를 더블 클릭하여 보자. 다음과 같은 소스가 자동으로 파일에 입력되어 있을 것이다. 자동으로 생성된 소스 파일이다. Tip 만약 소스 코드의 폰트가 너무 작아서 보기가 불편하다면 [File] [Setting]을 선택하여서 설정 화면에서 변경하면 된다. [Editor] [Colors & Fonts] [Font]를 클릭한다. 새로 운 Setting을 이름을 주어서 저장한 후에 폰트를 변경할 수 있다. 위의 소스는 이클립스가 자동으로 작성하여 주는 소스이다. 이 소스는 다음 장에 서 자세하게 분석될 것이다. 잠시 관찰하여 보자. 첫 번째 문장에 새로운 패키지가 선언되어 있는데 패키지의 이름은 우리가 대화 상자에서 입력했던 kr.co.company. hello이다. 이어서 MainActivity 클래스가 정의되어 있는데 이 클래스 이름도 우리 가 액티비티의 이름으로 입력한 바 있다. 즉 안드로이드 스튜디오는 우리가 새로운 66

안드로이드 개발 도구 설치 02 CHAPTER 프로젝트를 생성할 때 대화 상자에서 입력하였던 이름들을 가지고 기본적인 소스 코 드를 작성하여 주는 것을 알 수 있다. 일단 아무것도 수정하지 말고 이 상태로 실행 하여 보자. 안드로이드 스튜디오는 애플리케이션의 뼈대를 순식간에 작성하여 준다. 아무것 도 추가하지 않았지만 이 상태에서도 실행이 가능하다. 안드로이드 스튜디오는 우리 가 편집하는 사이에 자동으로 컴파일되기 때문에 따로 컴파일시킬 필요는 없다. 앱 을 실행시키는 절차를 살펴보자. 앱을 실행하려면 실제 장치가 있거나 실제 장치를 흉내 내는 에뮬레이터가 있어야 한다. 최근 버전의 안드로이드 스튜디오를 설치하면 기본 에뮬레이터가 내장되어 있 다. 따라서 이것을 이용하여서 앱을 실행하여 보자. 6. 에뮬레이터로 앱 실행하기 안드로이드 애플리케이션은 PC에서 이클립스와 같은 도구를 이용하여서 개발되고 컴파일되어서 USB 케이블을 통하여 실제 장치에 다운로드되어 실행된다. 그림 2.1 이종 개발 환경 만약 실제 장치가 없다면 실제 장치 대신에 가상 장치를 사용하면 된다. AVD(Android Virtual Device)는 실제 안드로이드 폰을 흉내 내는 에뮬레이터 (emulator) 또는 가상장치이다. 일반적으로 실제 안드로이드 폰을 가지고 실험을 하 면 좋겠지만 여러 가지 사정으로 불가능한 경우가 많다. 예를 들어서 개발자가 가진 67

안드로이드 프로그래밍 실제 안드로이드 폰이 최신 버전이 아닌 경우에는 최신 기능을 테스트하기가 불가능 하다. 이런 경우에 많이 사용되는 것이 에뮬레이터이다. 에뮬레이터란 소프트웨어로 실제 하드웨어 장치를 그대로 흉내 내는 것이다. 시뮬레이터보다도 더 정교하게 흉 내를 내는 것인데 에뮬레이터는 해당 장치의 CPU 명령어로 실행이 가능하다. 에뮬레 이터 안에서는 스마트폰에 사용되는 ARM 계열의 CPU 명령어까지 실행이 가능하다. 에뮬레이터는 상당히 정교하며 리눅스 운영체제가 내부에 포함되어 있다. 에뮬레이 터는 거의 실제와 같은 실행 환경을 제공한다고 생각하면 된다. 1. 앱을 실행하려면, 화면 상단의 실행 아이콘을 클릭하거나 [Run] 메뉴에서 [Run app...]을 선택한다. 2. 앱이 실행되면서 인터넷 접속을 허가하겠느냐는 대화 상자가 나온다. 물론 허가 하여야 한다. 여기서 adb.exe가 실행되면서 에뮬레이터와 통신하고 있음을 알 수 있다. 버튼을 클릭한다. 68

안드로이드 개발 도구 설치 02 CHAPTER 3. 이어서 앱을 어떤 단말기에서 실행할 것인지를 물어보는 대화 상자가 등장한다. 기본 에뮬레이터를 구동하는 것을 선택하고 [OK] 버튼을 누른다. 현재 실행 중인 장치가 있으면 여기 나타난다. 현재 실행 중인 장치가 없으면 에뮬레이터를 실 행한다. 마법사를 이용하여 만든 프로그램은 매우 간단하다. 화면의 상단에 Hello world! 라고 출력하면 그만이다. 실행 결과를 조금 더 살펴보면 우리가 프로젝트 대 화 상자에서 입력하였던 애플리케이션 타이틀과 아이콘이 표시되어 있음을 알 수 있 다. 화면에는 버튼도 메뉴도 그래픽도 없다. 하지만 처음으로 프로그램을 작성하여 오류 없이 실행했다는 데 의의를 두자. 지동으로 생성된 앱의 실행 화면 69

안드로이드 프로그래밍 에뮬레이터는 실습하는 동안 종료하지 말고 그대로 두는 편이 좋다. 에뮬레이터는 기동하는 데 상당한 시간이 소요되므로 실습 내내 유지하도록 하자. 새로운 애플리 케이션을 작성하여 실행 버튼을 누르면 자동적으로 에뮬레이터에 다운로드되어 실 행된다. 7. 추가로 에뮬레이터 생성하기 우리는 앞에서 기본적으로 설치된 에뮬레이터를 사용하였다. 하지만 안드로이드 스 튜디오에서는 자신이 필요한 에뮬레이터를 얼마든지 생성할 수 있다. 에뮬레이터를 생성하기 위해서는 다음과 같은 절차를 따른다. 1. [ Tools] [Android] [AVD Manager] 메뉴를 선택한다. 또는 아래 그림과 같이 아이콘을 선택한다. 2. 현재 존재하는 에뮬레이터가 나타난다. 이미 만들어진 에뮬레이터가 있다면 화면 에 에뮬레이터의 리스트가 나타난다. 에뮬레이터를 생성하려면 [Create Virtual Device...] 버튼을 누른다. 70

안드로이드 개발 도구 설치 02 CHAPTER 새로운 에뮬레이터를 생성한다. 3. 새로운 에뮬레이터를 생성하는 화면이 나타난다. 첫 번째 화면은 에뮬레이터를 위 한 하드웨어를 선택하는 화면이다. 많은 종류의 스마트폰들이 나열되어 있으며 여기서 하나를 선택하면 된다. 우리는 화면 왼쪽의 Category 에서 Phone 을 선 택한 후에 Nexus 5 항목을 선택해보자 71

안드로이드 프로그래밍 4. 아래 화면에서는 에뮬레이터에 사용되는 시스템 이미지(system image)를 선택한 다. 시스템 이미지는 에뮬레이터에 설치되는 운영체제라고 생각하면 된다. 안드 로이드 버전과 CPU에 따라서 시스템 이미지가 달라진다. 우리는 x86 이라는 이 름의 시스템 이미지를 선택하도록 하자. 호스트 컴퓨터와 유사한 CPU를 선택하여 야 에뮬레이터가 빠르게 실행된다. 여러 가지 버전의 안드로이드 SDK를 설치하면 많은 이미지가 나열된다. 호스트 컴퓨터가 64비트 버전을 지원하는 컴퓨터이 면 x86_64를 선택한다. 아 니면 x86을 선택한다. 5. 다음 화면에서는 개발자가 지금까지 선택한 항목들을 보여준다. 여기서 에뮬레이 터의 이름을 변경할 수도 있고 [Show Advanced Settings] 버튼을 눌러서 고급 선 택 사양을 설정할 수 있다. [Show Advanced Settings] 버튼을 눌러보자. 72

안드로이드 개발 도구 설치 02 CHAPTER 1 에뮬레이터 이름을 phone1이라고 변경한다. 2 세부 사항을 변경하 기 위하여 이 버튼을 누른다. 6. 우리는 아무것도 변경하지 않겠지만 원한다면 에뮬레이터의 설정을 변경할 수 있다. 어떤 세부 사항을 변경 할 수 있는지 관찰하라. 7. 위의 화면에서 [Finish] 버튼을 누르면 약간의 시간이 지난 후에 우리가 만든 에 뮬레이터가 리스트에 추가된다. 73

안드로이드 프로그래밍 두 번째 에뮬레이터로 추가된다. 에뮬레이터는 많이 생성할 수 있다. 에뮬레이터 실행 에뮬레이터 변경 8. 위의 화면에서 추가된 에뮬레이터의 실행 버튼( )을 누르면 에뮬레이터가 실행된 다. 우리가 선택한 스마트폰의 화면이 나타난다. 상당한 시간이 소요된다. 인내심 을 가지고 기다려야 한다. 호스트 컴퓨터의 사양이 낮은 경우에는 더욱 그렇다. 에뮬레이터에서는 마우스로 터치를 대신한다. 첫 번째 잠금 화면에서 마우스로 열 쇠 모양의 아이콘을 위쪽으로 드래그하면 잠금 화면이 풀린다. 이때부터는 여러분에 게 친근한 화면이므로 여러 가지 방법으로 사용해보자. 동일한 방법으로 추가적으로 에뮬레이터를 하나 더 생성하도록 하자. 이번에는 화 면의 해상도가 낮은 3.2인치 HVGA slider를 phone2 라는 이름으로 생성하자. 우리 74

안드로이드 개발 도구 설치 02 CHAPTER 는 phone1 과 phone2 를 예제에 따라 적절하게 사용할 것이다. 앱에 따라서 화면 의 해상도가 높으면 에뮬레이터에서의 실행이 너무 느려지는 경우가 종종 있다. 8. SDK 추가로 설치하기 우리가 앞 절에서 설치한 안드로이드 스튜디오에는 가장 최신 버전의 SDK만 들어 있 다. 하지만 우리는 다양한 스마트폰에서 실행되는 앱을 작성해야 하기 때문에 이전 버전의 SDK도 설치할 필요가 있다. 우리는 언제든지 SDK 매니저를 통하여 필요한 것 들을 다운로드해서 설치할 수 있다. 75

안드로이드 프로그래밍 설치 가능한 컴포넌트들 설치 가능한 컴포넌트들은 상당히 많지만 개발자 수준에 따라서 다음과 같은 컴포넌 트들을 설치하도록 권장하고 있다. 개발자 수준 SDK 컴포넌트 설명 기초 수준 (Basic) SDK Tools SDK Platform-tools SDK platform 애플리케이션을 디버깅하고 테스트하는 데 필요한 도구들 이 들어 있다. 이 도구들은 이미 SDK 스타터 패키지에서 설치되었다. 이 도구들은 <sdk>/tools/ 디렉터리 안에 들어 있다. 애플리케이션을 개발하고 디버깅하는 데 필요한 도구들을 포함한다. 그러나 이 도구들은 최신의 기능을 지원하기 위 하여 안드로이드 플랫폼과 동시에 개발된다. 이들 도구들은 일반적으로 새로운 플랫폼이 발표될 때에 업데이트된다. 이 들은 <sdk>/platform-tools/ 디렉터리에서 찾을 수 있다. 적어도 하나의 플랫폼은 설치하여야 한다. 일단은 가장 최 신 버전과 몇 개의 많이 사용되는 버전을 설치하는 것이 좋 다. 필요하면 다른 버전을 다운로드하면 된다. + 권장 수준 (Recommended) + 전문가 버전 Documentation Samples Usb Driver Google APIs Additional SDK Platforms 안드로이드 API를 설명하는 문서이다. 이 문서는 구글의 웹 사이트에서 제공하는 API 문서와 동일하다. 이 문서가 있 으면 이클립스에서 특정 API의 설명을 F2 키를 눌러서 볼 수 있다. 각 안드로이드 플랫폼에서 실행되는 예제 코드와 애플리케 이션을 포함하고 있다. 만약 안드로이드 초보자라면 이 예 제들을 다운로드해서 분석하는 것이 바람직하다. 실제 스마트폰을 USB로 연결하여서 애플리케이션을 실행 하고 디버깅할 수 있는 USB 드라이버이다. 만약 실제 장치 로 디버깅하지 않는다면 이것이 필요하지는 않다. Google APIs는 구글 지도 라이브러리를 사용할 때 필요 하다. 애플리케이션을 발표할 때, 다른 플랫폼이 필요할 수 있다. 먼저 애플리케이션이 지원하려고 하는 가장 최소 버전 플 랫폼에 대하여 컴파일해보는 것이 좋다. 우리는 앞으로 전문가가 될 예정이므로 전문가 버전으로 설치하도록 한다. 76

안드로이드 개발 도구 설치 02 CHAPTER 이전 SDK 버전 우리가 목표로 하는 타깃 장치의 안드로이드 버전은 하나가 아니라 여러 개일 수 있 다. 회사에서 애플리케이션을 개발할 때는 다양한 버전의 장치들을 대상으로 하여야 한다. 예를 들어서 4.4.2 버전에서도 실행되는 애플리케이션을 작성하고 싶은 경우 도 많다. 따라서 이런 경우에는 추가적으로 필요한 안드로이드 버전을 다운로드하는 것이 좋다. 그리고 각 버전의 샘플 프로그램과 문서(document)도 공간이 된다면 설 치하는 것이 좋다. 우리는 일단 다음 버전만 추가로 설치하자. Android 5.1.1(API 22) Android 4.4.2(API 19) 설치 과정 1. 안드로이드 스튜디오에서 [Tools] [Android] [SDK Manager]를 선택한다. 2. Android SDK Manager가 실행된다. 현재 컴퓨터에 설치된 SDK 버전들을 보여준다. 여기서 우리가 필요한 버전과 도구를 선택하여서 설치하여야 한다. 우리는 앞에 서 설명한 대로 Android 5.1.1(API 22) 과 Android 4.4.2(API 19) 를 선택하여 설치하도록 하자. 사용자가 개발하기 원하는 버전이 있으면 추가로 선택한다. 77

안드로이드 프로그래밍 선택 3. [OK] 버튼을 클릭하면 설치가 진행된다. 일반적으로 상당한 시간이 걸린다. 설치가 끝나면 Done loading packages. 메시지가 표시된다. 설치에는 상당한 시간이 소요될 수 있다. 네트워크를 통하여 다운로드되면서 설치되는 것이기 때문에 인내심을 가지고 기다려야 한다. 그리고 설치가 실패한 패키지가 있으면 다시 설치 하여야 한다. SDK Manager는 필요하면 언제든지 실행하여서 패키지를 추가로 설치 할 수 있다. 78

안드로이드 개발 도구 설치 02 CHAPTER 4. Android SDK Manager의 화면에서 [SDK tools]에서도 필요한 도구가 있다면 추 가로 설치한다. [Android Support Library], [Google Play services], [Google USB Driver]는 설치하는 것이 좋겠다. 9. 예제 코드를 가져와서 실행하여 보자. 안드로이드 스튜디오를 사용하면 GitHub에 있는 예제 코드를 손쉽게 가져와서 실행 해볼 수 있다. GitHub는 소스를 올리고 공유하며 관리하는 웹 기반의 저장소이다. 모든 안드로이드 예제 소스는 GitHub을 통하여 공유된다. 간단한 예로 예제 코드 중 의 하나를 가져와서 실행하여 보자. 1. [File] [New] [Import Sample...]을 클릭한다. 79

안드로이드 프로그래밍 샘플 중에서 하나를 선택 하여 가져오는 메뉴이다. 2. 아래 화면에서는 관심 있는 예제를 선택한다. 키워드로 검색할 수도 있고 목록에 서 하나를 선택할 수 있다. 우리는 초보자이므로 [Getting started] 폴더에 있는 [Action Bar Compat - Basic]을 선택한다. 원하는 예제를 선택한다. 80

안드로이드 개발 도구 설치 02 CHAPTER 3. 아래 화면에서 앱의 이름과 저장된 장소를 표시한다. [Finish] 버튼을 누른다. 예제의 이름이 이미 입력되 어 있다. 변경할 수도 있다. 예제가 저장되는 디렉터리를 지정한다. 4. 아래 화면과 같이 코드가 다운로드되어서 실행할 수 있는 상태가 된다. 실행 버튼 을 눌러서 에뮬레이터에서 실행해보자. 샘플 예제가 자동으로 새로운 프로젝트로 만들어진다. 81

안드로이드 프로그래밍 5. 아래와 같은 실행 화면이 에뮬레이터에 나타난다. 액션바를 보여주는 예제이다. 여러분들은 이 예제를 변경하여서 자신의 예제를 만들 수 있다. 액션바의 사용을 보 여주는 예제이다. 참고사항 예제들의 목록을 살펴보고 흥미로운 예제를 가져와서 실행하여 보자. 각 분야마다 꼭 필요한 예제들이 준비되어 있다. 참고사항 안드로이드 앱을 개발할 때 기존에는 이클립스를 사용하였다. 따라서 인터넷에는 많은 이클립 스 기반의 앱들이 있다. 이러한 앱을 안드로이드 스튜디오에서 사용할 수 있을까? 사용할 수 있다. 안드로이드 스튜디오의 [File] [New] [Import Project] 메뉴를 사용하면 이클 립스 프로젝트를 읽을 수 있다. 참고사항 이전에 만든 프로젝트를 다시 열려면 [File] [Open] 메뉴나 [File] [Reopen Project] 메뉴를 사용하면 된다. 82