HOME > Detail View

Detail View

(핵심만 골라 배우는) 안드로이드 스튜디오 3 & 프로그래밍 (Loan 24 times)

Material type
단행본
Personal Author
Smyth, Neil 심재철, 역
Title Statement
(핵심만 골라 배우는) 안드로이드 스튜디오 3 & 프로그래밍 / 닐 스미스 지음 ; 심재철 옮김
Publication, Distribution, etc
파주 :   제이펍,   2017  
Physical Medium
xxvii, 863 p. : 삽화 ; 25 cm
Series Statement
제이펍의 모바일 시리즈= Jpub's mobile series ; 34
Varied Title
Android Studio development essentials : Android 7 edition
ISBN
9791185890784
General Note
이 책은 <<핵심만 골라 배우는 안드로이드 스튜디오>>의 최신개정판임  
색인수록  
000 00000nam c2200205 c 4500
001 000045913232
005 20170824170416
007 ta
008 170824s2017 ggka 001c kor
020 ▼a 9791185890784 ▼g 93000
040 ▼a 211009 ▼c 211009 ▼d 211009
041 1 ▼a kor ▼h eng
082 0 4 ▼a 005.26/8 ▼2 23
085 ▼a 005.268 ▼2 DDCK
090 ▼a 005.268 ▼b 2017z2
100 1 ▼a Smyth, Neil
245 2 0 ▼a (핵심만 골라 배우는) 안드로이드 스튜디오 3 & 프로그래밍 / ▼d 닐 스미스 지음 ; ▼e 심재철 옮김
246 1 9 ▼a Android Studio development essentials : ▼b Android 7 edition
246 3 ▼a 안드로이드 스튜디오 3 and 프로그래밍
260 ▼a 파주 : ▼b 제이펍, ▼c 2017
300 ▼a xxvii, 863 p. : ▼b 삽화 ; ▼c 25 cm
440 0 0 ▼a 제이펍의 모바일 시리즈= ▼x Jpub's mobile series ; ▼v 34
500 ▼a 이 책은 <<핵심만 골라 배우는 안드로이드 스튜디오>>의 최신개정판임
500 ▼a 색인수록
700 1 ▼a 심재철, ▼e
740 2 ▼a 핵심만 골라 배우는 안드로이드 스튜디오
900 1 0 ▼a 스미스, 닐, ▼e
945 ▼a KLPA

No. Location Call Number Accession No. Availability Due Date Make a Reservation Service
No. 1 Location Science & Engineering Library/Sci-Info(Stacks1)/ Call Number 005.268 2017z2 Accession No. 121241289 Availability Available Due Date Make a Reservation Service B M
No. 2 Location Sejong Academic Information Center/Science & Technology/ Call Number 005.268 2017z2 Accession No. 151341488 Availability Available Due Date Make a Reservation Service
No. Location Call Number Accession No. Availability Due Date Make a Reservation Service
No. 1 Location Science & Engineering Library/Sci-Info(Stacks1)/ Call Number 005.268 2017z2 Accession No. 121241289 Availability Available Due Date Make a Reservation Service B M
No. Location Call Number Accession No. Availability Due Date Make a Reservation Service
No. 1 Location Sejong Academic Information Center/Science & Technology/ Call Number 005.268 2017z2 Accession No. 151341488 Availability Available Due Date Make a Reservation Service

Contents information

Book Introduction

안드로이드 스튜디오 기반의 애플리케이션 개발과 테스트에 필요한 환경 설정, 그리고 안드로이드 스튜디오의 주요 기능과 사용법을 간명한 예제 코드로 설명한다. 안드로이드 스튜디오 3의 각종 최신 기능에 대한 내용도 국내 최초로 포함하고 있다. ‘Kotlin(코틀린) 핵심 문법’ 이 부록으로 제공된다.

데이터베이스, 콘텐트 제공자, 인텐트, 클라우드 기반 파일 스토리지의 사용법과 구글 플레이와 연관된 내용을 설명한다. 최신의 안드로이드 스튜디오 3 버전에서 새롭게 변경된 레이아웃 편집기의 기능과 사용법과 안드로이드 7부터 새로 추가된 ConstraintLayout 클래스, Firebase 서비스 등의 개념과 구현 방법도 수록하고 있다.

최신 안드로이드 스튜디오 설치부터 안드로이드 개발 기초까지!
이 책은 안드로이드 스튜디오 기반의 애플리케이션 개발과 테스트에 필요한 환경 설정, 그리고 안드로이드 스튜디오의 주요 기능과 사용법을 간명한 예제 코드로 설명한다. 또한, 안드로이드 스튜디오 3의 각종 최신 기능에 대한 내용도 국내 최초로 포함하고 있다.

특별부록 ‘Kotlin(코틀린) 핵심 문법’ 무료 제공
최신 안드로이드 스튜디오와 안드로이드 OS 반영!
안드로이드 스튜디오 설치부터 안드로이드 개발 기초까지!


이 책은 안드로이드 스튜디오 기반의 애플리케이션 개발과 테스트에 필요한 환경 설정, 그리고 안드로이드 스튜디오의 주요 기능과 사용법을 간명한 예제 코드로 설명한다. 또한, 안드로이드 스튜디오 3의 각종 최신 기능에 대한 내용도 국내 최초로 포함하고 있다.

안드로이드 스튜디오를 사용해서 애플리케이션과 사용자 인터페이스를 설계하고 만드는 방법에 기본적으로 충실한 이 책은, 다양한 종류의 안드로이드 스튜디오 프로젝트를 직접 만들면서 각종 뷰 컴포넌트와 기본적인 프로그래밍 기법도 배울 수 있도록 구성하였다.

안드로이드 애플리케이션 개발에 필요한 필수 내용은 물론 고급 주제인 데이터베이스, 콘텐트 제공자, 인텐트, 터치스크린 처리, 동작 인식, 카메라 사용, 비디오와 오디오의 재생과 수록, 인쇄, 애니메이션, 클라우드 기반 파일 스토리지의 사용법 등도 다룬다. 그리고 구글 맵 API를 사용한 지도 구현, 구글 플레이 개발자 콘솔에 애플리케이션을 게시하고 인앱 결제를 하는 방법 등 구글 플레이와 연관된 내용도 설명한다. 또한, 머티리얼 디자인을 구현하는 새로운 컴포넌트인 플로팅 액션 버튼, 스낵바, 탭 인터페이스, 카드 뷰, 앱 바, 컬랩싱 툴바, 내비게이션 드로어, 런타임 퍼미션 등도 배운다.

더불어 최신의 안드로이드 스튜디오 3 버전에서 새롭게 변경된 레이아웃 편집기의 기능과 사용법을 알려주며, 안드로이드 7부터 새로 추가된 ConstraintLayout 클래스, 직접 응답 알림, Firebase 서비스, 다중 창 지원 기능의 개념과 구현 방법도 배운다.

이 책에서는 여러분이 자바 프로그래밍 경험이 있다고 간주하므로 자바 언어에 대해서 별도로 언급하지는 않는다. 윈도우나 맥 또는 리눅스가 실행되는 컴퓨터가 있고, 안드로이드 스튜디오와 안드로이드 SDK를 다운로드하였다면 시작할 준비가 된 것이다. 독자 여러분을 환영한다!


Information Provided By: : Aladin

Author Introduction

닐 스미스(지은이)

20년 이상의 IT 개발 경력을 지녔다. 특히 프로그래밍 언어와 기업용 개발 도구, 사용자 인터페이스 디자인을 전문으로 해 왔으며, 시스템 프로그래밍과 웹 개발, 마케팅까지 담당하기도 했다. 닐은 IT 학사 외에 Network+, Project+, 자바와 마이크로소프트 MCP 자격증들을 가지고 있다. 또한 30여 종의 기술 관련 서적을 집필하였으며, 현재는 미국에서 인터넷 출판과 모바일 애플리케이션 개발 회사인 Payload Media의 공동 창업자이자 CEO로 재직 중이다.

심재철(옮긴이)

현재 프리랜서로, 데이터베이스/모바일 시스템 관련 컨설팅과 번역을 하고 있다. 또한, 20년 넘게 데이터베이스와 객체지향 시스템 설계 및 개발 프로젝트와 건설/금융 분야 애플리케이션 개발 등에 참여했다. 새로운 테크놀로지와 다양한 프로그래밍 언어를 사용해서 실무에 활용하고 가르치는 것을 좋아한다. 저서로는 《핵심만 골라 배우는 코틀린 프로그래밍》이 있으며, 번역서로는 《스프링 인 액션(제5판)》, 《카프카 핵심 가이드》, 《핵심만 골라 배우는 안드로이드 스튜디오 3 & 프로그래밍》, 《실무에 적용하는 안드로이드 프로그래밍(제2판)》, 《Learn Android Studio》, 《SQLite 마스터북(제2판)》, 《프로 오브젝티브-C 디자인 패턴》, 《세븐 데이터베이스》, 《UML 사용자 지침서》, 《Thinking in JAVA 4/e》, 《이펙티브 자바》 등이 있다.

Information Provided By: : Aladin

Table of Contents

CHAPTER 1 개요 _ 1 
1.1 안드로이드 스튜디오의 장점 _ 2 
1.2 소스 코드 다운로드하기 _ 3 
1.3 단축키와 코드 표기 _ 4 
1.4 안드로이드 스튜디오 최신 버전 사용하기 _ 4 
1.5 독자 _ 5 
1.6 오탈자 _ 5 

CHAPTER 2 안드로이드 스튜디오 개발 환경 구성하기 _ 6 
2.1 개발 시스템 요구 사항 _ 6 
2.2 자바 JDK 설치하기 _ 7 
2.3 리눅스에서 설치하기 _ 9 
2.4 안드로이드 스튜디오 패키지 다운로드하기 _ 11 
2.5 안드로이드 스튜디오 설치하기 _ 11 
2.6 안드로이드 스튜디오 설정 위저드 _ 17 
2.7 가장 최신 버전의 안드로이드 패키지 설치하기 _ 18 
2.8 명령행에서 안드로이드 SDK 도구 사용하기 _ 22 
2.9 안드로이드 스튜디오와 SDK 버전 업그레이드하기 _ 26 
2.10 안드로이드 SDK와 NDK 및 자바 JDK 경로 변경하기 _ 26 
2.11 요약 _ 27 

CHAPTER 3 안드로이드 스튜디오로 첫 번째 애플리케이션 만들기 _ 28 
3.1 새로운 안드로이드 프로젝트 생성하기 _ 28 
3.2 프로젝트와 SDK 설정 정의하기 _ 30 
3.3 액티비티 생성하기 _ 33 
3.4 애플리케이션 변경하기 _ 34 
3.5 레이아웃과 리소스 파일 살펴보기 _ 42 
3.6 요약 _ 45 

CHAPTER 4 안드로이드 스튜디오 UI 둘러보기 _ 46 
4.1 웰컴 스크린 _ 46 
4.2 메인 창 _ 47 
4.3 도구 창 _ 50 
4.4 안드로이드 스튜디오의 단축키 _ 55 
4.5 스위처와 최근 파일 기능을 이용한 내비게이션 _ 55 
4.6 안드로이드 스튜디오 테마 변경하기 _ 56 
4.7 요약 _ 57 

CHAPTER 5 안드로이드 스튜디오에서 AVD 생성하기 _ 58 
5.1 AVD 개요 _ 58 
5.2 새로운 AVD 생성하기 _ 60 
5.3 에뮬레이터 시작하기 _ 66 
5.4 AVD에서 애플리케이션 실행하기 _ 66 
5.5 Run/Debug 구성 _ 68 
5.6 실행 중인 애플리케이션 중단시키기 _ 69 
5.7 명령행에서 AVD 생조회하기 _ 70 
5.8 AVD 구성 파일들 _ 72 
5.9 AVD의 위치 이동과 이름 변경 _ 72 
5.10 Intel HAXM 사용으로 에뮬레이터 성능 향상시키기 _ 73 
5.11 요약 _ 74 

CHAPTER 6 안드로이드 스튜디오 AVD 에뮬레이터 사용과 구성하기 _ 75 
6.1 에뮬레이터 환경 _ 75 
6.2 에뮬레이터 툴바 _ 76 
6.3 줌 모드 사용하기 _ 78 
6.4 에뮬레이터 창의 크기 조정 _ 78 
6.5 확장 제어 옵션 _ 78 
6.6 드래그 - 드롭 _ 81 
6.7 모의 지문 구성하기 _ 82 
6.8 멀티 코어 지원 _ 84 
6.9 요약 _ 85 

CHAPTER 7 실제 안드로이드 장치에서 애플리케이션 테스트하기 _ 86 
7.1 ADB 개요 _ 86 
7.2 안드로이드 장치에서 ADB 활성화하기 _ 87 
7.3 adb 연결 테스트하기 _ 93 
7.4 안드로이드 스튜디오에서 장치 확인하기 _ 94 
7.5 요약 _ 97 

CHAPTER 8 안드로이드 스튜디오 코드 편집기 _ 98 
8.1 안드로이드 스튜디오 코드 편집기 _ 98 
8.2 편집기 창 나누기 _ 101 
8.3 코드 자동 완성 _ 102 
8.4 문장 자동 완성 _ 104 
8.5 매개변수 정보 _ 104 
8.6 코드 생성 _ 104 
8.7 코드 접어 감추기 _ 106 
8.8 빠른 문서 검색 _ 107 
8.9 소스 코드 형식 변환 _ 108 
8.10 샘플 코드 찾아보기 _ 109 
8.11 요약 _ 110 

CHAPTER 9 안드로이드 아키텍처 개요 _ 111 
9.1 안드로이드 소프트웨어 스택 _ 111 
9.2 리눅스 커널 _ 112 
9.3 안드로이드 런타임 ― ART _ 113 
9.4 안드로이드 라이브러리 _ 113 
9.5 애플리케이션 프레임워크 _ 115 
9.6 애플리케이션 _ 116 
9.7 요약 _ 116 

CHAPTER 10 액티비티와 인텐트 개요 _ 117 
10.1 안드로이드 액티비티 _ 117 
10.2 안드로이드 인텐트 _ 118 
10.3 브로드캐스트 인텐트 _ 118 
10.4 브로드캐스트 수신자 _ 119 
10.5 안드로이드 서비스 _ 119 
10.6 콘텐트 제공자 _ 120 
10.7 애플리케이션 매니페스트 _ 120 
10.8 애플리케이션 리소스 _ 120 
10.9 애플리케이션 컨텍스트 _ 121 
10.10 요약 _ 121 

CHAPTER 11 안드로이드 애플리케이션과 액티비티 생명주기 _ 122 
11.1 안드로이드 애플리케이션과 리소스 관리 _ 122 
11.2 안드로이드 프로세스 상태 _ 123 
11.3 액티비티 생명주기 _ 124 
11.4 액티비티 스택 _ 125 
11.5 액티비티 상태 _ 126 
11.6 구성 변경 _ 126 
11.7 요약 _ 127 

CHAPTER 12 액티비티 상태 변화 처리하기 _ 128 
12.1 Activity 클래스 _ 128 
12.2 동적 상태 vs. 영속적 상태 _ 132 
12.3 안드로이드 액티비티 생명주기 메서드 _ 133 
12.4 액티비티 생애 _ 135 
12.5 액티비티가 다시 시작되지 않게 하기 _ 136 
12.6 요약 _ 137 

CHAPTER 13 액티비티 상태 변화 예제 _ 138 
13.1 상태 변화 예제 프로젝트 생성하기 _ 138 
13.2 사용자 인터페이스 디자인하기 _ 139 
13.3 액티비티 생명주기 메서드 오버라이딩 _ 141 
13.4 로그캣 패널의 메시지 필터링하기 _ 144 
13.5 애플리케이션 실행하기 _ 146 
13.6 액티비티로 실험하기 _ 147 
13.7 요약 _ 149 

CHAPTER 14 액티비티 상태를 저장하고 복원하기 _ 150 
14.1 동적 상태 저장 _ 150 
14.2 사용자 인터페이스 상태의 자동 저장과 복원 _ 151 
14.3 Bundle 클래스 _ 152 
14.4 상태 데이터 저장하기 _ 153 
14.5 상태 데이터 복원하기 _ 156 
14.6 애플리케이션 테스트하기 _ 156 
14.7 요약 _ 156 

CHAPTER 15 안드로이드 뷰, 뷰 그룹, 레이아웃 _ 158 
15.1 서로 다른 안드로이드 장치를 위한 디자인 _ 158 
15.2 뷰와 뷰 그룹 _ 159 
15.3 안드로이드 레이아웃 매니저 _ 159 
15.4 뷰 계층 구조 _ 161 
15.5 사용자 인터페이스 생성 _ 163 
15.6 요약 _ 163 

CHAPTER 16 안드로이드 스튜디오 레이아웃 편집기 살펴보기 _ 164 
16.1 Basic vs. Empty 액티비티 템플릿 _ 164 
16.2 안드로이드 스튜디오 레이아웃 편집기 _ 167 
16.3 디자인 모드 _ 167 
16.4 팔레트 _ 169 
16.5 레이아웃의 확대축소 보기 _ 170 
16.6 디자인 뷰와 청사진 뷰 _ 170 
16.7 텍스트 모드 _ 171 
16.8 속성 설정하기 _ 173 
16.9 즐겨 사용하는 속성 구성하기 _ 174 
16.10 커스텀 장치 정의 생성하기 _ 175 
16.11 현재 장치 변경하기 _ 176 
16.12 요약 _ 176 

CHAPTER 17 안드로이드 ConstraintLayout 개요 _ 177 
17.1 ConstraintLayout의 핵심 요소 _ 177 
17.2 기준선 정렬 _ 182 
17.3 지시선 사용하기 _ 183 
17.4 위젯 크기 구성하기 _ 183 
17.5 비율 _ 183 
17.6 ConstraintLayout의 장점 _ 184 
17.7 ConstraintLayout의 가용성 _ 184 
17.8 요약 _ 184 

CHAPTER 18 안드로이드 스튜디오에서 ConstraintLayout 사용하기 _ 185 
18.1 디자인 뷰와 레이아웃 뷰 _ 185 
18.2 자동 연결 _ 187 
18.3 제약 추론 _ 188 
18.4 수동 연결 _ 188 
18.5 제약 삭제하기 _ 189 
18.6 제약 바이어스 조정하기 _ 190 
18.7 ConstraintLayout 마진 이해하기 _ 190 
18.8 상대 제약과 바이어스의 중요성 _ 192 
18.9 위젯의 크기 구성하기 _ 194 
18.10 지시선 추가하기 _ 195 
18.11 위젯의 그룹 정렬 _ 197 
18.12 다른 타입의 레이아웃을 ConstraintLayout으로 변환하기 _ 198 
18.13 요약 _ 198 

CHAPTER 19 안드로이드 스튜디오에서 ConstraintLayout 체인과 비율 사용하기 _ 199 
19.1 체인 생성하기 _ 199 
19.2 체인 스타일 변경하기 _ 202 
19.3 Spread inside 체인 스타일 _ 203 
19.4 Packed 체인 스타일 _ 203 
19.5 바이어스를 사용한 체인 스타일 _ 204 
19.6 체인 _ 204 
19.7 비율 사용하기 _ 206 
19.8 요약 _ 208 

CHAPTER 20 ConstraintLayout 예제 프로젝트 _ 209 
20.1 ConstraintLayout 예제 프로젝트 생성하기 _ 209 
20.2 새로운 액티비티 생성하기 _ 210 
20.3 자동 연결 설정과 이미지 파일 추가하기 _ 212 
20.4 위젯을 사용자 인터페이스에 추가하기 _ 212 
20.5 제약 추가하기 _ 215 
20.6 레이아웃 테스트하기 _ 217 
20.7 레이아웃 검사기 사용하기 _ 218 
20.8 계층 구조 뷰어 사용하기 _ 219 
20.9 요약 _ 223 

CHAPTER 21 직접 XML 레이아웃 작성하기 _ 224 
21.1 직접 XML 레이아웃 생성하기 _ 224 
21.2 XML 직접 작성 vs. 레이아웃 편집기의 디자인 모드 사용 _ 228 
21.3 요약 _ 229 

CHAPTER 22 ConstraintSet으로 ConstraintLayout 관리하기 _ 230 
22.1 자바 코드 vs. XML 레이아웃 파일 _ 230 
22.2 뷰 생성하기 _ 231 
22.3 뷰 속성 _ 232 
22.4 ConstraintSet _ 232 
22.5 요약 _ 237 

CHAPTER 23 안드로이드 ConstraintSet 예제 프로젝트 _ 238 
23.1 안드로이드 스튜디오로 예제 프로젝트 생성하기 _ 238 
23.2 액티비티에 뷰 추가하기 _ 239 
23.3 뷰 속성 설정하기 _ 240 
23.4 뷰 ID 생성하고 사용하기 _ 241 
23.5 제약 설정 구성하기 _ 242 
23.6 EditText 뷰를 추가하기 _ 243 
23.7 dp를 px로 변환하기 _ 245 
23.8 요약 _ 246 

CHAPTER 24 안드로이드 이벤트 처리 개요 _ 247 
24.1 안드로이드 이벤트 이해하기 _ 247 
24.2 android:onClick 리소스 사용하기 _ 248 
24.3 이벤트 리스너와 콜백 메서드 _ 249 
24.4 이벤트 처리 예제 _ 250 
24.5 사용자 인터페이스 디자인하기 _ 250 
24.6 이벤트 리스너와 콜백 메서드 _ 252 
24.7 이벤트 소비하기 _ 253 
24.8 요약 _ 255 

CHAPTER 25 안드로이드 스튜디오의 Instant Run 사용하기 _ 257 
25.1 Instant Run 개요 _ 257 
25.2 Instant Run의 Swap 레벨 이해하기 _ 258 
25.3 Instant Run의 활성화와 비활성화 _ 258 
25.4 Instant Run 사용하기 _ 259 
25.5 Instant Run 예제 프로젝트 _ 260 
25.6 Instant Run의 Hot swap 수행시키기 _ 260 
25.7 Instant Run의 Warm swap 수행시키기 _ 261 
25.8 Instant Run의 Cold swap 수행시키기 _ 261 
25.9 Run 버튼 _ 262 
25.10 요약 _ 262 

CHAPTER 26 터치와 다중 터치 이벤트 처리하기 _ 263 
26.1 터치 이벤트 처리하기 _ 263 
26.2 MotionEvent 객체 _ 264 
26.3 터치 액션 이해하기 _ 264 
26.4 다중 터치 처리하기 _ 265 
26.5 다중 터치 애플리케이션 생성하기 _ 265 
26.6 액티비티 사용자 인터페이스 디자인하기 _ 266 
26.7 터치 이벤트 리스너 구현하기 _ 267 
26.8 애플리케이션 실행시키기 _ 270 
26.9 요약 _ 271 

CHAPTER 27 안드로이드 제스처 감지 클래스로 일반 제스처 처리하기 _ 272 
27.1 일반 제스처 감지와 처리하기 _ 273 
27.2 제스처 처리 프로젝트 생성하기 _ 274 
27.3 리스너 클래스 구현하기 _ 274 
27.4 GestureDetector 인스턴스 생성하기 _ 277 
27.5 onTouchEvent() 메서드 구현하기 _ 278 
27.6 애플리케이션 테스트하기 _ 278 
27.7 요약 _ 279 

CHAPTER 28 커스텀 제스처와 핀치 인식 구현하기 _ 280 
28.1 안드로이드 제스처 빌더 애플리케이션 _ 280 
28.2 GestureOverlayView 클래스 _ 281 
28.3 제스처 감지하기 _ 281 
28.4 제스처 확인하기 _ 281 
28.5 제스처 빌더 애플리케이션의 빌드와 실행 _ 281 
28.6 제스처 파일 생성하기 _ 282 
28.7 SD 카드에서 제스처 파일 추출하기 _ 283 
28.8 예제 프로젝트 생성하기 _ 285 
28.9 제스처 파일을 프로젝트에 추가하기 _ 285 
28.10 사용자 인터페이스 디자인하기 _ 285 
28.11 제스처 파일 로드하기 _ 286 
28.12 이벤트 리스너 등록하기 _ 287 
28.13 onGesturePerformed 메서드 구현하기 _ 288 
28.14 애플리케이션 테스트하기 _ 289 
28.15 GestureOverlayView 구성하기 _ 289 
28.16 제스처 가로채기 _ 290 
28.17 핀치 제스처 처리하기 _ 290 
28.18 핀치 제스처 예제 프로젝트 _ 291 
28.19 요약 _ 294 

CHAPTER 29 안드로이드 프래그먼트 개요 _ 295 
29.1 프래그먼트란? _ 295 
29.2 프래그먼트 생성하기 _ 296 
29.3 레이아웃 XML 파일을 사용하여 프래그먼트를 액티비티에 추가하기 _ 297 
29.4 코드에서 프래그먼트를 추가하고 관리하기 _ 299 
29.5 프래그먼트 이벤트 처리하기 _ 301 
29.6 프래그먼트 간의 통신 구현하기 _ 302 
29.7 요약 _ 304 

CHAPTER 30 안드로이드 스튜디오에서 프래그먼트 사용하기 ― 예제 프로젝트 _ 305 
30.1 예제 프래그먼트 애플리케이션 개요 _ 305 
30.2 예제 프로젝트 생성하기 _ 306 
30.3 첫 번째 프래그먼트 레이아웃 생성하기 _ 306 
30.4 첫 번째 프래그먼트 클래스 생성하기 _ 308 
30.5 두 번째 프래그먼트 레이아웃 생성하기 _ 310 
30.6 프래그먼트를 액티비티에 추가하기 _ 312 
30.7 ToolbarFragment가 액티비티와 통신하게 만들기 _ 315 
30.8 액티비티에서 TextFragment로 통신하기 _ 320 
30.9 애플리케이션 테스트하기 _ 321 
30.10 요약 _ 322 

CHAPTER 31 오버플로 메뉴 생성과 관리 _ 323 
31.1 오버플로 메뉴 _ 323 
31.2 오버플로 메뉴 생성하기 _ 324 
31.3 오버플로 메뉴 보여주기 _ 325 
31.4 메뉴 항목 선택에 응답하기 _ 326 
31.5 체크 가능한 항목 그룹 생성하기 _ 326 
31.6 안드로이드 스튜디오 메뉴 편집기 _ 328 
31.7 예제 프로젝트 생성하기 _ 329 
31.8 메뉴 항목 변경하기 _ 329 
31.9 onOptionsItemSelected() 메서드 변경하기 _ 332 
31.10 애플리케이션 테스트하기 _ 333 
31.11 요약 _ 334 

CHAPTER 32 안드로이드 전환 프레임워크 _ 335 
32.1 안드로이드 전환과 장면 _ 336 
32.2 전환에 인터폴레이터 사용하기 _ 337 
32.3 장면 전환 사용하기 _ 338 
32.4 코드의 커스텀 전환과 TransitionSet _ 339 
32.5 XML의 커스텀 전환과 TransitionSet _ 341 
32.6 인터폴레이터 사용하기 _ 342 
32.7 커스텀 인터폴레이터 생성하기 _ 345 
32.8 beginDelayedTransition 메서드 사용하기 _ 346 
32.9 요약 _ 346 

CHAPTER 33 beginDelayedTransition을 사용한 안드로이드 전환 _ 348 
33.1 안드로이드 스튜디오 TransitionDemo 프로젝트 생성하기 _ 348 
33.2 프로젝트 파일 준비하기 _ 349 
33.3 beginDelayedTransition 애니메이션 구현하기 _ 349 
33.4 우리 입맛에 맞는 전환 만들기 _ 352 
33.5 요약 _ 354 

CHAPTER 34 안드로이드 장면 전환 구현하기 _ 355 
34.1 장면 전환 프로젝트 개요 _ 355 
34.2 안드로이드 스튜디오 SceneTransitions 프로젝트 생성하기 _ 355 
34.3 루트 컨테이너를 확인하고 준비하기 _ 356 
34.4 첫 번째 장면 디자인하기 _ 356 
34.5 두 번째 장면 디자인하기 _ 358 
34.6 첫 번째 장면 보여주기 _ 359 
34.7 두 번째 장면 로드하기 _ 360 
34.8 전환 구현하기 _ 360 
34.9 전환 파일 추가하기 _ 361 
34.10 전환 세트의 로딩과 사용 _ 362 
34.11 부가적인 전환 구성하기 _ 363 
34.12 요약 _ 364 

CHAPTER 35 플로팅 액션 버튼과 스낵바 사용하기 _ 365 
35.1 머티리얼 디자인 _ 365 
35.2 디자인 라이브러리 _ 366 
35.3 플로팅 액션 버튼(FAB) _ 366 
35.4 스낵바 _ 367 
35.5 예제 프로젝트 생성하기 _ 368 
35.6 프로젝트 살펴보기 _ 368 
35.7 플로팅 액션 버튼 변경하기 _ 370 
35.8 ListView를 콘텐트 레이아웃에 추가하기 _ 373 
35.9 ListView에 항목 추가하기 _ 373 
35.10 액션을 스낵바에 추가하기 _ 376 
35.11 요약 _ 378 

CHAPTER 36 탭 인터페이스 생성하기 _ 379 
36.1 ViewPager 개요 _ 379 
36.2 TabLayout 컴포넌트 개요 _ 380 
36.3 TabLayoutDemo 프로젝트 생성하기 _ 380 
36.4 첫 번째 프래그먼트 생성하기 _ 381 
36.5 프래그먼트 복제하기 _ 382 
36.6 TabLayout과 ViewPager 추가하기 _ 384 
36.7 Pager 어댑터 생성하기 _ 385 
36.8 초기화 작업하기 _ 386 
36.9 애플리케이션 테스트하기 _ 389 
36.10 TabLayout 커스터마이징 _ 390 
36.11 아이콘 탭 항목 보여주기 _ 391 
36.12 요약 _ 392 

CHAPTER 37 RecyclerView와 CardView 사용하기 _ 393 
37.1 RecyclerView 개요 _ 393 
37.2 CardView 개요 _ 396 
37.3 라이브러리를 프로젝트에 추가하기 _ 398 
37.4 요약 _ 398 

CHAPTER 38 RecyclerView와 CardView 예제 프로젝트 _ 399 
38.1 CardDemo 프로젝트 생성하기 _ 399 
38.2 플로팅 액션 버튼 삭제하기 _ 400 
38.3 RecyclerView와 CardView 라이브러리 추가하기 _ 400 
38.4 CardView 레이아웃 디자인하기 _ 401 
38.5 RecyclerView 추가하기 _ 402 
38.6 RecyclerView 어댑터 생성하기 _ 403 
38.7 이미지 파일 추가하기 _ 406 
38.8 RecyclerView 컴포넌트 초기화하기 _ 407 
38.9 애플리케이션 테스트하기 _ 408 
38.10 카드 선택에 응답하기 _ 408 
38.11 요약 _ 410 

CHAPTER 39 앱 바와 컬랩싱 툴바 레이아웃 사용하기 _ 411 
39.1 AppBar 개요 _ 411 
39.2 예제 프로젝트 _ 412 
39.3 RecyclerView와 Toolbar 연동시키기 _ 413 
39.4 컬랩싱 툴바 레이아웃 개요 _ 415 
39.5 제목과 스크림 색상 변경하기 _ 419 
39.6 요약 _ 420 

CHAPTER 40 내비게이션 드로어 구현하기 _ 421 
40.1 내비게이션 드로어 개요 _ 421 
40.2 드로어를 열거나 닫기 _ 423 
40.3 드로어 항목 선택에 응답하기 _ 424 
40.4 내비게이션 드로어 액티비티 템플릿 사용하기 _ 425 
40.5 내비게이션 드로어 템플릿으로 프로젝트 생성하기 _ 425 
40.6 템플릿 레이아웃 리소스 파일 _ 426 
40.7 헤더 색상 리소스 파일 _ 426 
40.8 템플릿 메뉴 리소스 파일 _ 427 
40.9 템플릿 코드 _ 427 
40.10 앱 실행하기 _ 428 
40.11 요약 _ 429 

CHAPTER 41 안드로이드 스튜디오 마스터/디테일 플로 _ 430 
41.1 마스터디테일 플로 _ 430 
41.2 마스터디테일 플로 액티비티 생성하기 _ 432 
41.3 마스터디테일 플로 템플릿 살펴보기 _ 434 
41.4 마스터디테일 플로 템플릿 변경하기 _ 436 
41.5 콘텐트 모델 변경하기 _ 436 
41.6 디테일 패널 변경하기 _ 438 
41.7 WebsiteDetailFragment 클래스 변경하기 _ 439 
41.8 WebsiteListActivity 클래스 수정하기 _ 441 
41.9 매니페스트 퍼미션 추가하기 _ 441 
41.10 애플리케이션 실행하기 _ 442 
41.11 요약 _ 443 

CHAPTER 42 안드로이드 인텐트 개요 _ 444 
42.1 인텐트 개요 _ 444 
42.2 명시적 인텐트 _ 445 
42.3 액티비티에서 데이터 반환하기 _ 447 
42.4 암시적 인텐트 _ 448 
42.5 인텐트 필터 사용하기 _ 448 
42.6 인텐트 사용 가능 여부 확인하기 _ 449 
42.7 요약 _ 450 

CHAPTER 43 명시적 인텐트 예제 프로젝트 _ 451 
43.1 예제 프로젝트 생성하기 _ 451 
43.2 ActivityA의 사용자 인터페이스 디자인하기 _ 452 
43.3 두 번째 액티비티 클래스 생성하기 _ 453 
43.4 ActivityB의 사용자 인터페이스 레이아웃 디자인하기 _ 454 
43.5 애플리케이션의 매니페스트 파일 살펴보기 _ 456 
43.6 인텐트 생성하기 _ 457 
43.7 인텐트 데이터 추출하기 _ 458 
43.8 서브 액티비티로 ActivityB 론칭하기 _ 459 
43.9 서브 액티비티에서 데이터 반환하기 _ 460 
43.10 애플리케이션 테스트하기 _ 461 
43.11 요약 _ 462 

CHAPTER 44 암시적 인텐트 예제 프로젝트 _ 463 
44.1 암시적 인텐트 예제 프로젝트 생성하기 _ 463 
44.2 사용자 인터페이스 디자인하기 _ 464 
44.3 암시적 인텐트 생성하기 _ 465 
44.4 암시적 인텐트로 론칭되는 액티비티 생성하기 _ 466 
44.5 사용자 인터페이스에 웹 뷰 추가하기 _ 466 
44.6 인텐트 URL 얻기 _ 467 
44.7 MyWebView 프로젝트의 매니페스트 파일 변경하기 _ 468 
44.8 MyWebView 패키지를 장치에 설치하기 _ 470 
44.9 애플리케이션 테스트하기 _ 471 
44.10 요약 _ 473 

CHAPTER 45 브로드캐스트 인텐트와 브로드캐스트 수신자 _ 474 
45.1 브로드캐스트 인텐트 개요 _ 474 
45.2 브로드캐스트 수신자 개요 _ 475 
45.3 브로드캐스트 수신자로부터 결과 데이터 받기 _ 478 
45.4 스티키 브로드캐스트 인텐트 _ 478 
45.5 브로드캐스트 인텐트 예제 프로젝트 _ 478 
45.6 예제 애플리케이션 생성하기 _ 479 
45.7 브로드캐스트 인텐트를 생성하고 전송하기 _ 479 
45.8 브로드캐스트 수신자 생성하기 _ 480 
45.9 매니페스트 파일에 브로드캐스트 수신자 구성하기 _ 482 
45.10 브로드캐스트 애플리케이션 테스트하기 _ 483 
45.11 시스템 브로드캐스트 인텐트 리스닝하기 _ 484 
45.12 요약 _ 487 

CHAPTER 46 스레드와 스레드 핸들러 _ 488 
46.1 스레드 개요 _ 488 
46.2 애플리케이션의 메인 스레드 _ 488 
46.3 스레드 핸들러 _ 489 
46.4 기본적인 스레드 예제 프로젝트 _ 489 
46.5 새로운 스레드 생성하기 _ 492 
46.6 스레드 핸들러 구현하기 _ 493 
46.7 핸들러에게 메시지 전달하기 _ 495 
46.8 요약 _ 497 

CHAPTER 47 스타트 서비스와 바운드 서비스 개요 _ 499 
47.1 스타트 서비스 _ 499 
47.2 인텐트 서비스 _ 500 
47.3 바운드 서비스 _ 501 
47.4 서비스 생명주기 _ 502 
47.5 소멸된 서비스 재시작 옵션 제어하기 _ 502 
47.6 매니페스트 파일에 서비스 선언하기 _ 503 
47.7 시스템 구동 시 서비스 시작시키기 _ 504 
47.8 요약 _ 505 

CHAPTER 48 스타트 서비스 구현 예제 프로젝트 _ 506 
48.1 예제 프로젝트 생성하기 _ 506 
48.2 Service 클래스 생성하기 _ 507 
48.3 서비스를 매니페스트 파일에 추가하기 _ 509 
48.4 서비스 시작시키기 _ 509 
48.5 인텐트 서비스 테스트하기 _ 510 
48.6 Service 클래스 사용하기 _ 511 
48.7 새로운 서비스 생성하기 _ 511 
48.8 사용자 인터페이스 변경하기 _ 513 
48.9 애플리케이션 실행하기 _ 514 
48.10 서비스를 처리하는 새로운 스레드 생성하기 _ 515 
48.11 요약 _ 517 

CHAPTER 49 로컬 바운드 서비스 예제 프로젝트 _ 518 
49.1 바운드 서비스 이해하기 _ 518 
49.2 바운드 서비스 상호작용 옵션 _ 519 
49.3 로컬 바운드 서비스 예제 프로젝트 _ 519 
49.4 바운드 서비스를 프로젝트에 추가하기 _ 520 
49.5 Binder 구현하기 _ 520 
49.6 클라이언트를 서비스에 바인딩하기 _ 523 
49.7 예제 프로젝트 마무리하기 _ 525 
49.8 애플리케이션 테스트하기 _ 527 
49.9 요약 _ 528 

CHAPTER 50 원격 바운드 서비스 예제 프로젝트 _ 529 
50.1 클라이언트에서 원격 서비스로 통신하기 _ 529 
50.2 예제 애플리케이션 생성하기 _ 530 
50.3 사용자 인터페이스 디자인하기 _ 530 
50.4 원격 바운드 서비스 구현하기 _ 530 
50.5 원격 서비스를 매니페스트 파일에 구성하기 _ 532 
50.6 원격 서비스를 론칭하고 바인딩하기 _ 533 
50.7 원격 서비스에 메시지 전송하기 _ 534 
50.8 요약 _ 536 

CHAPTER 51 안드로이드 7의 알림 개요 _ 537 
51.1 알림 개요 _ 537 
51.2 NotifyDemo 프로젝트 생성하기 _ 539 
51.3 사용자 인터페이스 디자인하기 _ 539 
51.4 두 번째 액티비티 생성하기 _ 540 
51.5 알림을 생성하고 전달하기 _ 541 
51.6 알림에서 액티비티를 시작시키기 _ 543 
51.7 알림에 액션 추가하기 _ 544 
51.8 알림에 소리 추가하기 _ 545 
51.9 알림 메시지 묶기 _ 546 
51.10 요약 _ 549 

CHAPTER 52 안드로이드 7 알림의 직접 응답 구현 _ 550 
52.1 DirectReply 프로젝트 생성하기 _ 550 
52.2 사용자 인터페이스 디자인하기 _ 551 
52.3 RemoteInput 객체 생성하기 _ 551 
52.4 PendingIntent 객체 생성하기 _ 553 
52.5 응답 액션 생성하기 _ 553 
52.6 직접 응답 입력 데이터 수신하기 _ 556 
52.7 알림 변경하기 _ 557 
52.8 요약 _ 558 

CHAPTER 53 안드로이드 스튜디오에서 Firebase 사용하기 _ 559 
53.1 Firebase란? _ 559 
53.2 Firebase에 서명하기 _ 560 
53.3 FirebaseNotify 프로젝트 생성하기 _ 561 
53.4 사용자 인터페이스 구성하기 _ 561 
53.5 프로젝트를 Firebase에 연결하기 _ 561 
53.6 새로운 Firebase 프로젝트 생성하기 _ 563 
53.7 google-services.json 파일 _ 563 
53.8 Firebase 라이브러리 추가하기 _ 564 
53.9 요약 _ 566 

CHAPTER 54 Firebase 원격 알림 사용하기 _ 567 
54.1 Firebase 알림 전송하기 _ 567 
54.2 알림 메시지 수신하기 _ 570 
54.3 알림에 맞춤 데이터 포함시키기 _ 570 
54.4 포그라운드 앱의 알림 처리하기 _ 572 
54.5 요약 _ 574 

CHAPTER 55 안드로이드 7의 다중 창 지원 개요 _ 575 
55.1 분할 화면과 자유형식 및 PIP 모드 _ 575 
55.2 다중 창 모드로 전환하기 _ 577 
55.3 자유형식 모드의 지원 여부 확인하기 _ 579 
55.4 다중 창 지원을 앱에서 활성화하기 _ 580 
55.5 다중 창 관련 속성 지정하기 _ 580 
55.6 액티비티에서 다중 창 모드인지 검사하기 _ 581 
55.7 다중 창 관련 통지 받기 _ 582 
55.8 다중 창 모드에서 액티비티를 시작시키기 _ 582 
55.9 자유형식 모드로 실행되는 액티비티의 크기와 위치 구성하기 _ 583 
55.10 요약 _ 584 

CHAPTER 56 다중 창 예제 프로젝트 _ 585 
56.1 다중 창 프로젝트 생성하기 _ 585 
56.2 FirstActivity의 사용자 인터페이스 디자인하기 _ 585 
56.3 두 번째 액티비티 추가하기 _ 586 
56.4 두 번째 액티비티 시작시키기 _ 587 
56.5 다중 창 모드 활성화하기 _ 588 
56.6 다중 창 지원 테스트하기 _ 589 
56.7 두 번째 액티비티를 다른 창에서 시작시키기 _ 590 
56.8 자유형식 창의 위치와 크기 변경하기 _ 591 
56.9 요약 _ 592 

CHAPTER 57 안드로이드 SQLite 데이터베이스 개요 _ 593 
57.1 데이터베이스 테이블 이해하기 _ 593 
57.2 데이터베이스 스키마 개요 _ 594 
57.3 열과 데이터 타입 _ 594 
57.4 데이터베이스 행 _ 594 
57.5 기본 키 개요 _ 595 
57.6 SQLite란? _ 595 
57.7 SQL _ 596 
57.8 AVD에서 SQLite 사용해보기 _ 596 
57.9 안드로이드 SQLite 자바 클래스 _ 600 
57.10 요약 _ 602 

CHAPTER 58 TableLayout과 TableRow 개요 _ 603 
58.1 TableLayout과 TableRow _ 603 
58.2 데이터베이스 프로젝트 생성하기 _ 605 
58.3 사용자 인터페이스에 TableLayout 추가하기 _ 605 
58.4 TableRow 구성하기 _ 606 
58.5 버튼을 레이아웃에 추가하기 _ 608 
58.6 레이아웃 마진 조정하기 _ 609 
58.7 요약 _ 610 

CHAPTER 59 안드로이드 SQLite 데이터베이스 예제 프로젝트 _ 611 
59.1 데이터베이스 예제 개요 _ 611 
59.2 데이터 모델 생성하기 _ 612 
59.3 데이터 핸들러 구현하기 _ 613 
59.4 액티비티 이벤트 메서드 구현하기 _ 618 
59.5 애플리케이션 테스트하기 _ 620 
59.6 요약 _ 621 

CHAPTER 60 콘텐트 제공자 이해하기 _ 622 
60.1 콘텐트 제공자란? _ 622 
60.2 콘텐트 제공자 _ 623 
60.3 콘텐트 URI _ 624 
60.4 콘텐트 리졸버 _ 625 
60.5 매니페스트 요소 _ 625 
60.6 요약 _ 626 

CHAPTER 61 콘텐트 제공자 구현하기 _ 627 
61.1 Database 프로젝트 활용하기 _ 627 
61.2 콘텐트 제공자 패키지 추가하기 _ 628 
61.3 콘텐트 제공자 클래스 생성하기 _ 628 
61.4 Authority와 콘텐트 URI 구성하기 _ 630 
61.5 콘텐트 제공자에 UriMatcher 구현하기 _ 631 
61.6 콘텐트 제공자의 onCreate() 메서드 구현하기 _ 632 
61.7 콘텐트 제공자의 insert() 메서드 구현하기 _ 633 
61.8 콘텐트 제공자의 query() 메서드 구현하기 _ 634 
61.9 콘텐트 제공자의 update() 메서드 구현하기 _ 636 
61.10 콘텐트 제공자의 delete() 메서드 구현하기 _ 637 
61.11 매니페스트 파일에 콘텐트 제공자 선언하기 _ 638 
61.12 데이터베이스 핸들러 변경하기 _ 639 
61.13 요약 _ 642 

CHAPTER 62 구글 클라우드 스토리지 액세스하기 _ 643 
62.1 스토리지 액세스 프레임워크 _ 643 
62.2 스토리지 액세스 프레임워크 사용하기 _ 645 
62.3 피커의 파일 내역 선별하기 _ 645 
62.4 인텐트 결과 처리하기 _ 647 
62.5 파일의 내용 읽기 _ 648 
62.6 파일에 내용 쓰기 _ 649 
62.7 파일 삭제하기 _ 649 
62.8 파일의 지속적인 액세스 얻기 _ 650 
62.9 요약 _ 650 

CHAPTER 63 안드로이드 스토리지 액세스 프레임워크 예제 프로젝트 _ 652 
63.1 스토리지 액세스 프레임워크 예제 프로젝트 개요 _ 652 
63.2 스토리지 액세스 프레임워크 예제 프로젝트 생성 _ 653 
63.3 사용자 인터페이스 디자인하기 _ 653 
63.4 요청 코드 선언하기 _ 654 
63.5 새로운 스토리지 파일 생성하기 _ 655 
63.6 onActivityResult() 메서드 _ 657 
63.7 스토리지 파일에 데이터 저장하기 _ 659 
63.8 스토리지 파일을 열고 읽기 _ 661 
63.9 스토리지 액세스 애플리케이션 테스트하기 _ 664 
63.10 요약 _ 665 

CHAPTER 64 비디오 재생 구현하기 _ 666 
64.1 안드로이드 VideoView 클래스 개요 _ 666 
64.2 안드로이드 MediaController 클래스 개요 _ 667 
64.3 비디오 재생 테스트 관련 사항 _ 668 
64.4 비디오 재생 예제 프로젝트 생성하기 _ 668 
64.5 VideoPlayer 애플리케이션의 레이아웃 디자인하기 _ 669 
64.6 VideoView 구성하기 _ 670 
64.7 인터넷 퍼미션 추가하기 _ 670 
64.8 MediaController를 VideoView에 추가하기 _ 672 
64.9 onPreparedListener 설정하기 _ 673 
64.10 요약 _ 674 

CHAPTER 65 카메라 인텐트를 사용한 비디오 녹화와 이미지 캡처 _ 675 
65.1 카메라 지원 여부 확인하기 _ 675 
65.2 비디오 캡처 인텐트 호출하기 _ 676 
65.3 이미지 캡처 인텐트 호출하기 _ 677 
65.4 안드로이드 스튜디오 비디오 녹화 프로젝트 생성하기 _ 678 
65.5 사용자 인터페이스 레이아웃 디자인하기 _ 678 
65.6 카메라 확인하기 _ 679 
65.7 비디오 캡처 인텐트 론칭하기 _ 680 
65.8 인텐트의 반환 결과 처리하기 _ 681 
65.9 애플리케이션 테스트하기 _ 682 
65.10 요약 _ 682 

CHAPTER 66 런타임 퍼미션 요청하기 _ 683 
66.1 보통과 위험 퍼미션 이해하기 _ 683 
66.2 퍼미션 예제 프로젝트 생성하기 _ 685 
66.3 퍼미션 확인하기 _ 685 
66.4 런타임 시에 퍼미션 요청하기 _ 687 
66.5 퍼미션 요청 이유 제공하기 _ 689 
66.6 퍼미션 앱 테스트하기 _ 691 
66.7 요약 _ 692 

CHAPTER 67 안드로이드 오디오 녹음과 재생하기 _ 693 
67.1 오디오 재생하기 _ 693 
67.2 MediaRecorder 클래스를 사용해서 오디오 녹음하기 _ 694 
67.3 예제 프로젝트 개요 _ 696 
67.4 AudioApp 프로젝트 생성하기 _ 696 
67.5 사용자 인터페이스 디자인하기 _ 697 
67.6 마이크 확인하기 _ 698 
67.7 액티비티 초기화하기 _ 699 
67.8 recordAudio() 메서드 구현하기 _ 700 
67.9 stopAudio() 메서드 구현하기 _ 701 
67.10 playAudio() 메서드 구현하기 _ 702 
67.11 매니페스트 파일에 퍼미션 구성하기 _ 702 
67.12 애플리케이션 테스트하기 _ 706 
67.13 요약 _ 706 

CHAPTER 68 구글 맵 API 사용하기 _ 707 
68.1 구글 맵 안드로이드 API의 구성 요소 _ 707 
68.2 구글 맵 프로젝트 생성하기 _ 709 
68.3 개발자 서명 얻기 _ 709 
68.4 애플리케이션 테스트하기 _ 712 
68.5 지오코딩과 역-지오코딩 이해하기 _ 713 
68.6 지도를 애플리케이션에 추가하기 _ 715 
68.7 현재 위치 퍼미션 요청하기 _ 716 
68.8 사용자의 현재 위치 보여주기 _ 718 
68.9 지도 타입 변경하기 _ 719 
68.10 맵 컨트롤을 사용자에게 보여주기 _ 720 
68.11 지도 제스처 처리하기 _ 721 
68.12 지도 표식 생성하기 _ 723 
68.13 맵 카메라 제어하기 _ 724 
68.14 요약 _ 726 

CHAPTER 69 안드로이드 인쇄 프레임워크 사용하기 _ 727 
69.1 안드로이드 인쇄 아키텍처 _ 727 
69.2 인쇄 서비스 플러그인 _ 728 
69.3 구글 클라우드 인쇄 _ 728 
69.4 구글 드라이브로 인쇄하기 _ 729 
69.5 PDF로 저장하기 _ 729 
69.6 안드로이드 장치에서 인쇄하기 _ 730 
69.7 안드로이드 애플리케이션에 포함되는 인쇄 지원 옵션 _ 732 
69.8 요약 _ 737 

CHAPTER 70 HTML과 웹 콘텐트 인쇄 예제 프로젝트 _ 738 
70.1 HTML 인쇄 예제 애플리케이션 생성하기 _ 738 
70.2 동적 HTML 콘텐트 인쇄하기 _ 739 
70.3 기존 웹 페이지 인쇄 예제 애플리케이션 생성하기 _ 742 
70.4 플로팅 액션 버튼 삭제하기 _ 743 
70.5 사용자 인터페이스 레이아웃 디자인하기 _ 743 
70.6 웹 페이지를 WebView에 로드하기 _ 745 
70.7 인쇄 메뉴 옵션 추가하기 _ 746 
70.8 요약 _ 749 

CHAPTER 71 안드로이드 커스텀 문서 인쇄 _ 750 
71.1 안드로이드 커스텀 문서 인쇄 개요 _ 750 
71.2 커스텀 문서 인쇄 프로젝트 준비하기 _ 752 
71.3 커스텀 인쇄 어댑터 생성하기 _ 753 
71.4 onLayout() 콜백 메서드 구현하기 _ 754 
71.5 onWrite() 콜백 메서드 구현하기 _ 758 
71.6 페이지가 인쇄 범위에 있는지 확인하기 _ 761 
71.7 페이지 캔버스에 콘텐트 그리기 _ 762 
71.8 인쇄 작업 시작시키기 _ 765 
71.9 애플리케이션 테스트하기 _ 766 
71.10 요약 _ 767 

CHAPTER 72 안드로이드 지문 인증 구현하기 _ 768 
72.1 지문 인증 개요 _ 768 
72.2 지문 인증 프로젝트 생성하기 _ 769 
72.3 장치의 지문 인증 구성하기 _ 769 
72.4 지문 퍼미션을 매니페스트 파일에 추가하기 _ 770 
72.5 지문 아이콘 다운로드하기 _ 771 
72.6 사용자 인터페이스 디자인하기 _ 772 
72.7 KeyguardManager와 FingerprintManager 사용하기 _ 773 
72.8 장치의 보안 설정 확인하기 _ 774 
72.9 안드로이드 Keystore와 KeyGenerator 사용하기 _ 775 
72.10 키 생성하기 _ 777 
72.11 Cipher 초기화하기 _ 779 
72.12 CryptoObject 인스턴스 생성하기 _ 781 
72.13 지문 인증 처리 클래스 구현하기 _ 782 
72.14 프로젝트 테스트하기 _ 785 
72.15 요약 _ 786 

CHAPTER 73 서로 다른 안드로이드 장치와 화면 처리하기 _ 787 
73.1 서로 다른 장치 화면 처리하기 _ 787 
73.2 화면 크기에 맞는 레이아웃 생성하기 _ 788 
73.3 안드로이드 스튜디오에서 다양한 크기의 레이아웃 생성하기 _ 789 
73.4 서로 다른 이미지 제공하기 _ 790 
73.5 하드웨어 지원 여부 확인하기 _ 791 
73.6 특정 장치에 맞는 애플리케이션 바이너리 제공하기 _ 792 
73.7 요약 _ 792 

CHAPTER 74 안드로이드 애플리케이션 릴리스하기 _ 793 
74.1 릴리스 준비 절차 _ 793 
74.2 빌드 변이 변경하기 _ 794 
74.3 ProGuard 활성화하기 _ 795 
74.4 키스토어 파일 생성하기 _ 795 
74.5 개인 키 생성하기 _ 796 
74.6 애플리케이션 APK 파일 생성하기 _ 797 
74.7 구글 플레이 개발자 콘솔 계정 등록하기 _ 799 
74.8 새로운 APK 버전을 구글 플레이 개발자 콘솔에 업로드하기 _ 799 
74.9 APK 파일 분석하기 _ 801 
74.10 요약 _ 803 

CHAPTER 75 구글 플레이 인앱 결제를 애플리케이션에 통합하기 _ 804 
75.1 구글 플레이 결제 라이브러리 설치하기 _ 804 
75.2 인앱 결제 예제 프로젝트 생성하기 _ 805 
75.3 결제 퍼미션을 매니페스트 파일에 추가하기 _ 806 
75.4 IInAppBillingService.aidl 파일을 프로젝트에 추가하기 _ 807 
75.5 유틸리티 클래스를 프로젝트에 추가하기 _ 808 
75.6 사용자 인터페이스 디자인하기 _ 810 
75.7 Click Me! 버튼 구현하기 _ 811 
75.8 구글 플레이 개발자 콘솔과 구글 계정 _ 812 
75.9 애플리케이션의 공개 인증 키 받기 _ 812 
75.10 애플리케이션에서 구글 플레이 결제 설정하기 _ 814 
75.11 구글 플레이 인앱 결제 구입을 초기 설정하기 _ 815 
75.12 onActivityResult 메서드 구현하기 _ 816 
75.13 구입 종료 리스너 구현하기 _ 817 
75.14 구입 제품 소비하기 _ 818 
75.15 IabHelper 인스턴스 해제하기 _ 819 
75.16 Security.java 파일 변경하기 _ 820 
75.17 인앱 결제 애플리케이션 테스트하기 _ 821 
75.18 릴리스용 APK 빌드하기 _ 822 
75.19 새로운 인앱 제품 생성하기 _ 823 
75.20 알파 배포 채널로 애플리케이션 제출하기 _ 824 
75.21 인앱 결제 테스트 계정 추가하기 _ 824 
75.22 그룹 테스트 구성하기 _ 826 
75.23 인앱 구입의 문제 해결하기 _ 826 
75.24 요약 _ 828 

CHAPTER 76 안드로이드 스튜디오의 그래들 개요 _ 829 
76.1 그래들 개요 _ 829 
76.2 그래들과 안드로이드 스튜디오 _ 830 
76.3 최상위 수준의 그래들 빌드 파일 _ 832 
76.4 모듈 수준의 그래들 빌드 파일들 _ 833 
76.5 빌드 파일에 서명 설정 구성하기 _ 837 
76.6 명령행에서 그래들 작업 실행하기 _ 838 
76.7 요약 _ 840 

CHAPTER 77 안드로이드 스튜디오 그래들 빌드 예제 프로젝트 _ 841 
77.1 빌드 변이 예제 프로젝트 생성하기 _ 842 
77.2 빌드 플레이버를 모듈 빌드 파일에 추가하기 _ 842 
77.3 플레이버를 프로젝트 구조에 추가하기 _ 845 
77.4 리소스 파일을 플레이버에 추가하기 _ 847 
77.5 빌드 플레이버 테스트하기 _ 848 
77.6 빌드 변이와 클래스 파일 _ 849 
77.7 빌드 플레이버에 패키지 추가하기 _ 849 
77.8 각 플레이버의 액티비티 클래스 변경하기 _ 850 
77.9 요약 _ 851 

찾아보기 _ 853 

※ 부록 A, B는 독자들의 이해를 위해 옮긴이가 작성한 특별 부록입니다. 아래의 사이트에서 예제 프로젝트 파일과 함께 무료로 다운로드받으실 수 있습니다. https://github.com/Jpub/AndroidStudio3 

APPENDIX A 코틀린 핵심 파악하기: 개요와 실습 환경 구축 
A.1 코틀린 언어 개요 
A.2 자바 JDK 설치하기 
A.3 코틀린 컴파일러 설치하기 
A.4 코틀린으로 네이티브 애플리케이션 작성과 실행하기 
A.5 요약 

APPENDIX B 코틀린 핵심 파악하기: 구성 요소와 문법 
B.1 코틀린 프로그램 구조 
B.2 코틀린 변수 
B.3 코틀린의 타입 
B.4 연산자와 연산자 오버로딩 
B.5 Null 타입 처리 메커니즘 
B.6 코드 실행 제어 
B.7 함수 
B.8 클래스와 인터페이스 
B.9 람다식 
B.10 예외 처리 
B.11 package와 import

New Arrivals Books in Related Fields