책 이미지

책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 개발/방법론 > 모바일/무선/임베디드 프로그래밍
· ISBN : 9791188621583
· 쪽수 : 1112쪽
· 출판일 : 2019-11-01
책 소개
목차
CHAPTER 1 헬로, 안드로이드 1
1.1 안드로이드 애플리케이션 개발 1
1.2 그리 깊지 않은 배경 지식 3
1.3 안드로이드 생태계 4
1.4 사전에 설치된 안드로이드 애플리케이션들 5
1.5 안드로이드 소프트웨어 개발 키트의 특징 7
1.6 안드로이드 구동 기기 7
1.7 모바일 개발에 뛰어들어야 하는 이유 8
1.8 안드로이드 개발에 뛰어들어야 하는 이유 9
1.9 개발자 프레임워크 소개 9
CHAPTER 2 시작하기 16
2.1 안드로이드 애플리케이션 개발 시작하기 17
2.2 안드로이드 애플리케이션 개발하기 19
2.3 모바일 및 임베디드 기기 애플리케이션 개발하기 48
2.4 안드로이드 개발 도구 60
CHAPTER 3 애플리케이션, 액티비티, 프래그먼트, 기타 등등 72
3.1 애플리케이션, 액티비티, 프래그먼트 73
3.2 안드로이드 애플리케이션의 컴포넌트들 73
3.3 안드로이드 애플리케이션의 수명 주기, 우선순위, 프로세스 상태 75
3.4 안드로이드의 Application 클래스 77
3.5 안드로이드 액티비티 자세히 살펴보기 78
3.6 프래그먼트 소개 91
3.7 지진 정보 조회 애플리케이션 만들기 108
CHAPTER 4 안드로이드 매니페스트, 그래들 빌드 파일 정의하기 및 리소스 외부화하기 120
4.1 매니페스트, 빌드 파일, 리소스 121
4.2 안드로이드 매니페스트 소개하기 121
4.3 그래들 빌드 설정하기 127
4.4 리소스 외부화하기 136
CHAPTER 5 사용자 인터페이스 빌드하기 163
5.1 안드로이드 디자인의 토대 164
5.2 밀도 독립적인 디자인 165
5.3 안드로이드 사용자 인터페이스의 토대 166
5.4 레이아웃 168
5.5 안드로이드 위젯 툴박스 181
5.6 리스트와 그리드 사용하기 182
5.7 데이터 바인딩 192
5.8 새 뷰 만들기 198
CHAPTER 6 인텐트와 브로드캐스트 리시버 225
6.1 인텐트와 브로드캐스트 리시버 사용하기 226
6.2 인텐트를 사용해 액티비티 시작하기 227
6.3 암시적 인텐트를 수신하는 인텐트 필터 만들기 236
6.4 링키파이 255
6.5 브로드캐스트 이벤트에 인텐트 사용하기 258
6.6 로컬 브로드캐스트 매니저 267
6.7 펜딩 인텐트 268
CHAPTER 7 인터넷 리소스 사용하기 271
7.1 인터넷에 연결하기 272
7.2 인터넷 리소스 연결, 다운로드, 파싱하기 272
7.3 다운로드 매니저 사용하기 300
7.4 배터리를 적게 소모하면서 데이터를 다운로드하는 최선의 방법 310
7.5 인터넷 서비스와 클라우드 컴퓨팅 313
CHAPTER 8 파일, 상태 저장, 사용자 환경 설정 315
8.1 파일, 상태, 프레퍼런스 저장하기 316
8.2 수명 주기 핸들러를 사용해 액티비티 및 프래그먼트 인스턴스의 상태 저장하기와 복원하기 317
8.3 헤드리스 프래그먼트와 뷰 모델의 인스턴스 상태 유지하기 319
8.4 공유 프레퍼런스 생성하기와 저장하기 324
8.5 공유 프레퍼런스 데이터 읽기 326
8.6 공유 프레퍼런스 변경 리스너 327
8.7 애플리케이션 파일과 공유 프레퍼런스의 자동 백업 구성하기 327
8.8 프레퍼런스 UI 빌드하기 330
8.9 지진 정보 조회 애플리케이션에 설정 액티비티 만들기 337
8.10 정적 파일을 리소스로 포함하기 346
8.11 파일 시스템 사용하기 347
8.12 SDA로 공용 디렉터리 사용하기 350
8.13 파일 프로바이더를 사용해 파일 공유하기 355
8.14 저장소 접근 프레임워크를 사용해 다른 애플리케이션의 파일 사용하기 357
8.15 URI 기반 권한 사용하기 361
CHAPTER 9 데이터베이스 만들기와 사용하기 363
9.1 안드로이드의 구조적 데이터 저장소 364
9.2 Room 퍼시스턴스 라이브러리를 사용해 데이터 저장하기 364
9.3 지진 데이터를 Room 데이터베이스에 저장하기 378
9.4 SQLite 데이터베이스로 작업하기 384
9.5 파이어베이스 리얼타임 데이터베이스 396
CHAPTER 10 콘텐트 프로바이더와 검색 406
10.1 콘텐트 프로바이더 407
10.2 왜 콘텐트 프로바이더를 사용해야 할까? 407
10.3 콘텐트 프로바이더 만들기 408
10.4 콘텐트 리졸버로 콘텐트 프로바이더에 접근하기 422
10.5 네이티브 안드로이드 콘텐트 프로바이더 사용하기 435
10.6 애플리케이션에 검색 기능 추가하기 450
CHAPTER 11 백그라운드에서 작업하기 479
11.1 백그라운드로 작업하기 480
11.2 백그라운드 스레드 사용하기 481
11.3 백그라운드 작업 스케줄링하기 489
11.4 알림을 사용해 사용자에게 알리기 509
11.5 파이어베이스 클라우드 메시징 사용하기 531
11.6 알람 사용하기 537
11.7 서비스 539
CHAPTER 12 안드로이드 디자인 철학 구현하기 549
12.1 안드로이드의 디자인 철학 550
12.2 모든 화면에 어울리는 디자인 550
12.3 머티리얼 디자인 564
12.4 머티리얼 디자인의 사용자 인터페이스 요소들 573
CHAPTER 13 현대적인 안드로이드 사용자 인터페이스 구현하기 585
13.1 현대 안드로이드의 UI 586
13.2 AppCompat을 사용해 일관된 현대적 사용자 인터페이스 만들기 586
13.3 앱바에 메뉴와 액션 추가하기 589
13.4 기본 앱바를 넘어 595
13.5 지진 정보 뷰어 앱의 앱바 개선하기 602
13.6 앱의 이동 패턴 604
13.7 지진 정보 뷰어에 탭 추가하기 620
13.8 적절한 방해 수준 선택하기 626
CHAPTER 14 사용자 인터페이스의 고급 구성 632
14.1 사용자 경험 확장하기 633
14.2 접근성 지원하기 633
14.3 안드로이드의 음성 합성 635
14.4 음성 인식 사용하기 638
14.5 기기의 진동 제어하기 640
14.6 전체 화면 활용하기 642
14.7 프로퍼티 애니메이션으로 작업하기 644
14.8 뷰 개선하기 648
14.9 고급 캔버스 드로잉 649
14.10 복합 드로어블 리소스 676
14.11 복사하기, 붙여넣기, 클립보드 680
CHAPTER 15 위치, 상황 인지, 지도 683
15.1 애플리케이션에 위치, 지도, 상황 인지 추가하기 684
15.2 구글 플레이 서비스 685
15.3 구글 위치 서비스를 사용해 기기의 위치 찾기 689
15.4 지오펜스 설정하기와 관리하기 717
15.5 전통적인 플랫폼 위치 기반 서비스 사용하기 721
15.6 지오코더 사용하기 732
15.7 지도 기반 액티비티 만들기 739
15.8 지진 정보 뷰어에 지도 추가하기 762
15.9 상황 인지 추가하기 767
CHAPTER 16 하드웨어 센서 778
16.1 안드로이드의 센서 779
16.2 안드로이드 가상 기기와 에뮬레이터에서 센서 테스트하기 796
16.3 센서 다루기의 모범 사례 798
16.4 기기의 움직임과 방향 모니터링하기 799
16.5 환경 센서 사용하기 819
16.6 신체 센서 사용하기 826
16.7 사용자 행동 인지 829
CHAPTER 17 오디오, 비디오 그리고 카메라 사용하기 833
17.1 오디오와 비디오 재생하기 그리고 카메라 사용하기 834
17.2 오디오와 비디오 재생하기 834
17.3 미디어 라우터와 캐스트 애플리케이션 프레임워크 사용하기 853
17.4 백그라운드 오디오 재생 859
17.5 미디어 리코더를 사용해 오디오 리코딩하기 869
17.6 카메라를 사용해 사진 찍기 872
17.7 비디오 리코딩하기 882
17.8 미디어 스토어에 미디어 추가하기 887
CHAPTER 18 블루투스, NFC, 와이파이 P2P 통신하기 890
18.1 네트워킹과 P2P 통신 891
18.2 블루투스를 사용해 데이터 전송하기 891
18.3 와이파이 P2P를 사용해 데이터 전송하기 909
18.4 NFC 사용하기 917
18.5 안드로이드 빔 사용하기 921
CHAPTER 19 홈 화면 공략하기 927
19.1 홈 화면 커스터마이즈하기 928
19.2 화면 위젯 928
19.3 지진 앱에 위젯 만들기 945
19.4 컬렉션 뷰 위젯 953
19.5 라이브 배경화면 만들기 970
19.6 앱 단축키 만들기 975
CHAPTER 20 고급 안드로이드 개발 982
20.1 고급 안드로이드 983
20.2 편집증적인 안드로이드 983
20.3 각기 다른 하드웨어 및 소프트웨어 사용 가능성 처리하기 990
20.4 엄격 모드로 사용자 인터페이스 성능 최적화하기 994
20.5 전화 통신과 SMS 996
CHAPTER 21 앱의 릴리스, 배포, 모니터링 1029
21.1 릴리스 준비하기 1030
21.2 앱 매니페스트의 앱 메타데이터 업데이트하기 1032
21.3 앱의 프로덕션 빌드에 서명하기 1036
21.4 구글 플레이 스토어에서 앱 배포하기 1041
21.5 앱의 수익 창출 1061
21.6 앱 마케팅, 프로모션, 배포 전략 1063
21.7 파이어베이스를 사용해 앱 모니터링하기 1065
찾아보기 1075
책속에서
안드로이드 코드는 전통적으로 자바 언어로 작성했다. 2017년까지만 해도 안드로이드 애플리케이션 개발에는 자바가 필수 요소였다. 그러나 안드로이드 스튜디오 3.0부터는 자바에 추가하여 코틀린을 완벽하게 지원하고 있다. 따라서 프로그래머는 부분적 또는 전체적으로 코틀린을 사용해 안드로이드 애플리케이션을 작성할 수 있다.
안드로이드 시스템은 브로드캐스트 인텐트를 사용해 인터넷 연결의 변경이나 배터리 충전 상태와 같은 시스템 이벤트를 공지할 수 있다. 전화 송수신이나 SMS 매니저와 같은 네이티브 안드로이드 애플리케이션들은 특정 브로드캐스트 인텐트를 리스닝하는 컴포넌트를 등록해 해당 상황에 맞게 반응한다. 따라서 동일한 인텐트를 리스닝하는 브로드캐스트 리시버를 등록해 네이티브 애플리케이션을 상당수 대체할 수 있다.