저자 소개 ... 5 감사의 글 ... 6 옮긴이 소개 ... 7 옮긴이의 말 ... 8 들어가며 ... 22 1부 안드로이드 기초 ... 25 1장 개요 ... 27 안드로이드 프로그램 구조 ... 29 액티비티 ... 29 컨텐트 프로바이더 ... 30 인텐트 ... 30 서비스 ... 31 사용 가능한 구성 요소 ... 31 데이터 보관 ... 31 네트웍 ... 31 멀티미디어 ... 32 GPS ... 32 전화 서비스 ... 32 개발환경 준비 ... 32 안드로이드 SDK 설치 ... 32 개발환경 설정 ... 33 이클립스 플러그인 설치 ... 34 안드로이드 가상 기기 생성 ... 34 2장 프로젝트 디렉토리 ... 37 루트 디렉토리 ... 37 생성되는 내용 ... 38 그 밖의 디렉토리 ... 39 결과로 얻는 내용 ... 39 3장 매니페스트 파일 ... 41 루트 엘리먼트 ... 42 권한, 기본 연동 요소, 애플리케이션 ... 42 애플리케이션 엘리먼트 ... 44 SDK 버전 ... 45 2부 액티비티 ... 47 4장 애플리케이션 작성 ... 49 프로젝트 생성 ... 49 액티비티 ... 50 액티비티 분석 ... 51 빌드와 실행 ... 54 5장 XML 레이아웃 ... 57 XML 기반 레이아웃 ... 57 XML로 레이아웃을 지정하는 이유 ... 58 XML 레이아웃 파일 구조 ... 59 엘리먼트 ID ... 60 자바 코드와 연결하는 방법 ... 61 종합정리 ... 62 6장 기본 위젯 ... 65 레이블 ... 65 버튼 ... 67 이미지 ... 67 입력 필드 ... 68 체크 박스 ... 71 라디오 버튼 ... 73 뷰 ... 76 유용한 속성 ... 76 유용한 메소드 ... 76 7장 컨테이너 ... 79 LinearLayout ... 80 개념과 속성 ... 80 LinearLayout 예제 ... 83 RelativeLayout ... 88 개념과 속성 ... 89 RelativeLayout 예제 ... 92 TableLayout ... 95 기본 개념과 속성 ... 95 TableLayout 예제 ... 98 스크롤 ... 99 8장 선택 기능 위젯 ... 103 공통의 인터페이스 어댑터 ... 103 ArrayAdapter ... 104 그 밖의 어댑터 ... 106 리스트 예제 ... 106 스핀 컨트롤 ... 109 그리드 ... 112 입력 필드: 타이핑 줄이기 ... 117 갤러리 ... 120 9장 리스트 고급 활용 ... 123 가장 간단한 작업 ... 123 동적인 내용 ... 126 인플레이션 ... 128 다시 리스트로 돌아가서 ... 129 성능 개선 ... 130 convertView 활용 ... 130 홀더 패턴 ... 133 원하는 대로 만들기 ... 137 다시 살펴봅시다 ... 144 10장 고급 위젯과 컨테이너 ... 153 날짜, 색상 선택 ... 153 시계 ... 159 진행상태 표시 ... 160 탭 ... 161 탭 구성 요소 ... 162 주의할 점 ... 162 연결과 탭 완성 ... 164 동적으로 탭 추가 ... 167 인텐트와 뷰 ... 170 플리퍼 ... 171 그 밖의 위젯 ... 177 11장 메뉴 ... 179 메뉴 종류 ... 180 옵션 메뉴 ... 180 컨텍스트 메뉴 ... 182 메뉴 예제 ... 184 메뉴 인플레이션 ... 189 메뉴 XML의 구조 ... 190 메뉴 관련 속성 ... 191 메뉴 인플레이션 ... 193 12장 글꼴 ... 195 기본 포함 글꼴 ... 195 13장 웹킷 브라우저 ... 201 단순한 브라우저 ... 201 원하는 내용 표시 ... 204 브라우저 내비게이션 ... 205 WebViewClient ... 206 설정과 옵션 ... 209 14장 팝업 메시지 ... 211 토스트 ... 211 경고창 ... 212 팝업 메시지 예제 ... 214 15장 스레드 ... 217 Handler 객체 ... 217 Message 객체 ... 218 Runnable 객체 ... 222 Handler 없이 실행 ... 222 사용자 인터페이스 스레드 ... 223 주의해야 할 점 ... 223 16장 액티비티 생명주기 ... 225 액티비티 상태 ... 225 액티비티 생명주기 ... 226 onCreate(), onDestroy() ... 226 onStart(), onRestart(), onStop() ... 227 onPause(), onResume() ... 228 부드러운 상태 변화 ... 228 3부 데이터 보관, 네트웍 서비스, API ... 231 17장 환경설정 ... 233 원하는 값 추출 ... 233 환경설정 관리 ... 234 환경설정 XML ... 235 환경설정 기능 제공 ... 236 모양새 갖추기 ... 241 환경설정 팝업 ... 244 18장 파일 ... 249 고정된 파일 ... 249 읽고 쓰기 ... 253 19장 리소스 ... 259 리소스의 종류 ... 259 문자열 ... 260 일반 문자열 ... 260 문자열 포매팅 ... 261 화면 표시 스타일 ... 261 스타일이 적용된 포매팅 ... 262 이미지 ... 266 XML ... 270 기타 리소스 ... 273 크기 ... 274 색깔 ... 274 배열 ... 275 환경에 맞는 리소스 선택 ... 276 20장 로컬 데이터베이스 ... 283 SQLite ... 284 기초 ... 285 테이블 준비 ... 286 데이터 추가 ... 287 데이터 불러오기 ... 288 SQL문 직접 지정 ... 289 일정한 형식의 쿼리 ... 289 쿼리 구문 생성 ... 290 커서 활용 ... 292 커서 구현 ... 293 데이터 직접 다루기 ... 293 21장 외부 자바 라이브러리 ... 297 제한 사항 ... 297 Ant와 JAR ... 298 스크립트 활용 ... 299 기타 사항 ... 304 22장 인터넷 연결 ... 307 REST ... 307 기본 HTTP 작업 ... 308 응답 분석 ... 310 고려 사항 ... 313 4부 인텐트 ... 315 23장 인텐트 필터 ... 317 인텐트 ... 318 인텐트 구조 ... 318 인텐트 라우팅 ... 319 인텐트 생성 ... 320 인텐트 리시버 ... 322 일시정지 문제 ... 323 24장 액티비티 실행 ... 325 액티비티 종류 ... 326 실행 ... 327 인텐트 작성 ... 327 호출 ... 327 탭 브라우징 ... 332 25장 대상 액티비티 찾기 ... 337 액티비티 선택 ... 338 메뉴 ... 341 직접 확인 ... 344 26장 화면 회전 ... 345 종료 및 재시작 ... 345 가로보기, 세로보기 ... 346 더 많은 정보 보관 ... 350 직접 처리하는 회전 작업 ... 353 화면 고정 ... 356 가속도계만 사용 ... 359 5부 컨텐트 프로바이더, 서비스 ... 361 27장 컨텐트 프로바이더 ... 363 Uri 구성 ... 364 Uri 생성 ... 364 쿼리 실행 ... 365 데이터 자동 적용 ... 367 데이터 수동 추출 ... 369 위치 ... 369 속성 읽기 ... 369 데이터 추가와 변경 ... 370 BLOB 문제 ... 371 28장 컨텐트 프로바이더 구현 ... 373 내부 구성 요소 ... 373 데이터 타입 ... 374 1단계: 컨텐트 프로바이더 클래스 생성 ... 375 onCreate() 메소드 ... 375 query() 메소드 ... 377 insert() 메소드 ... 378 update() 메소드 ... 380 delete() 메소드 ... 381 getType() 메소드 ... 382 2단계: Uri 지정 ... 383 3단계: 속성 정의 ... 383 4단계: 매니페스트 설정 ... 384 변경 사항 알림 ... 385 29장 권한 ... 387 권한 확보 ... 388 권한 요청 ... 389 AndroidManifest.xml 파일에 권한 명시 ... 390 그 밖의 권한 요청 방법 ... 391 자세한 문서와 설명 ... 392 30장 서비스 구현 ... 393 서비스 클래스 ... 394 프로세스 간 통신 ... 395 AIDL 작성 ... 396 인터페이스 구현 ... 397 AndroidManifest.xml ... 398 IPC 클라이언트 호출 ... 399 원격 서비스, 프로그램의 나머지 부분 ... 401 31장 서비스 호출 ... 403 바인딩 ... 404 서비스 호출 ... 406 서비스 연결 해제 ... 406 수동 실행 ... 407 데이터 수신 ... 407 32장 사용자 알림 ... 411 알림 메시지 종류 ... 411 기기 알림 메시지 ... 412 아이콘 ... 413 알림 메시지 예제 ... 413 6부 안드로이드의 다양한 기능 ... 419 33장 위치 기반 서비스 ... 421 위치 정보 프로바이더 ... 422 위치 확인 ... 422 변경 사항 업데이트 ... 424 목표 지점 도착 알림 ... 426 테스트 ... 427 34장 지도, MapView, MapActivity ... 429 구글 지도 사용권 계약 ... 429 구글 지도 기초 ... 430 지도 제어 기능 ... 432 확대/축소 배율 ... 432 중심 이동 ... 434 위성 사진 지도 ... 435 레이어 ... 435 오버레이 클래스 ... 436 ItemizedOverlay 표시 ... 436 화면 터치 처리 ... 438 현재 위치와 방향 ... 439 API 키 발급 ... 440 35장 전화 ... 443 TelephonyManager ... 443 전화 걸기 ... 444 36장 검색, SearchManager ... 449 검색 결과 수집 ... 449 애플리케이션 내부 검색 ... 451 검색 액티비티 작성 ... 451 매니페스트 ... 456 검색 실행 ... 458 37장 개발 도구 ... 459 계층 탐색기 ... 459 달빅 디버깅 ... 465 로그 ... 466 파일 업로드, 다운로드 ... 467 화면 캡처 ... 468 위치 지정 ... 469 전화 걸기, SMS 발송 ... 470 SD카드 ... 473 SD카드 이미지 생성 ... 473 SD카드 삽입 ... 474 38장 안드로이드 관련 정보 얻기 ... 475 질문과 대답 ... 475 안드로이드 소스 코드 ... 476 최신 소식 ... 477 부록 안드로이드 1.5 & 1.6 ... 479 안드로이드 가상 장비 ... 480 프로젝트 생성 ... 481 프로젝트 설정 ... 482 부가 기능 ... 483 추가 위젯 ... 484 소프트 키보드 ... 484 홈 화면 ... 486 스레드 ... 489 기타 ... 490 음성 인식 ... 490 IntentService ... 490 음악 재생 옵션 ... 491 MediaRecorde ... 491 찾아보기 ... 493