목차
저자 소개 ... 5
옮긴이 소개 ... 6
개정판 옮긴이의 말 ... 7
1판 옮긴이의 말 ... 8
들어가며 ... 22
1장 개요 ... 25
   안드로이드 프로그램 구조 ... 27
      액티비티 ... 27
      컨텐트 프로바이더 ... 28
      서비스 ... 28
      인텐트 ... 28
   사용 가능한 구성 요소 ... 29
      데이터 보관 ... 29
      네트웍 ... 29
      멀티미디어 ... 29
      GPS ... 30
      전화 서비스 ... 30
   개발환경 준비 ... 30
      안드로이드 SDK 설치 ... 30
      개발환경 설정 ... 31
      이클립스 플러그인 설치 ... 32
      안드로이드 가상 기기 생성 ... 32
2장 프로젝트와 타겟 ... 37
   필요한 작업 ... 37
   프로젝트 생성 ... 38
   프로젝트 구조 ... 39
      루트 디렉토리 ... 39
      생성되는 내용 ... 40
      그 밖의 디렉토리 ... 41
      결과로 얻는 내용 ... 42
   매니페스트 파일 ... 42
      루트 엘리먼트 ... 43
      권한, 기본 연동 요소, 애플리케이션 ... 44
      애플리케이션 엘리먼트 ... 45
      SDK 버전 ... 46
      버전=컨트롤 ... 48
   에뮬레이터와 타겟 ... 48
      가상 장비 ... 49
      타겟 지정 ... 51
3장 애플리케이션 작성 ... 53
   프로젝트 생성 ... 53
   액티비티 분석 ... 55
   빌드와 실행 ... 57
4장 XML 레이아웃 ... 61
   XML 기반 레이아웃 ... 61
   XML로 레이아웃을 지정하는 이유 ... 62
   XML 레이아웃 파일 구조 ... 63
   엘리먼트 ID ... 64
   자바 코드와 연결하는 방법 ... 65
   종합정리 ... 66
5장 기본 위젯 ... 69
   레이블 ... 69
   버튼 ... 71
   이미지 ... 72
   입력 필드 ... 73
   체크 박스 ... 75
   라디오 버튼 ... 78
   뷰 ... 80
      유용한 속성 ... 80
      유용한 메소드 ... 81
      색깔 ... 81
6장 컨테이너 ... 83
   LinearLayout ... 84
      개념과 속성 ... 84
      LinearLayout 예제 ... 88
   RelativeLayout ... 93
      개념과 속성 ... 93
      RelativeLayout 예제 ... 96
   TableLayout ... 100
      개념과 속성 ... 100
      TableLayout 예제 ... 103
   스크롤 ... 104
7장 선택 기능 위젯 ... 109
   공통의 인터페이스 어댑터 ... 110
   리스트 예제 ... 111
   스핀 컨트롤 ... 116
   그리드 ... 119
   입력 필드: 자동 완성 ... 123
   갤러리 ... 127
8장 리스트 고급 활용 ... 129
   가장 간단한 작업 ... 129
   동적인 내용 ... 132
   성능 개선 ... 135
      convertView 활용 ... 136
      홀더 패턴 ... 138
   원하는 대로 만들기 ... 142
   코드 리팩토링 ... 148
   CursorAdapter ... 155
9장 고급 위젯과 컨테이너 ... 157
   날짜, 색상 선택 ... 157
   시계 ... 162
   진행상태 표시 ... 164
   입력 슬라이더 ... 165
   탭 ... 166
      탭 구성 요소 ... 167
      주의할 점 ... 168
      연결과 탭 완성 ... 169
      동적으로 탭 추가 ... 172
      인텐트와 뷰 ... 175
   플리퍼 ... 176
      수동 넘김 ... 177
      동적으로 내용 추가 ... 179
      자동 넘김 ... 181
   슬라이딩 서랍 ... 182
   그 밖의 위젯 ... 185
10장 입력 방식 프레임웍 ... 187
   키보드의 종류 ... 187
   커스터마이징 ... 188
   입력 완료 버튼 ... 193
   레이아웃 조정 ... 195
   드보락 키보드 ... 197
11장 메뉴 ... 199
   메뉴 종류 ... 199
      옵션 메뉴 ... 200
      메뉴 항목, 서브메뉴 추가 ... 200
   컨텍스트 메뉴 ... 202
   메뉴 예제 ... 204
   메뉴 인플레이션 ... 209
      메뉴 XML의 구조 ... 210
      메뉴 관련 속성 ... 211
      메뉴 인플레이션 ... 213
12장 글꼴 ... 215
   기본 포함 글꼴 ... 215
   추가 글꼴 ... 217
   특이한 글자 ... 219
13장 웹킷 브라우저 ... 221
   단순한 브라우저 ... 221
   원하는 내용 표시 ... 224
   브라우저 내비게이션 ... 226
   WebViewClient ... 226
   설정과 옵션 ... 229
14장 팝업 메시지 ... 231
   토스트 ... 231
   경고창 ... 232
   팝업 메시지 예제 ... 234
15장 스레드 ... 237
   Handler 객체 ... 238
      Message 객체 ... 238
      Runnable 객체 ... 242
   Handler 없이 실행 ... 242
   사용자 인터페이스 스레드 ... 243
   비동기 작업 ... 243
      이론적 배경 ... 244
      AsyncTask, 제네릭, 가변 인자 ... 245
      AsyncTask 구조 ... 245
      백그라운드 작업 예제 ... 246
   주의해야 할 점 ... 252
16장 액티비티 생명주기 ... 255
   액티비티 상태 ... 255
   액티비티 생명주기 ... 256
      onCreate(), onDestroy() ... 256
      onStart(), onRestart(), onStop() ... 257
      onPause(), onResume() ... 258
   부드러운 상태 변화 ... 258
17장 인텐트 필터 ... 261
   인텐트 ... 262
      인텐트 구조 ... 262
      인텐트 라우팅 ... 263
   인텐트 생성 ... 264
   인텐트 리시버 ... 266
   일시정지 문제 ... 267
18장 액티비티 실행 ... 269
   액티비티 종류 ... 270
   실행 ... 271
      인텐트 작성 ... 271
      호출 ... 271
   탭 브라우징 ... 276
19장 화면 회전 ... 281
   종료 및 재시작 ... 281
   가로보기, 세로보기 ... 282
   더 많은 정보 보관 ... 287
   직접 처리하는 회전 작업 ... 290
   화면 고정 ... 293
   가속도계만 사용 ... 295
20장 리소스 ... 297
   리소스의 종류 ... 297
   문자열 ... 298
      일반 문자열 ... 298
      문자열 포매팅 ... 299
      화면 표시 스타일 ... 299
      스타일이 적용된 포매팅 ... 300
   이미지 ... 304
   XML ... 307
   기타 리소스 ... 310
      크기 ... 311
      색깔 ... 311
      배열 ... 312
   환경에 맞는 리소스 선택 ... 313
21장 환경설정 ... 321
   원하는 값 추출 ... 321
   환경설정 관리 ... 322
   환경설정 XML ... 323
   환경설정 기능 제공 ... 324
   모양새 갖추기 ... 329
   환경설정 팝업 ... 332
22장 로컬 데이터베이스 ... 337
   데이터베이스 예제 ... 338
   SQLite ... 339
   기초 ... 340
   테이블 준비 ... 344
   데이터 추가 ... 344
   데이터 불러오기 ... 346
   데이터 직접 다루기 ... 351
23장 파일 ... 353
   고정된 파일 ... 353
   읽고 쓰기 ... 357
24장 외부 자바 라이브러리 ... 363
   제한 사항 ... 363
   Ant와 JAR ... 364
   스크립트 활용 ... 365
   기타 사항 ... 370
   스크립트 리뷰 ... 371
25장 인터넷 연결 ... 373
   REST ... 373
   기본 HTTP 작업 ... 374
   응답 분석 ... 376
   고려 사항 ... 379
26장 컨텐트 프로바이더 ... 381
   Uri 구성 ... 382
   Uri 생성 ... 382
   쿼리 실행 ... 383
   데이터 자동 적용 ... 385
   데이터 추가와 변경 ... 387
   BLOB 문제 ... 388
27장 컨텐트 프로바이더 구현 ... 391
   내부 구성 요소 ... 391
   데이터 타입 ... 393
   컨텐트 프로바이더 작성 ... 393
      1단계: 컨텐트 프로바이더 클래스 생성 ... 394
      2단계: Uri 지정 ... 401
      3단계: 속성 정의 ... 401
      4단계: 매니페스트 설정 ... 402
   변경 사항 알림 ... 403
28장 권한 ... 405
   권한 확보 ... 406
   권한 요청 ... 407
      AndroidManifest.xml 파일에 권한 명시 ... 408
      그 밖의 권한 요청 방법 ... 409
   자세한 문서와 설명 ... 410
29장 서비스 구현 ... 411
   서비스 클래스 ... 412
   서비스 인스턴스 ... 413
   AndroidManifest.xml ... 415
   IPC 클라이언트 호출 ... 416
      콜백 ... 416
      인텐트 브로드캐스트 ... 417
   원격 서비스, 프로그램의 나머지 부분 ... 419
30장 서비스 호출 ... 421
   바인딩 ... 422
   데이터 수신 ... 425
31장 사용자 알림 ... 427
   알림 메시지 종류 ... 427
      기기 알림 메시지 ... 428
      아이콘 ... 429
   알림 메시지 예제 ... 429
32장 위치 기반 서비스 ... 435
   위치 정보 프로바이더 ... 436
   위치 확인 ... 436
   변경 사항 업데이트 ... 438
   목표 지점 도착 알림 ... 440
   테스트 ... 441
33장 지도, MapView, MapActivity ... 443
   구글 지도 사용권 계약 ... 443
   SDK 애드온 ... 444
   구글 지도 기초 ... 444
   지도 제어 기능 ... 446
      확대/축소 배율 ... 447
      중심 이동 ... 447
   위성 사진 지도 ... 448
   레이어 ... 449
      오버레이 클래스 ... 449
      ItemizedOverlay 표시 ... 450
      화면 터치 처리 ... 452
   현재 위치와 방향 ... 452
   API 키 발급 ... 454
34장 전화 ... 457
   TelephonyManager ... 457
   전화 걸기 ... 458
35장 개발 도구 ... 463
   계층 탐색기 ... 463
   달빅 디버깅 ... 469
      로그 ... 470
      파일 업로드, 다운로드 ... 471
      화면 캡처 ... 472
      위치 지정 ... 473
      전화 걸기, SMS 발송 ... 474
   SD카드 ... 477
      SD카드 이미지 생성 ... 477
      SD카드 삽입 ... 478
36장 다양한 화면 크기 ... 479
   기본 화면 크기 ... 479
   화면 크기별 대응 ... 480
      위치보다는 규칙 ... 480
      물리적인 크기 ... 482
      픽셀 이외의 단위 ... 482
      그림 크기 ... 483
   기기별 레이아웃 ... 483
      〈supports-screens〉 ... 484
      리소스, 리소스 집합 ... 485
      화면 크기 파악 ... 486
   해상도와 실제 크기 ... 487
      해상도 문제 ... 488
      해상도 조절 ... 488
      실제 기기 접속 ... 489
   레이아웃 변경 ... 490
      메뉴 대신 버튼 ... 491
      탭 대신 액티비티 ... 491
      액티비티 통합 ... 492
   예제: EU4You ... 492
      첫 번째 버전 ... 493
      아이콘 문제 해결 ... 502
      빈 공간 활용 ... 503
      레이아웃 재사용 ... 505
   화면 크기 관련 버그 ... 506
37장 기기별 차이점 ... 507
   명시적인 대응 ... 507
   버튼 확인 ... 509
   시장 규모 ... 509
   기기별 차이점 ... 510
      Archos 5 안드로이드 인터넷 태블릿 ... 510
      모토로라 CLIQ/DEXT ... 511
      모토로라 드로이드/마일스톤 ... 512
      구글/HTC 넥서스원 ... 512
      모토로라 백플립 ... 513
38장 플랫폼 업그레이드 ... 515
   브랜드 관리 ... 515
   그 외의 문제 ... 516
      위젯 계층 구조 ... 516
      리소스 변경 ... 518
   API 변경 ... 518
      운영체제 버전 확인 ... 519
      API 감싸기 ... 519
39장 안드로이드 관련 정보 얻기 ... 527
   질문과 대답 ... 527
   안드로이드 소스 코드 ... 528
   최신 소식 ... 529
찾아보기 ... 530
닫기