본문 바로가기

도서 소개

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

 

이 책은 현재 절판입니다. 그간 읽어주신 분들께 감사드립니다.

 

특별부록 ‘Kotlin(코틀린) 핵심 문법’ 무료 제공

최신 안드로이드 스튜디오와 안드로이드 OS 반영!

안드로이드 스튜디오 설치부터 안드로이드 개발 기초까지!

 
출판사 제이펍
원출판사 Neil Smyth
원서명 Android Studio 2.3 Development Essentials - Android 7 Edition(원서 ISBN: 9781544275437)
저자명 닐 스미스
역자명 심재철
출판일 2017년 8월 14일
페이지 892쪽
시리즈 I♥Mobile 34
판 형 46배판 변형(188*235*36)
제 본 무선(soft cover)
정 가 37,000원
ISBN 979-11-85890-78-4 (93000)
키워드 프로그래밍 / 모바일 / 안드로이드 / 안드로이드 스튜디오 / 안드로이드 8
분야 프로그래밍 / 모바일

 

관련 사이트
 
관련 포스트
관련 시리즈
 
관련 도서
 
관련 파일 다운로드
 
 
 
강의보조 자료
교재로 채택하신 분들은 메일을 보내주시면 아래의 자료를 보내드리겠습니다: jeipubmarketer@gmail.com
■ 본문의 그림과 표
 
샘플 PDF(차례, 옮긴이 머리말, 1장 '개요', 20장 'ConstraintLayout 예제 프로젝트', 56장 '다중 창 예제 프로젝트')(※ PDF의 이미지는 컬러이지만 종이책은 흑백으로 출간됩니다.)
정오표 페이지
 
도서구매 사이트(가나다순)
[강컴] [교보문고] [도서11번가] [반디앤루니스] [알라딘] [예스이십사] [인터파크]
 

도서 소개

특별부록 ‘Kotlin(코틀린) 핵심 문법’ 무료 제공

최신 안드로이드 스튜디오와 안드로이드 OS 반영!

안드로이드 스튜디오 설치부터 안드로이드 개발 기초까지!

 

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

 

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

 

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

 

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

 

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

 

지은이 소개

닐 스미스(Neil Smyth)

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

 

옮긴이 소개

심재철

현재 프리랜서로, 데이터베이스/모바일 시스템 컨설팅과 강의를 진행하고 있다. 또한, 20여 년 이상을 데이터베이스 및 객체지향 시스템 개발 프로젝트, 건설/금융 분야 애플리케이션 개발 등에 참여했다. 대표 번역서로는 《실무에 바로 적용하는 안드로이드 프로그래밍(제2판)》, 《UML 사용자 지침서》, 《Thinking in JAVA 4/e》, 《이펙티브 자바》, 《SQLite 마스터 북(제2판)》, 《프로 오브젝티브-C 디자인 패턴》, 《세븐 데이터베이스: 만들면서 파악하는 NoSQL》 등이 있다.

 

차례

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