이 책은 안드로이드 스튜디오 기반의 애플리케이션 개발과 테스트에 필요한 환경 설정, 그리고 안드로이드 스튜디오의 주요 기능과 사용법을 간명한 예제 코드로 설명한다. 또한, 안드로이드 스튜디오 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
댓글을 달아 주세요