서명 안드로이드의 모든 것 NDK : C/C++ 라이브러리를 이용한 안드로이드 앱 개발 방법
목차
목차
추천사 = 3
지은이의 말 = 4
CHAPTER 00 들어가며 = 15
CHAPTER 01 안드로이드 NDK는 무엇인가?
 1.1 안드로이드 NDK의 등장 배경 = 19
 1.2 NDK에서 제공되는 것 = 20
 1.3 개발 환경 = 21
  1.3.1 JDK 설치 = 22
  1.3.2 안드로이드 SDK 설치 = 22
  1.3.3 이클립스와 ADT 플러그인 설정 = 29
  1.3.4 NDK 개발 환경 설정 = 33
  1.3.5 PDK 설정 = 35
 1.4 안드로이드 개발 방법 = 39
  1.4.1 SDK를 이용한 개발 방법 = 40
  1.4.2 NDK를 이용한 개발 방법 = 48
  1.4.3 PDK를 이용한 개발 방법 소개 및 동작 구조 = 49
  1.4.4 Android Debug Bridge = 53
CHAPTER 02 NDK 개발을 위한 안드로이드 애플리케이션 기초 쌓기
 2.1 안드로이드 애플리케이션의 구조 = 55
 2.2 안드로이드 애플리케이션 구성 요소 = 58
  2.2.1 액티비티 = 58
  2.2.2 서비스 = 59
  2.2.3 BroadcastReceiver = 59
  2.2.4 ContentProvider = 59
  2.2.5 인텐트 = 60
 2.3 안드로이드 애플리케이션의 라이프 사이클 = 60
  2.3.1 액티비티 라이프 사이클 = 61
  2.3.2 서비스 라이프 사이클 = 62
  2.3.3 BroadcastReceiver 라이프 사이클 = 62
 2.4 안드로이드 애플리케이션의 퍼미션 = 63
CHAPTER 03 본격 NDK 개발!
 3.1 네이티브 라이브러리 개발을 위해 알아야 할 것 = 66
 3.2 JNI = 67
  3.2.1 JNA = 68
  3.2.2 SWIG = 68
  3.2.3 JNI = 69
 3.3 JNI 구현 순서 = 69
 3.4 자바에서 네이티브 코드 호출하기 = 72
 3.5 네이티브 코드에서 자바로 접근하기 = 73
 3.6 x86에서 JNI 연습 = 76
 3.7 안드로이드 Makefile = 89
  3.7.1 Android.mk 분석 = 90
  3.7.2 Application.mk 분석 = 92
 3.8 C와 C++에서 JNI 구현 시 차이점 = 93
 3.9 SDK, NDK, PDK 로그 출력 = 96
  3.9.1 SDK 로그 출력 = 96
  3.9.2 NDK 로그 출력 = 96
  3.9.3 PDK 로그 출력 = 98
 3.10 예제1: 더하기 프로그램 = 98
  3.10.1 안드로이드 새 프로젝트 생성하기 = 98
  3.10.2 자바 애플리케이션의 기본 레이아웃 변경하기 = 103
  3.10.3 자바 코드 수정하기 = 105
  3.10.4 JNI 규약에 맞는 라이브러리 생성하기 = 107
  3.10.5 .c 파일을 만들고 컴파일하기 = 110
 3.11 예제2: 외부 라이브러리 활용하기 = 112
 3.12 라이브러리 의존성 문제 = 116
 3.13 JNI_OnLoad = 120
 3.14 한글 처리 = 126
 3.15 자바와 NDK의 속도 차이 = 129
 3.16 네이티브 스레드로 자바 콜백 만들기 = 131
 3.17 안드로이드 디버깅 = 138
  3.17.1 addr2line = 138
  3.17.2 gdb를 이용한 디버깅 = 143
  3.17.3 프로파일링 = 146
CHAPTER 04 NDK에서의 그래픽 처리
 4.1 bitmap-plasma = 149
 4.2 NDK 3D = 156
  4.2.1 자바 애플리케이션에서의 OpenGL ES 사용 = 158
  4.2.2 NDK에서의 OpenGL ES 1.x = 162
 4.3 SDL 포팅 = 178
  4.3.1 SDL이란 무엇인가? = 178
  4.3.2 안드로이드 자바와 SDL의 연결 = 182
  4.3.3 SDL 활용 = 206
 4.4 Native Activity = 222
  4.4.1 프레임워크 내부와 연결점 = 222
  4.4.2 Native Activity를 만들어 보자 = 246
 4.5 STL과 Neon의 사용 = 257
  4.5.1 STL = 257
  4.5.2 NEON = 259
CHAPTER 05 NDK의 확장
 5.1 플랫폼 안에서 사용되는 네이티브 라이브러리 = 263
 5.2 NDK용 Android.mk와 전체 소스용 Android.mk의 차이점 = 269
 5.3 skia 라이브러리로 애플리케이션 만들기 = 271
 5.4 안드로이드 전체 소스 컴파일 방법 = 278
 5.5 자바 애플리케이션에서 GPIO 컨트롤하기 = 282
CHAPTER 06 멀티미디어
 6.1 안드로이드 네이티브 AudioFlinger 활용과 OpenSL ES = 312
  6.1.1 네이티브 AudioFlinger 제어 = 312
  6.1.2 OpenSL ES = 345
 6.2 네이티브에서 Surface 접근하기 = 359
  6.2.1 안드로이드처럼 직접 Surface를 사용하려면 어떻게 해야 할까? = 359
  6.2.2 테스트용 애플리케이션 = 370
 6.3 OpenMAX AL = 380
  6.3.1 OpenMAX AL 개요 = 380
  6.3.2 동작 구조 = 382
  6.3.3 안드로이드 OpenMAX AL = 383
  6.3.4 OpenMAX AL 예제 = 390
 6.4 안드로이드에서 FFmpeg 활용 = 397
  6.4.1 안드로이드 멀티미디어 구조 = 397
  6.4.2 안드로이드 프레임워크에서의 멀티미디어 = 398
  6.4.3 안드로이드 애플리케이션 계층에서의 멀티미디어 = 401
  6.4.4 FFmpeg 개요 = 402
  6.4.5 FFmpeg의 구성 = 404
  6.4.6 안드로이드 FFmpeg = 406
APPENDIX 안드로이드는 무엇인가?
 A.1 안드로이드의 개념 = 451
 A.2 안드로이드 역사 = 452
 A.3 안드로이드 특징 = 454
 A.4 안드로이드 라이선스와 오픈 소스 라이선스 = 455
  A.4.1 Dalvik VM = 456
 A.5 안드로이드 시스템 구조 = 457
 A.6 우분투와 VirtualBox로 NDK 개발 환경 설정하기 = 470
찾아보기 = 488