목차
옮긴이의 말 ... 4
지은이의 말 ... 7
CHAPTER 1 안드로이드 기초
   1.1 안드로이드란? ... 21
   1.2 안드로이드 SDK 설치 ... 21
      1.2.1 자바 개발 키트(JDK) ... 22
      1.2.2 안드로이드 SDK와 타겟 플랫폼 ... 22
   1.3 안드로이드 SDK 시험 가동 ... 29
   1.4 안드로이드 아키텍처 및 배경 지식 ... 41
      1.4.1 안드로이드 플랫폼 스택 ... 41
      1.4.2 안드로이드 런타임: 달빅 가상 머신(DVM) ... 45
   1.5 통합 개발 환경(IDE) 사용하기 ... 49
   1.6 이클립스 사용하기 ... 50
      1.6.1 웹 자료: 안드로이드 개발용 이클립스 ... 51
      1.6.2 빨리 시작하기: 이클립스 안드로이드 개발도구(ADT) 플러그인 ... 55
   1.7 넷빈즈 사용하기 ... 55
      1.7.1 웹 자료: 안드로이드 개발용 넷빈즈 ... 55
      1.7.2 빨리 시작하기: 넷빈즈용 안드로이드 플러그인(NBAndroid) ... 56
   1.8 인텔리J IDEA 커뮤니티 에디션 사용하기 ... 63
      1.8.1 웹 자료: 안드로이드 개발용 젯브레인즈 인텔리J IDEA ... 64
      1.8.2 빨리 시작하기: 인텔리J용 안드로이드 플러그인 ... 65
   1.9 정리 ... 69
CHAPTER 2 실전 개발 도구
   2.1 SDK와 개발자용 편집기만으로 코드 작성하기 ... 72
   2.2 개발 환경 구성을 위한 필수 요소 ... 73
      2.2.1 SDK 위치가 경로(PATH 환경 변수)에 있는지 확인하기 ... 73
      2.2.2 안드로이드 가상 기기(AVD) 준비하기 ... 73
   2.3 자주 사용하는 안드로이드 개발 키트 도구 ... 75
   2.4 안드로이드 도구 및 코드 편집기 사용하기 ... 76
      2.4.1 코드 편집기 선택하기 ... 76
      2.4.2 안드로이드 개발 작업에 맞게 편집기 구성하기 ... 79
   2.5 예제 안드로이드 프로젝트 ... 81
   2.6 기본 안드로이드 프로젝트 만들기 ... 82
      2.6.1 안드로이드 프로젝트 디렉터리 구조 ... 83
   2.7 예제 앱 실행 준비 ... 85
      2.7.1 디버깅 세션 시작하기 ... 85
      2.7.2 기본 생성 코드 바꾸기 ... 87
      2.7.3 프로젝트 예제 코드 빌드 및 설치 ... 88
      2.7.4 DDMS에서 앱에 대한 로그 필터 만들기 ... 88
   2.8 예제 앱 실행하기 ... 90
      2.8.1 예제 앱이 하는 일 ... 91
      2.8.2 주요 앱 파일 살펴보기 ... 97
   2.9 안드로이드 코딩 하우투 ... 106
      2.9.1 안드로이드 로그 API 사용하기 ... 106
      2.9.2 앱 GUI 초기화 코드를 한곳에 모으기 ... 110
      2.9.3 앱 액티비티 종료하기 ... 112
      2.9.4 버튼(또는 다른 뷰) 활성화/비활성화 ... 112
      2.9.5 (실행 중에 코드에서) 동적으로 컨트롤 생성하기 ... 114
      2.9.6 안드로이드 토스트 만들기 ... 116
      2.9.7 안드로이드 알림 대화상자 표시하기 ... 117
      2.9.8 안드로이드 시스템 통지 생성 및 표시 ... 117
      2.9.9 사설 앱 파일 사용하기 ... 119
      2.9.10 메뉴 만들기 ... 123
   2.10 이클립스/ADT로 예제 앱 옮기기 ... 125
      2.10.1 프로젝트 사본 만들기 ... 125
      2.10.2 ADT 플러그인이 설치된 이클립스에서 열기 ... 125
      2.10.3 프로젝트 사본에서 새 안드로이드 프로젝트 생성하기 ... 125
      2.10.4 프로젝트에서 새 실행 설정 만들기 및 테스트하기 ... 127
      2.10.5 실제 기기에 배포하기 ... 128
      2.10.6 서명된 예제 앱 APK 패키지 만들기 ... 130
   2.11 정리 ... 133
CHAPTER 3 나만의 안드로이드 스크립트 환경 만들기
   3.1 스크립트 환경 설계 ... 137
      3.1.1 스크립트 시스템 컴포넌트 ... 137
      3.1.2 스크립트 시스템에서 각 컴포넌트의 역할 ... 138
      3.1.3 리소스가 한정된 시스템용 설계 ... 140
      3.1.4 백그라운드 코드용 멀티쓰레드 ... 141
   3.2 베이직으로 프로그램 짜기 ... 142
      3.2.1 베이직 기초 지식 ... 142
      3.2.2 코코아―자바용 베이직 인터프리터 ... 143
   3.3 프로젝트 개요 ... 144
   3.4 코코아-베이직 AWT 프로젝트 ... 144
      3.4.1 코코아―베이직 AWT 앱의 구조 이해하기 ... 144
      3.4.2 코코아―베이직 AWT 데스크탑 앱 실행하기 ... 146
      3.4.3 코코아―베이직 AWT의 소스코드 살펴보기 ... 150
   3.5 코코아드로이드 프로젝트 ... 153
      3.5.1 사전 점검 목록 ... 153
      3.5.2 코코아드로이드 앱 구조 이해하기 ... 154
      3.5.3 코코아드로이드 앱 실행하기 ... 155
   3.6 정리 ... 191
CHAPTER 4 루아를 내장한 앱 만들기
   4.1 루아와 깔루아 2 ... 194
      4.1.1 루아 참고자료 ... 195
      4.1.2 깔루아 2 참고자료 ... 196
   4.2 안드로이드 자바 앱에서 깔루아 2 사용하기 ... 196
      4.2.1 개발 환경 구성하기 ... 197
   4.3 깔루아 2 프로젝트 ... 198
      4.3.1 깔루아 2 런타임 파일 프로젝트 구성하기 ... 198
      4.3.2 콘솔에서 빌드하기 ... 199
      4.3.3 IDE에서 빌드하기 ... 200
      4.3.4 깔루아 2 런타임 라이브러리 ... 200
   4.4 깔루아 2 안드로이드 인터프리터 프로젝트 ... 201
      4.4.1 프로젝트 구성하기 ... 201
      4.4.2 콘솔에서 빌드하기 ... 202
      4.4.3 IDE에서 빌드하기 ... 203
      4.4.4 깔루아 2 안드로이드 인터프리터 실행하기 ... 204
      4.4.5 깔루아 2를 내장하기 위한 기초지식 ... 205
   4.5 깔루아드로이드 프로젝트 ... 210
      4.5.1 깔루아드로이드 실행하기 ... 210
      4.5.2 메인 GUI 쓰레드 또는 별도 쓰레드에서 루아 코드 실행하기 ... 219
      4.5.3 깔루아 2에 안드로이드 앱 메서드 공개하기 ... 224
      4.5.4 루아 함수인 것처럼 앱의 메서드 호출하기 ... 229
      4.5.5 앱 시작 스크립트 구현하기 ... 231
   4.6 정리 ... 239
CHAPTER 5 SL4A 소개: 안드로이드용 스크립트 계층
   5.1 안드로이드용 스크립트 계층이란? ... 242
      5.1.1 SL4A에 대해 ... 242
      5.1.2 SL4A 라이선스 ... 243
      5.1.3 SL4A 사용하기 ... 243
      5.1.4 SL4A 참고자료 ... 243
      5.1.5 SL4A 코드 저장소 ... 244
   5.2 에뮬레이터에서 SL4A 실행하기 ... 245
      5.2.1 개발 환경 구성 ... 245
      5.2.2 SL4A APK 내려받기 ... 245
      5.2.3 에뮬레이터에 SL4A APK 설치하기 ... 246
      5.2.4 에뮬레이터에서 SL4A 실행하기 ... 247
      5.2.5 SL4A 인터프리터 설치하기 ... 250
   5.3 안드로이드용 스크립트 계층에 대한 이해 ... 257
      5.3.1 JSON을 사용한 통신 ... 258
      5.3.2 SL4A 아키텍처 요약 ... 258
      5.3.3 로컬 프록시 구현 살펴보기 ... 260
   5.4 SL4A 소스코드 가져오기 ... 266
      5.4.1 SL4A 소스코드 복제 ... 266
   5.5 SL4A의 Hello World 예제 ... 270
   5.6 정리 ... 271
CHAPTER 6 HTML/자바스크립트/AIR로 GUI 만들기
   6.1 웹 애플리케이션 프로젝트 설정 ... 275
      6.1.1 안드로이드 프로젝트 ... 276
      6.1.2 자바스크립트에서 안드로이드 메서드 호출하기 ... 279
      6.1.3 자바스크립트 앱 ... 281
      6.1.4 그래픽 및 애니메이션 ... 287
      6.1.5 사용자 상호작용 ... 292
      6.1.6 자바스크립트 요약 ... 295
   6.2 AIR로 안드로이드용 플래시/플렉스 앱 사용하기 ... 296
      6.2.1 안드로이드용 플렉스 애플리케이션 작성 ... 297
      6.2.2 빌드 및 배포 ... 298
      6.2.3 MXML로 플렉스 UI 생성하기 ... 303
      6.2.4 액션스크립트 작성 ... 306
   6.3 정리 ... 312
CHAPTER 7 REST로 페이스북/트위터 사용하기
   7.1 REST에 대한 이해 ... 315
      7.1.1 REST와 JSON ... 316
      7.1.2 안드로이드 앱에서 REST ... 318
      7.1.3 비동기 작업 ... 322
   7.2 트위터 ... 325
      7.2.1 코드 예제 ... 327
      7.2.2 사용자 대신 트윗 보내기 ... 332
      7.2.3 사용자에게 트윗할지 물어보기 ... 333
   7.3 페이스북 API 이해하기 ... 336
      7.3.1 페이스북과 인증 ... 336
      7.3.2 페이스북의 소셜 그래프 API ... 340
   7.4 정리 ... 343
CHAPTER 8 안드로이드에서 구글 앱엔진 사용하기
   8.1 구글 앱엔진 소개 ... 347
      8.1.1 GAE 시작하기 ... 348
      8.1.2 GAE를 이클립스와 함께 사용하기 ... 350
      8.1.3 GAE 프로젝트 구조 ... 351
      8.1.4 구글 앱엔진 서비스 요금 ... 354
      8.1.5 구글 앱엔진 서비스 ... 356
   8.2 예제 GAE 애플리케이션 살펴보기 ... 360
      8.2.1 최고 점수 서비스 추가하기 ... 364
      8.2.2 최고 점수 서비스 조회하기 ... 367
   8.3 안드로이드에서 GAE 서비스 사용하기 ... 372
      8.3.1 TopTen 액티비티 살펴보기 ... 376
      8.3.2 게임 사용자 보기 ... 381
      8.3.3 사용자 위치 보기(MapView) ... 383
   8.4 정리 ... 390
CHAPTER 9 게임 개발: 그래픽스
   9.1 안드로이드 뷰 패키지 소개 ... 393
      9.1.1 XML 레이아웃 이해하기 ... 394
      9.1.2 코드에서 배치하기 ... 399
      9.1.3 사용자 정의 컴포넌트 ... 403
   9.2 Drawable 클래스에 대한 이해 ... 413
      9.2.1 Drawable 클래스 ... 414
      9.2.2 Drawable 하위 클래스 ... 146
      9.2.3 NinePatchDrawable ... 420
   9.3 직접 그리기 ... 423
   9.4 정리 ... 428
CHAPTER 10 게임 개발: 애니메이션
   10.1 안드로이드 애니메이션 ... 430
      10.1.1 뷰와 애니메이션 만들기 ... 432
   10.2 프레임 단위 애니메이션 ... 446
      10.2.1 Views와 SurfaceViews 함께 사용하기 ... 453
   10.3 정리 ... 455
CHAPTER 11 앱 인벤터(App Inventor)
   11.1 앱 인벤터 설치하기 ... 458
   11.2 블록 사용하기 ... 462
      11.1.1 블록의 유형 ... 464
      11.2.2 블록 편집기로 앱 로직 만들기 ... 473
   11.3 앱 인벤터의 한계 ... 480
      11.3.1 제한적인 컴포넌트 집합 ... 481
      11.3.2 블록 편집기의 제약 ... 482
   11.4 정리 ... 483
INDEX ... 484
닫기