목차 |
목차
추천사 = 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
|