책 이미지

책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 개발/방법론 > 모바일/무선/임베디드 프로그래밍
· ISBN : 9788994506029
· 쪽수 : 816쪽
· 출판일 : 2010-09-17
책 소개
목차
Chapter 01 헬로, 안드로이드
가볍게 살펴보는 배경지식 2
그리 멀지 않은 과거에는 3
안드로이드의 미래 4
안드로이드에 대한 오해 4
안드로이드: 모바일 개발을 위한 오픈 플랫폼 5
네이티브 안드로이드 애플리케이션 7
안드로이드 SDK의 특징 8
카메라, GPS, 가속도계 등의 하드웨어 접근 9
네이티브 구글 지도, 지오코딩, 위치 기반 서비스 10
백그라운드 서비스 10
데이터 저장과 검색을 위한 SQLite 데이터베이스 11
공유 데이터와 애플리케이션 간 통신 11
홈 스크린의 가치를 높이는 위젯, 라이브 폴더, 라이브 월페이퍼 12
광범위한 미디어 지원과 2D/3D 그래픽스 12
최적화된 메모리와 프로세스 관리 13
오픈 핸드셋 얼라이언스 소개 13
안드로이드 탑재 기기 14
모바일 애플리케이션 개발에 뛰어들어야 하는 이유? 14
안드로이드 애플리케이션 개발에 뛰어들어야 하는 이유? 15
안드로이드의 도입을 주도하는 것 15
안드로이드에만 있는 것 16
모바일 개발 판도의 변화 17
개발 프레임워크 소개 18
SDK에는 무엇이 들어 있을까? 18
안드로이드 소프트웨어 스택의 이해 19
Dalvik 가상 머신 21
안드로이드 애플리케이션 아키텍처 22
안드로이드 라이브러리 23
요약 23
Chapter 02 시작하기
안드로이드 애플리케이션 개발 26
준비물 27
내 생의 첫 번째 안드로이드 애플리케이션 만들기 33
안드로이드 애플리케이션 타입 41
모바일 애플리케이션 개발 43
하드웨어를 고려한 설계 43
사용자 환경 고려하기 48
안드로이드 애플리케이션 개발 50
할 일 목록 예제 54
안드로이드 개발 도구 62
안드로이드 SDK 및 가상 장치 매니저 63
안드로이드 에뮬레이터 66
Dalvik 디버그 모니터 서비스(DDMS) 67
안드로이드 디버그 브리지(ADB) 67
요약 68
Chapter 03 애플리케이션과 액티비티 만들기
안드로이드 애플리케이션의 구성요소 72
애플리케이션 매니페스트 소개 74
매니페스트 에디터 사용하기 81
안드로이드 애플리케이션 수명 주기 83
애플리케이션 우선순위와 프로세스 상태 이해하기 83
리소스 외부화하기 85
리소스 만들기 86
리소스 사용하기 95
서로 다른 언어와 하드웨어를 위한 리소스 만들기 101
런타임 구성 변경 103
안드로이드 애플리케이션 클래스 소개 105
애플리케이션 클래스 확장하고 사용하기 106
애플리케이션 수명 주기 이벤트 재정의하기 107
안드로이드 액티비티 좀더 자세히 살펴보기 108
액티비티 만들기 109
액티비티 수명 주기 111
안드로이드 액티비티 클래스 118
요약 119
Chapter 04 사용자 인터페이스 만들기
기본 안드로이드 UI 디자인 122
뷰 소개 123
뷰를 이용해 액티비티 사용자 인터페이스 만들기 124
안드로이드 위젯 툴 박스 125
레이아웃 소개 126
레이아웃 사용하기 127
레이아웃 최적화하기 129
새로운 뷰 만들기 130
기존 뷰 수정하기 131
복합 컨트롤 만들기 136
커스텀 뷰 만들기 140
커스텀 컨트롤 사용하기 154
드로어블 리소스 155
컬러 드로어블, 셰이프 드로어블, 그레이디언트 드로어블 156
복합 드로어블 160
나인패치 드로어블 164
해상도 독립성과 밀도 독립성 164
리소스 프레임워크와 해상도 독립성 165
해상도 독립성을 위한 베스트 프랙티스 167
메뉴 만들고 사용하기 172
안드로이드 메뉴 시스템 소개 172
액티비티 메뉴 정의하기 174
메뉴 아이템 옵션 176
동적으로 메뉴 아이템 업데이트하기 178
메뉴 선택 처리하기 178
하위 메뉴와 컨텍스트 메뉴 179
XML로 메뉴 정의하기 182
할 일 목록 예제 이어가기 184
요약 190
Chapter 05 인텐트, 브로드캐스트 리시버, 어댑터, 그리고 인터넷
인텐트 소개 194
인텐트로 액티비티 띄우기 195
인텐트 필터를 이용해 암시적 인텐트 서비스하기 203
플러그 인과 확장성을 위한 인텐트 필터의 사용 214
링키파이 소개 218
인텐트를 이용해 이벤트 방송하기 221
팬딩 인텐트 소개 227
어댑터 소개 228
네이티브 어댑터 소개 228
배열 어댑터 커스터마이징 229
어댑터를 이용한 데이터 바인딩 230
인터넷 리소스 이용하기 236
인터넷 리소스에 접속하기 237
인터넷 리소스 이용하기 238
다이얼로그 소개 239
다이얼로그 클래스 소개 240
액티비티를 다이얼로그로 이용하기 243
다이얼로그 표시하고 관리하기 243
지진 정보 뷰어 만들기 245
요약 256
Chapter 06 파일, 상태 저장, 그리고 환경설정
간단한 애플리케이션 데이터의 저장 260
환경설정 만들고 저장하기 261
공유 환경설정에서 데이터 가져오기 262
지진 정보 뷰어를 위한 설정 액티비티 만들기 262
환경설정 액티비티와 환경설정 프레임워크 소개 273
XML로 환경설정 화면 레이아웃 정의하기 274
환경설정 액티비티 소개 278
환경설정 화면과 연계된 공유 환경설정 찾아 이용하기 278
공유 환경설정 변화 감지 리스너 소개 279
지진 정보 뷰어를 위한 표준 환경설정 액티비티 만들기 280
액티비티 상태 저장하기 282
인스턴스 상태 저장하고 복구하기 283
할 일 목록의 액티비티 상태 저장하기 284
파일 읽고 쓰기 287
정적 파일을 리소스로 포함시키기 288
파일 관리 도구 289
요약 289
Chapter 07 데이터베이스와 콘텐트 프로바이더
안드로이드 데이터베이스 소개 292
SQLite 데이터베이스 소개 292
콘텐트 프로바이더 소개 292
SQLite 소개 293
커서와 콘텐트 밸류 294
SQLite 데이터베이스 이용하기 295
SQLiteOpenHelper 소개 298
SQLiteHelper 없이 데이터베이스 생성하고 개방하기 299
안드로이드 데이터베이스 설계 고려사항 300
데이터베이스에 질의하기 300
커서에서 결과 값 읽기 301
행 추가, 업데이트, 삭제 302
할 일 목록 저장하기 304
콘텐트 프로바이더 만들기 312
데이터 소스에 접근할 수 있도록 인터페이스 노출하기 314
콘텐트 프로바이더 등록하기 316
콘텐트 프로바이더 이용하기 316
콘텐트 리졸버 소개 316
콘텐트 질의하기 317
콘텐트 추가, 업데이트, 삭제 318
콘텐트 프로바이더에 있는 파일 접근하기 320
지진 정보 콘텐트 프로바이더 만들고 이용하기 321
콘텐트 프로바이더 만들기 321
콘텐트 프로바이더 이용하기 327
네이티브 안드로이드 콘텐트 프로바이더 331
미디어 스토어 콘텐트 프로바이더 이용하기 332
주소록 콘텐트 프로바이더 이용하기 333
요약 339
Chapter 08 지도, 지오코딩, 그리고 위치 기반 서비스
위치 기반 서비스 이용하기 342
위치 기반 서비스를 테스트하기 위한 에뮬레이터 환경 구축하기 342
에뮬레이터 위치 프로바이더의 위치 업데이트하기 343
위치 프로바이더 선택하기 344
이용 가능한 위치 프로바이더 검색하기 345
Criteria를 이용해 위치 프로바이더 검색하기 345
현재 위치 찾기 347
“내 위치 찾기” 예제 348
움직임 추적하기 350
“내 위치 찾기”에 위치 업데이트하기 352
근접 경보 이용하기 355
지오코더 이용하기 356
역방향 지오코딩 357
순방향 지오코딩 358
“내 위치 찾기”에 지오코딩 기능 넣기 360
지도 기반 액티비티 만들기 362
맵 뷰와 맵 액티비티 소개 362
지도 API 키 발급받기 363
지도 기반 액티비티 만들기 364
맵 뷰 구성하고 이용하기 366
맵 컨트롤러 이용하기 367
“내 위치 찾기”에 지도 표시 기능 넣기 368
오버레이 만들고 이용하기 372
MyLocationOverlay 소개 381
ItemizedOverlay와 OverlayItem 소개 382
지도와 지도 상의 위치에 뷰 고정시키기 385
지진 정보 애플리케이션에 지도 표시 기능 넣기 387
요약 393
Chapter 09 백그라운드에서 작업하기
서비스 소개 396
서비스에 액티비티 바인드하기 412
백그라운드 서비스의 우선순위 높이기 414
백그라운드 스레드 이용하기 416
AsyncTask로 비동기 작업 수행하기 416
AsyncTask를 이용해 지진 정보 서비스를 백그라운드 스레드로 옮기기 419
직접 스레드를 만들고 GUI 스레드와 동기화하기 420
토스트 만들기 423
토스트 커스터마이즈하기 424
작업자 스레드에서 토스트 사용하기 426
알림 소개 427
알림 매니저 소개 428
알림 생성하기 429
알림 발생시키기 433
지진 정보 모니터에 알림과 토스트 넣기 434
고급 알림 테크닉 438
진행 중 알림과 강조 알림 442
알람 이용하기 443
반복 알람 설정하기 446
반복 알람으로 지진 정보 업데이트하기 447
요약 450
Chapter 10 폰 화면 공략하기
홈 스크린 위젯 소개 454
앱 위젯 만들기 455
위젯 레이아웃 만들기 456
위젯 설정 정의하기 459
위젯 브로드캐스트 리시버 만들고, 애플리케이션 매니페스트에 추가하기 460
리모트 뷰와 앱 위젯 매니저 소개 461
위젯을 최신 상태로 유지하기 467
위젯 환경설정 액티비티 만들고 이용하기 471
지진 정보 위젯 만들기 472
라이브 폴더 소개 479
라이브 폴더 만들기 480
지진 정보 라이브 폴더 만들기 483
애플리케이션과 퀵 서치 박스에 검색 기능 추가하기 487
애플리케이션에 검색 기능 추가하기 487
퀵 서치 박스에 검색 결과 달기 491
지진 정보 예제에 검색 기능 추가하기 492
라이브 월페이퍼 만들기 496
라이브 월페이퍼 리소스 정의하기 497
월페이퍼 서비스 만들기 497
월페이퍼 서비스 엔진 만들기 498
요약 500
Chapter 11 오디오, 비디오, 그리고 카메라 이용하기
오디오와 비디오 재생 502
미디어 플레이어 소개 503
오디오 재생 준비 504
비디오 재생 준비 506
재생 제어하기 510
미디어 재생 출력 관리하기 510
오디오와 비디오 레코딩 511
인텐트를 이용한 비디오 레코딩 512
미디어 레코더 이용하기 513
카메라 이용법과 사진 촬영 517
인텐트를 이용한 사진 촬영 518
카메라 제어와 사진 촬영 519
JPEG EXIF 이미지 정보 읽고 쓰기 525
미디어 스토어에 새 미디어 추가하기 526
원시 오디오 조작 529
AudioRecord를 이용한 사운드 레코딩 529
AudioTrack를 이용한 사운드 재생 531
음성 인식 533
요약 535
Chapter 12 전화통신과 SMS
전화통신 538
다이얼러 띄우기 538
네이티브 다이얼러 대체하기 539
폰과 네트워크의 속성 및 상태정보 접근하기 540
폰 상태, 폰 활동, 데이터 연결 변화 모니터링 544
SMS와 MMS 소개 549
애플리케이션에서 SMS와 MMS 이용하기 549
인텐트와 네이티브 클라이언트를 이용해 SMS와 MMS 보내기 550
SMS 메시지 직접 보내기 551
수신되는 SMS 메시지 받아 처리하기 555
긴급 SMS 응답기 예제 558
긴급 응답기 자동화하기 570
요약 580
Chapter 13 블루투스, 네트워크, 그리고 Wi-Fi
블루투스 이용하기 582
로컬 블루투스 장치 어댑터 접근하기 582
블루투스 속성과 상태 관리하기 583
검색 가능하게 만들기와 원격 장치 검색하기 587
블루투스 통신 591
블루투스 데이터 전송 예제 599
네트워크 연결 관리하기 611
연결 매니저 소개 611
“백그라운드 데이터” 환경설정 값 읽기 612
네트워크 세부정보 모니터하기 613
네트워크 환경설정 구성하기와 무선 장치 제어하기 614
네트워크 연결 모니터하기 615
Wi-Fi 관리하기 615
Wi-Fi 연결 모니터하기 617
활성 연결 세부정보 모니터하기 617
핫스팟 검색하기 618
Wi-Fi 구성 관리하기 619
Wi-Fi 네트워크 구성 만들기 620
요약 621
Chapter 14 센서
센서와 센서 매니저 이용하기 624
센서 소개 624
센서 값 해석하기 628
나침반 센서, 가속도 센서, 방향 센서 이용하기 629
가속도 센서 소개 630
가속도 변화 감지하기 631
중력 측정기 만들기 633
방향 측정하기 637
나침반과 인공 수평의水平儀 만들기 641
기기 진동 제어하기 647
요약 648
Chapter 15 고급 안드로이드 개발
편집증 환자, 안드로이드 650
리눅스 커널 보안 650
권한 선언하기와 강제하기 651
브로드캐스트 인텐트에 권한 강제하기 653
웨이크 락 이용하기 653
안드로이드 텍스트 음성 변환 소개 655
AIDL을 이용해 서비스를 위한 IPC 지원하기 658
AIDL 인터페이스 구현하기 658
클래스 객체를 Parcelable 형태로 전달하기 659
IPC 인터페이스 구현하고 노출하기 662
인터넷 서비스 이용하기 665
리치 유저 인터페이스 만들기 666
애니메이션 다루기 666
고급 캔버스 드로잉 681
서피스 뷰 소개 703
인터랙티브한 컨트롤 만들기 707
요약 715
부록 01 안드로이드 2.2 플랫폼 하이라이트
사용자를 위한 새로운 기능 717
홈 717
익스체인지 지원 718
다중 키보드 언어 721
성능 향상 722
새로 추가된 플랫폼 기술 722
미디어 프레임워크 722
블루투스 723
2.6.32 커널 업그레이드 723
새로운 개발자 서비스 723
안드로이드 클라우드 장치 메시징 723
안드로이드 애플리케이션 에러 리포트 723
새로운 개발자 API 723
외부 저장소에 애플리케이션 설치 723
미디어 프레임워크 724
카메라와 캠코더 724
그래픽스 724
데이터 백업 724
기기 정책 매니저 724
UI 프레임워크 724
부록 02 안드로이드 클라우드 장치 메시징 프레임워크
소개 727
아키텍처 개요 728
수명주기 흐름 729
사용자가 해야 할 일 732
C2DM을 이용하는 안드로이드 애플리케이션 제작 732
매니페스트 생성 733
C2DM 등록 734
C2DM 등록 해제 735
등록 결과 처리 735
수신 데이터 처리 737
애플리케이션 개발 및 테스트 737
서드파티 애플리케이션 서버의 역할 738
애플리케이션 서버에서 메시지를 전송하는 방법 738
예제 740
한계 741
찾아보기 742