목차
옮긴이 머리말 = xx
베타리더 후기 = xxii
CHAPTER 1 개요 = 1
  1.1 안드로이드 스튜디오의 장점 = 2
  1.2 소스 코드 다운로드하기 = 3
  1.3 궁금 사항 문의 = 4
  1.4 오탈자 = 4
CHAPTER 2 안드로이드 스튜디오 개발 환경 구성하기 = 5
  2.1 개발 시스템 요구 사항 = 5
  2.2 자바 JDK 설치하기 = 6
  2.3 리눅스에서 설치하기 = 9
  2.4 안드로이드 스튜디오 패키지 다운로드하기 = 10
  2.5 안드로이드 스튜디오 설치하기 = 11
  2.6 안드로이드 스튜디오 Setup Wizard = 17
  2.7 가장 최신 버전의 안드로이드 SDK 패키지 설치하기 = 19
  2.8 명령행에서 안드로이드 SDK 도구 사용하기 = 23
  2.9 안드로이드 스튜디오와 SDK의 버전 업그레이드하기 = 27
  2.10 안드로이드 SDK와 자바 JDK의 설치 경로 변경하기 = 27
  2.11 요약 = 28
CHAPTER 3 안드로이드 스튜디오로 첫 번째 애플리케이션 만들기 = 29
  3.1 새로운 안드로이드 프로젝트 생성하기 = 29
  3.2 프로젝트와 SDK 설정 정의하기 = 31
  3.3 액티비티 생성하기 = 33
  3.4 우리 애플리케이션 변경하기 = 35
  3.5 레이아웃과 리소스 파일 살펴보기 = 43
  3.6 레이아웃 미리보기 = 46
  3.7 요약 = 47
CHAPTER 4 안드로이드 스튜디오 UI 둘러보기 = 49
  4.1 웰컴 스크린 = 49
  4.2 메인 창 = 50
  4.3 도구 창 = 52
  4.4 안드로이드 스튜디오의 단축키 = 58
  4.5 스위처와 최근 파일 기능을 이용한 내비게이션 = 59
  4.6 안드로이드 스튜디오 테마 변경하기 = 60
  4.7 요약 = 61
CHAPTER 5 안드로이드 스튜디오에서 AVD 생성하기 = 62
  5.1 AVD 개요 = 62
  5.2 새로운 AVD 생성하기 = 64
  5.3 에뮬레이터 시작시키기 = 68
  5.4 AVD에서 애플리케이션 실행하기 = 69
  5.5 Run/Debug 구성 = 71
  5.6 실행 중인 애플리케이션 중단시키기 = 73
  5.7 명령행에서 AVD 생성하기 = 75
  5.8 AVD 구성 파일들 = 77
  5.9 AVD의 위치 이동과 이름 변경 = 78
  5.10 요약 = 78
CHAPTER 6 실제 안드로이드 장치에서 애플리케이션 테스트하기 = 80
  6.1 ADB 개요 = 80
  6.2 안드로이드 장치에서 ADB 활성화하기 = 81
  6.3 adb 연결 테스트하기 = 89
  6.4 안드로이드 스튜디오에서 장치 확인하기 = 91
  6.5 요약 = 94
CHAPTER 7 안드로이드 스튜디오 코드 편집기 = 95
  7.1 안드로이드 스튜디오 코드 편집기 = 95
  7.2 편집기 창 나누기 = 99
  7.3 코드 자동 완성 = 100
  7.4 문장 자동 완성 = 102
  7.5 매개변수 정보 = 102
  7.6 코드 생성 = 103
  7.7 코드 접어 감추기 = 104
  7.8 빠른 문서 검색 = 107
  7.9 소스 코드 형식 변환 = 107
  7.10 요약 = 108
CHAPTER 8 안드로이드 아키텍처 개요 = 109
  8.1 안드로이드 소프트웨어 스택 = 109
  8.2 리눅스 커널 = 110
  8.3 안드로이드 런타임 – ART = 111
  8.4 안드로이드 라이브러리 = 111
  8.5 애플리케이션 프레임워크 = 113
  8.6 애플리케이션 = 114
  8.7 요약 = 114
CHAPTER 9 액티비티와 인텐트 개요 = 115
  9.1 안드로이드 액티비티 = 115
  9.2 안드로이드 인텐트 = 116
  9.3 브로드캐스트 인텐트 = 117
  9.4 브로드캐스트 수신자 = 117
  9.5 안드로이드 서비스 = 117
  9.6 콘텐트 제공자 = 118
  9.7 애플리케이션 매니페스트 = 119
  9.8 애플리케이션 리소스 = 119
  9.9 애플리케이션 컨텍스트 = 119
  9.10 요약 = 120
CHAPTER 10 안드로이드 애플리케이션과 액티비티 생명주기 이해하기 = 121
  10.1 안드로이드 애플리케이션과 리소스 관리 = 121
  10.2 안드로이드 프로세스 상태 = 122
  10.3 액티비티 생명주기 = 124
  10.4 액티비티 스택 = 124
  10.5 액티비티 상태 = 125
  10.6 구성 변경 = 126
  10.7 요약 = 127
CHAPTER 11 액티비티 상태 변화 처리하기 = 128
  11.1 Activity 클래스 = 128
  11.2 동적 상태 vs. 영속적 상태 = 131
  11.3 안드로이드 액티비티 생명주기 메서드 = 132
  11.4 액티비티 생애 = 134
  11.5 요약 = 135
CHAPTER 12 액티비티 상태 변화 예제 = 137
  12.1 상태 변화 예제 프로젝트 생성하기 = 137
  12.2 사용자 인터페이스 디자인하기 = 139
  12.3 액티비티 생명주기 메서드 오버라이딩 = 142
  12.4 로그캣 패널의 메시지 필터링하기 = 146
  12.5 애플리케이션 실행하기 = 147
  12.6 액티비티로 실험하기 = 148
  12.7 요약 = 150
CHAPTER 13 액티비티 상태를 저장하고 복원하기 = 151
  13.1 동적 상태 저장 = 151
  13.2 사용자 인터페이스 상태의 자동 저장과 복원 = 152
  13.3 Bundle 클래스 = 154
  13.4 상태 데이터 저장하기 = 154
  13.5 상태 데이터 복원하기 = 157
  13.6 애플리케이션 테스트하기 = 158
  13.7 요약 = 158
CHAPTER 14 안드로이드 뷰, 뷰 그룹, 레이아웃 = 160
  14.1 서로 다른 안드로이드 장치를 위한 디자인 = 160
  14.2 뷰와 뷰 그룹 = 161
  14.3 안드로이드 레이아웃 매니저 = 161
  14.4 뷰 계층 구조 = 163
  14.5 사용자 인터페이스 생성 = 165
  14.6 요약 = 165
CHAPTER 15 안드로이드 스튜디오 디자이너 도구 살펴보기 = 167
  15.1 안드로이드 스튜디오 디자이너 = 167
  15.2 디자인 모드 = 168
  15.3 텍스트 모드 = 169
  15.4 속성 설정하기 = 171
  15.5 타입 변환 = 172
  15.6 커스텀 장치 정의 생성하기 = 173
  15.7 요약 = 173
CHAPTER 16 안드로이드 스튜디오 디자이너 도구로 UI 디자인하기 = 174
  16.1 안드로이드 스튜디오 디자이너 도구 예제 프로젝트 생성하기 = 174
  16.2 새로운 액티비티 생성하기 = 175
  16.3 사용자 인터페이스 디자인하기 = 178
  16.4 뷰 속성 변경하기 = 179
  16.5 애플리케이션 실행하기 = 180
  16.6 XML 레이아웃을 우리가 직접 생성하기 = 180
  16.7 계층 구조 뷰어 사용하기 = 183
  16.8 요약 = 187
CHAPTER 17 자바 코드로 안드로이드 UI 생성하기 = 188
  17.1 자바 코드 vs. XML 레이아웃 파일 = 188
  17.2 뷰 생성하기 = 189
  17.3 속성과 레이아웃 매개변수 = 190
  17.4 안드로이드 스튜디오로 예제 프로젝트 생성하기 = 191
  17.5 액티비티에 뷰 추가하기 = 191
  17.6 뷰 속성 설정하기 = 193
  17.7 레이아웃 매개변수와 룰 추가하기 = 194
  17.8 뷰 ID 사용하기 = 197
  17.9 dp를 px로 변환하기 = 199
  17.10 요약 = 202
CHAPTER 18 안드로이드 스튜디오 디자이너에서 GridLayout 매니저 사용하기 = 203
  18.1 안드로이드 GridLayout과 Space 클래스 = 203
  18.2 GridLayout 예제 = 204
  18.3 GridLayout 프로젝트 생성하기 = 204
  18.4 GridLayout 인스턴스 생성하기 = 205
  18.5 GridLayout 셀에 뷰 추가하기 = 207
  18.6 행과 열의 이동과 삭제 = 209
  18.7 여러 행과 열로 구성된 셀 구현하기 = 209
  18.8 GridLayout의 자식 뷰 gravity 변경하기 = 210
  18.9 요약 = 213
CHAPTER 19 XML 레이아웃 리소스로 GridLayout 사용하기 = 215
  19.1 XML 리소스 파일의 GridLayout = 215
  19.2 GridLayout에 자식 뷰 추가하기 = 217
  19.3 복수 셀과 셀의 그래비티 및 마진 선언하기 = 219
  19.4 요약 = 221
CHAPTER 20 안드로이드 이벤트 처리 개요 = 222
  20.1 안드로이드 이벤트 이해하기 = 222
  20.2 android:onClick 리소스 사용하기 = 223
  20.3 이벤트 리스너와 콜백 메서드 = 224
  20.4 이벤트 처리 예제 = 225
  20.5 사용자 인터페이스 디자인하기 = 225
  20.6 이벤트 리스너와 콜백 메서드 = 228
  20.7 이벤트 소비하기 = 230
  20.8 요약 = 232
CHAPTER 21 터치와 다중 터치 이벤트 처리하기 = 234
  21.1 터치 이벤트 처리하기 = 234
  21.2 MotionEvent 객체 = 235
  21.3 터치 액션 이해하기 = 235
  21.4 다중 터치 처리하기 = 236
  21.5 다중 터치 애플리케이션 생성하기 = 237
  21.6 액티비티 사용자 인터페이스 디자인하기 = 237
  21.7 터치 이벤트 리스너 구현하기 = 240
  21.8 애플리케이션 실행시키기 = 244
  21.9 요약 = 245
CHAPTER 22 안드로이드 제스처 감지 클래스로 일반 제스처 처리하기 = 246
  22.1 일반 제스처 감지와 처리하기 = 246
  22.2 제스처 처리 프로젝트 생성하기 = 247
  22.3 리스너 클래스 구현하기 = 248
  22.4 GestureDetector 인스턴스 생성하기 = 252
  22.5 onTouchEvent() 메서드 구현하기 = 253
  22.6 애플리케이션 테스트하기 = 253
  22.7 요약 = 254
CHAPTER 23 커스텀 제스처와 핀치 인식 구현하기 = 255
  23.1 안드로이드 제스처 빌더 애플리케이션 = 255
  23.2 GestureOverlayView 클래스 = 256
  23.3 제스처 감지하기 = 256
  23.4 제스처 확인하기 = 256
  23.5 제스처 빌더 애플리케이션의 빌드와 실행 = 257
  23.6 제스처 파일 생성하기 = 258
  23.7 SD 카드에서 제스처 파일 추출하기 = 260
  23.8 예제 프로젝트 생성하기 = 261
  23.9 제스처 파일을 프로젝트에 추가하기 = 261
  23.10 사용자 인터페이스 디자인하기 = 262
  23.11 제스처 파일 로드하기 = 263
  23.12 이벤트 리스너 등록하기 = 264
  23.13 onGesturePerformed 메서드 구현하기 = 265
  23.14 애플리케이션 테스트하기 = 267
  23.15 GestureOverlayView 구성하기 = 267
  23.16 제스처 가로채기 = 268
  23.17 핀치 제스처 처리하기 = 269
  23.18 핀치 제스처 예제 프로젝트 = 269
  23.19 요약 = 272
CHAPTER 24 안드로이드 프래그먼트 개요 = 273
  24.1 프래그먼트란? = 273
  24.2 프래그먼트 생성하기 = 274
  24.3 레이아웃 XML 파일을 사용하여 프래그먼트를 액티비티에 추가하기 = 276
  24.4 코드에서 프래그먼트를 추가하고 관리하기 = 278
  24.5 프래그먼트 이벤트 처리하기 = 280
  24.6 프래그먼트 간의 통신 구현하기 = 281
  24.7 요약 = 283
CHAPTER 25 안드로이드 스튜디오에서 프래그먼트 사용하기 - 예제 프로젝트 = 284
  25.1 예제 프래그먼트 애플리케이션 개요 = 284
  25.2 예제 프로젝트 생성하기 = 285
  25.3 첫 번째 프래그먼트 레이아웃 생성하기 = 285
  25.4 첫 번째 프래그먼트 클래스 생성하기 = 288
  25.5 두 번째 프래그먼트 레이아웃 생성하기 = 290
  25.6 프래그먼트를 액티비티에 추가하기 = 292
  25.7 ToolbarFragment가 액티비티와 통신하게 만들기 = 295
  25.8 액티비티에서 TextFragment로 통신하기 = 300
  25.9 애플리케이션 테스트하기 = 302
  25.10 요약 = 303
CHAPTER 26 안드로이드 스튜디오 마스터/디테일 플로 = 304
  26.1 마스터/디테일 플로 = 304
  26.2 마스터/디테일 플로 액티비티 생성하기 = 306
  26.3 마스터/디테일 플로 템플릿 살펴보기 = 308
  26.4 마스터/디테일 플로 템플릿 변경하기 = 310
  26.5 콘텐트 모델 변경하기 = 311
  26.6 디테일 패널 변경하기 = 312
  26.7 WebsiteDetailFragment 클래스 변경하기 = 314
  26.8 매니페스트 퍼미션 추가하기 = 316
  26.9 애플리케이션 실행하기 = 316
  26.10 요약 = 318
CHAPTER 27 오버플로 메뉴 생성과 관리 = 319
  27.1 오버플로 메뉴 = 319
  27.2 오버플로 메뉴 생성하기 = 320
  27.3 오버플로 메뉴 보여 주기 = 322
  27.4 메뉴 항목 선택에 응답하기 = 322
  27.5 체크 가능한 항목 그룹 생성하기 = 323
  27.6 예제 프로젝트 생성하기 = 324
  27.7 메뉴 설명 변경하기 = 325
  27.8 onOptionsItemSelected() 메서드 변경하기 = 326
  27.9 애플리케이션 테스트하기 = 328
  27.10 요약 = 329
CHAPTER 28 안드로이드 전환 프레임워크 = 330
  28.1 안드로이드 전환과 장면 = 330
  28.2 전환에 인터폴레이터 사용하기 = 332
  28.3 장면 전환 사용하기 = 333
  28.4 코드의 커스텀 전환과 TransitionSet = 335
  28.5 XML의 커스텀 전환과 TransitionSet = 336
  28.6 인터폴레이터 사용하기 = 338
  28.7 커스텀 인터폴레이터 생성하기 = 340
  28.8 beginDelayedTransition 메서드 사용하기 = 342
  28.9 요약 = 342
CHAPTER 29 beginDelayedTransition을 사용한 안드로이드 전환 = 344
  29.1 안드로이드 스튜디오 TransitionDemo 프로젝트 생성하기 = 344
  29.2 프로젝트 파일 준비하기 = 345
  29.3 beginDelayedTransition 애니메이션 구현하기 = 345
  29.4 우리 입맛에 맞는 전환 만들기 = 349
  29.5 요약 = 351
CHAPTER 30 안드로이드 장면 전환 구현하기 = 352
  30.1 장면 전환 프로젝트 개요 = 352
  30.2 안드로이드 스튜디오 SceneTransitions 프로젝트 생성하기 = 352
  30.3 루트 컨테이너를 확인하고 준비하기 = 353
  30.4 첫 번째 장면 디자인하기 = 353
  30.5 두 번째 장면 디자인하기 = 357
  30.6 첫 번째 장면 보여 주기 = 358
  30.7 두 번째 장면 로드하기 = 360
  30.8 전환을 구현하기 = 361
  30.9 전환 파일 추가하기 = 361
  30.10 전환 세트의 로딩과 사용 = 362
  30.11 부가적인 전환 구성하기 = 364
  30.12 요약 = 365
CHAPTER 31 안드로이드 인텐트 개요 = 366
  31.1 인텐트 개요 = 366
  31.2 명시적 인텐트 = 367
  31.3 액티비티에서 데이터 반환하기 = 369
  31.4 암시적 인텐트 = 370
  31.5 인텐트 필터 사용하기 = 371
  31.6 인텐트 사용 가능 여부 확인하기 = 372
  31.7 요약 = 373
CHAPTER 32 명시적 인텐트 예제 프로젝트 = 374
  32.1 예제 프로젝트 생성하기 = 374
  32.2 ActivityA의 사용자 인터페이스 디자인하기 = 375
  32.3 두 번째 액티비티 클래스 생성하기 = 377
  32.4 ActivityB의 사용자 인터페이스 레이아웃 디자인하기 = 378
  32.5 애플리케이션의 매니페스트 파일 살펴보기 = 380
  32.6 인텐트 생성하기 = 381
  32.7 인텐트 데이터 추출하기 = 383
  32.8 서브 액티비티로 ActivityB 론칭하기 = 384
  32.9 서브 액티비티에서 데이터 반환하기 = 386
  32.10 애플리케이션 테스트하기 = 387
  32.11 요약 = 387
CHAPTER 33 암시적 인텐트 예제 프로젝트 = 388
  33.1 암시적 인텐트 예제 프로젝트 생성하기 = 388
  33.2 사용자 인터페이스 디자인하기 = 389
  33.3 암시적 인텐트 생성하기 = 391
  33.4 암시적 인텐트로 론칭되는 액티비티 생성하기 = 392
  33.5 사용자 인터페이스에 웹 뷰 추가하기 = 393
  33.6 인텐트 URL 얻기 = 394
  33.7 MyWebView 프로젝트의 매니페스트 파일 변경하기 = 396
  33.8 MyWebView 패키지를 장치에 설치하기 = 398
  33.9 애플리케이션 테스트하기 = 400
  33.10 요약 = 401
CHAPTER 34 브로드캐스트 인텐트와 브로드캐스트 수신자 = 402
  34.1 브로드캐스트 인텐트 개요 = 402
  34.2 브로드캐스트 수신자 개요 = 403
  34.3 브로드캐스트 수신자로부터 결과 데이터 받기 = 406
  34.4 스티키 브로드캐스트 인텐트 = 406
  34.5 브로드캐스트 인텐트 예제 프로젝트 = 407
  34.6 예제 애플리케이션 생성하기 = 407
  34.7 브로드캐스트 인텐트를 생성하고 전송하기 = 408
  34.8 브로드캐스트 수신자 생성하기 = 409
  34.9 매니페스트 파일에 브로드캐스트 수신자 구성하기 = 411
  34.10 브로드캐스트 애플리케이션 테스트하기 = 412
  34.11 시스템 브로드캐스트 인텐트 리스닝하기 = 413
  34.12 요약 = 415
CHAPTER 35 스레드와 스레드 핸들러 = 416
  35.1 스레드 개요 = 416
  35.2 애플리케이션의 메인 스레드 = 416
  35.3 스레드 핸들러 = 417
  35.4 기본적인 스레드 예제 프로젝트 = 417
  35.5 새로운 스레드 생성하기 = 421
  35.6 스레드 핸들러 구현하기 = 422
  35.7 핸들러에게 메시지 전달하기 = 425
  35.8 요약 = 427
CHAPTER 36 스타트 서비스와 바운드 서비스 개요 = 428
  36.1 스타트 서비스 = 428
  36.2 인텐트 서비스 = 429
  36.3 바운드 서비스 = 430
  36.4 서비스 생명주기 = 431
  36.5 소멸된 서비스 재시작 옵션 제어하기 = 432
  36.6 매니페스트 파일에 서비스 선언하기 = 432
  36.7 시스템 구동 시 서비스 시작시키기 = 434
  36.8 요약 = 434
CHAPTER 37 스타트 서비스 구현 예제 프로젝트 = 436
  37.1 예제 프로젝트 생성하기 = 436
  37.2 서비스 클래스 생성하기 = 437
  37.3 서비스를 매니페스트 파일에 추가하기 = 439
  37.4 서비스 시작시키기 = 440
  37.5 인텐트 서비스 테스트하기 = 440
  37.6 Service 클래스 사용하기 = 442
  37.7 새로운 서비스 생성하기 = 442
  37.8 사용자 인터페이스 변경하기 = 444
  37.9 애플리케이션 실행하기 = 446
  37.10 서비스를 처리하는 새로운 스레드 생성하기 = 447
  37.11 요약 = 448
CHAPTER 38 로컬 바운드 서비스 예제 프로젝트 = 449
  38.1 바운드 서비스 이해하기 = 449
  38.2 바운드 서비스 상호작용 옵션 = 450
  38.3 로컬 바운드 서비스 예제 프로젝트 = 450
  38.4 바운드 서비스를 프로젝트에 추가하기 = 451
  38.5 Binder 구현하기 = 452
  38.6 클라이언트를 서비스에 바인딩하기 = 455
  38.7 예제 프로젝트 마무리하기 = 457
  38.8 애플리케이션 테스트하기 = 460
  38.9 요약 = 461
CHAPTER 39 원격 바운드 서비스 예제 프로젝트 = 462
  39.1 클라이언트에서 원격 서비스로 통신하기 = 462
  39.2 예제 애플리케이션 생성하기 = 463
  39.3 사용자 인터페이스 디자인하기 = 463
  39.4 원격 바운드 서비스 구현하기 = 464
  39.5 원격 서비스를 매니페스트 파일에 구성하기 = 466
  39.6 원격 서비스를 론칭하고 바인딩하기 = 467
  39.7 원격 서비스에 메시지 전송하기 = 469
  39.8 요약 = 471
CHAPTER 40 안드로이드 SQLite 데이터베이스 개요 = 472
  40.1 데이터베이스 테이블 이해하기 = 472
  40.2 데이터베이스 스키마 개요 = 473
  40.3 열과 데이터 타입 = 473
  40.4 데이터베이스 행 = 474
  40.5 기본 키 개요 = 474
  40.6 SQLite란? = 475
  40.7 SQL = 475
  40.8 AVD에서 SQLite 사용해 보기 = 476
  40.9 안드로이드 SQLite 자바 클래스 = 479
  40.10 요약 = 482
CHAPTER 41 TableLayout과 TableRow 파악하기 = 483
  41.1 TableLayout과 TableRow = 483
  41.2 데이터베이스 프로젝트 생성하기 = 485
  41.3 사용자 인터페이스에 TableLayout 추가하기 = 485
  41.4 TableRow를 추가하고 구성하기 = 486
  41.5 버튼을 레이아웃에 추가하기 = 488
  41.6 레이아웃 마진 조정하기 = 490
  41.7 요약 = 493
CHAPTER 42 안드로이드 SQLite 데이터베이스 예제 프로젝트 = 494
  42.1 데이터베이스 예제 개요 = 494
  42.2 데이터 모델 생성하기 = 495
  42.3 데이터 핸들러 구현하기 = 497
  42.4 액티비티 이벤트 메서드 구현하기 = 502
  42.5 애플리케이션 테스트하기 = 505
  42.6 요약 = 506
CHAPTER 43 콘텐트 제공자 이해하기 = 507
  43.1 콘텐트 제공자란? = 507
  43.2 콘텐트 제공자 = 508
  43.3 콘텐트 URI = 509
  43.4 콘텐트 리졸버 = 510
  43.5〈provider〉매니페스트 요소 = 511
  43.6 요약 = 511
CHAPTER 44 콘텐트 제공자 구현하기 = 512
  44.1 Database 프로젝트 활용하기 = 512
  44.2 콘텐트 제공자 패키지 추가하기 = 513
  44.3 콘텐트 제공자 클래스 생성하기 = 513
  44.4 Authority와 콘텐트 URI 구성하기 = 515
  44.5 콘텐트 제공자에 UriMatcher 구현하기 = 516
  44.6 콘텐트 제공자의 onCreate() 메서드 구현하기 = 518
  44.7 콘텐트 제공자의 insert() 메서드 구현하기 = 519
  44.8 콘텐트 제공자의 query() 메서드 구현하기 = 521
  44.9 콘텐트 제공자의 update() 메서드 구현하기 = 522
  44.10 콘텐트 제공자의 delete() 메서드 구현하기 = 524
  44.11 매니페스트 파일에 콘텐트 제공자 선언하기 = 525
  44.12 데이터베이스 핸들러 변경하기 = 527
  44.13 요약 = 529
CHAPTER 45 클라우드 스토리지 액세스하기 = 530
  45.1 스토리지 액세스 프레임워크 = 530
  45.2 스토리지 액세스 프레임워크 사용하기 = 532
  45.3 피커의 파일 내역 선별하기 = 533
  45.4 인텐트 결과 처리하기 = 535
  45.5 파일의 내용 읽기 = 535
  45.6 파일에 내용 쓰기 = 537
  45.7 파일 삭제하기 = 537
  45.8 파일의 지속적인 액세스 얻기 = 538
  45.9 요약 = 539
CHAPTER 46 안드로이드 스토리지 액세스 프레임워크 예제 프로젝트 = 540
  46.1 스토리지 액세스 프레임워크 예제 프로젝트 개요 = 540
  46.2 스토리지 액세스 프레임워크 예제 프로젝트 생성 = 541
  46.3 사용자 인터페이스 디자인하기 = 541
  46.4 요청 코드 선언하기 = 544
  46.5 새로운 스토리지 파일 생성하기 = 545
  46.6 onActivityResult() 메서드 = 547
  46.7 스토리지 파일에 데이터 저장하기 = 549
  46.8 스토리지 파일을 열고 읽기 = 553
  46.9 스토리지 액세스 애플리케이션 테스트하기 = 555
  46.10 요약 = 557
CHAPTER 47 비디오 재생 구현하기 = 558
  47.1 안드로이드 VideoView 클래스 개요 = 558
  47.2 안드로이드 MediaController 클래스 개요 = 559
  47.3 비디오 재생 테스트 관련 사항 = 560
  47.4 비디오 재생 예제 프로젝트 생성하기 = 560
  47.5 VideoPlayer 애플리케이션의 레이아웃 디자인하기 = 561
  47.6 VideoView 구성하기 = 562
  47.7 인터넷 퍼미션 추가하기 = 563
  47.8 MediaController를 VideoView에 추가하기 = 565
  47.9 onPreparedListener 설정하기 = 566
  47.10 요약 = 568
CHAPTER 48 카메라 인텐트를 사용한 비디오 녹화와 이미지 캡처 = 569
  48.1 카메라 지원 여부 확인하기 = 569
  48.2 비디오 캡처 인텐트 호출하기 = 570
  48.3 이미지 캡처 인텐트 호출하기 = 572
  48.4 안드로이드 스튜디오 비디오 녹화 프로젝트 생성하기 = 573
  48.5 사용자 인터페이스 레이아웃 디자인하기 = 573
  48.6 카메라 확인하기 = 575
  48.7 비디오 캡처 인텐트 론칭하기 = 576
  48.8 인텐트의 반환 결과를 처리하기 = 577
  48.9 애플리케이션 테스트하기 = 578
  48.10 요약 = 579
CHAPTER 49 안드로이드 오디오 녹음과 재생하기 = 580
  49.1 오디오 재생하기 = 580
  49.2 MediaRecorder 클래스를 사용해서 오디오 녹음하기 = 581
  49.3 예제 프로젝트 개요 = 583
  49.4 AudioApp 프로젝트 생성하기 = 583
  49.5 사용자 인터페이스 디자인하기 = 584
  49.6 마이크 확인하기 = 585
  49.7 액티비티 초기화하기 = 586
  49.8 recordAudio() 메서드 구현하기 = 588
  49.9 stopAudio() 메서드 구현하기 = 589
  49.10 playAudio() 메서드 구현하기 = 590
  49.11 매니페스트 파일에 퍼미션 구성하기 = 591
  49.12 애플리케이션 테스트하기 = 592
  49.13 요약 = 592
CHAPTER 50 구글 맵 API 사용하기 = 593
  50.1 구글 맵 안드로이드 API의 구성 요소 = 593
  50.2 구글 맵 프로젝트 생성하기 = 595
  50.3 개발자 서명 얻기 = 595
  50.4 애플리케이션을 테스트하기 = 598
  50.5 지오코딩과 역 - 지오코딩 이해하기 = 599
  50.6 지도를 애플리케이션에 추가하기 = 602
  50.7 사용자의 현재 위치 보여 주기 = 602
  50.8 지도 타입 변경하기 = 603
  50.9 맵 컨트롤을 사용자에게 보여 주기 = 605
  50.10 지도 제스처 처리하기 = 606
  50.11 지도 표식 생성하기 = 608
  50.12 맵 카메라 제어하기 = 609
  50.13 요약 = 611
CHAPTER 51 안드로이드 인쇄 프레임워크 사용하기 = 612
  51.1 안드로이드 인쇄 아키텍처 = 612
  51.2 HP 인쇄 서비스 플러그인 = 613
  51.3 구글 클라우드 인쇄 = 614
  51.4 구글 드라이브로 인쇄하기 = 615
  51.5 PDF로 저장하기 = 615
  51.6 안드로이드 장치에서 인쇄하기 = 615
  51.7 안드로이드 애플리케이션에 포함되는 인쇄 지원 옵션 = 617
  51.8 요약 = 623
CHAPTER 52 HTML과 웹 콘텐트 인쇄 예제 프로젝트 = 624
  52.1 HTML 인쇄 예제 애플리케이션 생성하기 = 624
  52.2 동적 HTML 콘텐트 인쇄하기 = 625
  52.3 기존 웹 페이지 인쇄 예제 애플리케이션 생성하기 = 629
  52.4 사용자 인터페이스 레이아웃 디자인하기 = 630
  52.5 웹 페이지를 WebView에 로드하기 = 632
  52.6 인쇄 메뉴 옵션 추가하기 = 633
  52.7 요약 = 637
CHAPTER 53 안드로이드 커스텀 문서 인쇄 = 638
  53.1 안드로이드 커스텀 문서 인쇄 개요 = 638
  53.2 커스텀 문서 인쇄 프로젝트 준비하기 = 640
  53.3 커스텀 인쇄 어댑터 생성하기 = 642
  53.4 onLayout() 콜백 메서드 구현하기 = 643
  53.5 onWrite() 콜백 메서드 구현하기 = 647
  53.6 페이지가 인쇄 범위에 있는지 확인하기 = 651
  53.7 페이지 캔버스에 콘텐트 그리기 = 652
  53.8 인쇄 작업 시작시키기 = 656
  53.9 애플리케이션 테스트하기 = 657
  53.10 요약 = 658
CHAPTER 54 서로 다른 안드로이드 장치와 화면 처리하기 = 659
  54.1 서로 다른 장치 화면 처리하기 = 659
  54.2 화면 크기에 맞는 레이아웃 생성하기 = 660
  54.3 서로 다른 이미지 제공하기 = 661
  54.4 하드웨어 지원 여부 확인하기 = 662
  54.5 특정 장치에 맞는 애플리케이션 바이너리 제공하기 = 663
  54.6 요약 = 663
CHAPTER 55 안드로이드 애플리케이션 릴리스하기 = 664
  55.1 릴리스 준비 절차 = 664
  55.2 빌드 변이 변경하기 = 665
  55.3 키스토어 파일 생성하기 = 666
  55.4 개인 키 생성하기 = 667
  55.5 애플리케이션 APK 파일 생성하기 = 668
  55.6 구글 플레이 개발자 콘솔 계정 등록하기 = 670
  55.7 새로운 APK 버전을 구글 플레이 개발자 콘솔에 업로드하기 = 671
  55.8 요약 = 673
CHAPTER 56 구글 플레이 인앱 결제를 애플리케이션에 통합하기 = 674
  56.1 구글 플레이 결제 라이브러리 설치하기 = 674
  56.2 인앱 결제 예제 프로젝트 생성하기 = 675
  56.3 결제 퍼미션을 매니페스트 파일에 추가하기 = 676
  56.4 IInAppBillingService.aidl 파일을 프로젝트에 추가하기 = 677
  56.5 유틸리티 클래스를 프로젝트에 추가하기 = 679
  56.6 사용자 인터페이스 디자인하기 = 681
  56.7 "Click Me!" 버튼 구현하기 = 682
  56.8 구글 플레이 개발자 콘솔과 구글 계정 = 684
  56.9 애플리케이션의 공개 인증 키 받기 = 685
  56.10 애플리케이션에서 구글 플레이 결제 설정하기 = 686
  56.11 구글 플레이 인앱 결제 구입을 초기 설정하기 = 688
  56.12 onActivityResult 메서드 구현하기 = 689
  56.13 구입 종료 리스너 구현하기 = 690
  56.14 구입 제품 소비하기 = 691
  56.15 IabHelper 인스턴스 해제하기 = 693
  56.16 Security.java 파일 변경하기 = 693
  56.17 인앱 결제 애플리케이션 테스트하기 = 695
  56.18 릴리스용 APK 빌드하기 = 696
  56.19 새로운 인앱 제품 생성하기 = 697
  56.20 알파 배포 채널로 애플리케이션 제출하기 = 698
  56.21 인앱 결제 테스트 계정 추가하기 = 699
  56.22 그룹 테스트 구성하기 = 701
  56.23 인앱 구입의 문제 해결하기 = 702
  56.24 요약 = 704
CHAPTER 57 안드로이드 스튜디오의 그래들 개요 = 705
  57.1 그래들 개요 = 705
  57.2 그래들과 안드로이드 스튜디오 = 706
  57.3 최상위 수준의 그래들 빌드 파일 = 708
  57.4 모듈 수준의 그래들 빌드 파일들 = 710
  57.5 빌드 파일에 서명 설정 구성하기 = 713
  57.6 명령행에서 그래들 작업 실행하기 = 715
  57.7 요약 = 717
CHAPTER 58 안드로이드 스튜디오 그래들 빌드 예제 프로젝트 = 718
  58.1 빌드 변이 예제 프로젝트 생성하기 = 719
  58.2 빌드 플레이버를 모듈 빌드 파일에 추가하기 = 719
  58.3 플레이버를 프로젝트 구조에 추가하기 = 722
  58.4 리소스 파일을 플레이버에 추가하기 = 724
  58.5 빌드 플레이버 테스트하기 = 725
  58.6 빌드 변이와 클래스 파일 = 726
  58.7 빌드 플레이버로 패키지 추가하기 = 726
  58.8 플레이버의 액티비티 클래스 변경하기 = 727
  58.9 요약 = 729
APPENDIX A: 에뮬레이터에서 한글 처리 = 730
APPENDIX B: Button의 textAllCaps 속성 값 설정 = 741
APPENDIX C: 하위 버전의 안드로이드 시스템에서 실행 가능한 애플리케이션 개발 = 746
찾아보기 = 751
닫기