목차

1장 안드로이드 게임 개발을 시작하며
필요한 능력
안드로이드 개발의 기초 지식
리눅스와 셸 스크립팅 기초 지식
필요한 소프트웨어 도구들
개발용 리눅스 컴퓨터 준비
안드로이드 소스 얻기
네이티브 안드로이드 라이브러리 추출
ARM 프로세서용 GNU 도구사슬 설치
커스텀 컴파일 스크립트 작성
안드로이드 개발 환경 설정
요약

2장 안드로이드 네이티브 코드 다루기
기본적인 안드로이드 네이티브 프로그램
AVD 생성
안드로이드 프로젝트 만들기
안드로이드 응용프로그램의 구조
공유 라이브러리의 컴파일과 시험
기호 누락 문제 해결
기기에서 동적 라이브러리를 검사
strace를 이용한 디버깅
정적 링크
안드로이드 응용프로그램에서 시험해 보기
요약

3장 순수 Java로 안드로이드 게임 만들기
안드로이드 게임 개발 대 Java ME 게임 개발
첫 Java 게임, Space Blaster 만들기
게임의 전반적인 구조
프로젝트 생성
게임의 활동 클래스 작성
게임 레이아웃 작성
게임의 구현
키 및 터치 사건 처리
에뮬레이터에서 시험해 보기
요약

4장 Java 게임 계속: 다각형 다루기
이번 장의 구성
안드로이드에서 다각형 그리기를 힘들게 하는 걸림돌들
직사각형 그리기에 관련된 걸림돌
Asteroids를 위한 다각형 클래스 만들기
Asteroids에 사용할 PolygonSprite 클래스
게임의 전반적인 구조
프로젝트 만들기
게임 레이아웃 만들기
프로젝트에 쓰이는 자원들
게임의 수명 주기
키 입력과 화면 터치 사건 처리
Asteroids를 에뮬레이터에서 시험
요약

5장 JNI를 이용한 혼성 OpenGL 3D 그래픽
모바일 기기의 성능
Java로 OpenGL 다루기
Java 전용 버전의 주 활동
표면 뷰
GLThread
입방체 렌더러
Cube 클래스
네이티브 방식의 OpenGL 렌더링
주 활동
네이티브 연동 클래스
기존 클래스들 고치기
네이티브 입방체 렌더러
네이티브 버전의 입방체 정의
예제의 컴파일과 실행
OpenGL 게임을 안드로이드로 이식할 때 주의해야 할
사항들
베일이 벗겨지다

6장 3D 슈팅 게임 에피소드 I: 안드로이드용 Wolfenstein 3D
사전 준비
이번 장 소스 코드 내려 받기
Wolf 3D 소개
게임의 전반적인 구조
Wolf 3D의 Java 클래스들
게임의 주 활동
Wolf 3D의 주 메뉴
키 입력과 터치 사건 처리
게임의 주 루프로 진입
네이티브 콜백 호출
배경 음악과 효과음 처리
게임 컨트롤러 터치 사건 처리부
게임 컨트롤러 구현
음향 클래스들
네이티브 연동 클래스
네이티브 계층
주 게임 루프의 시작
콜백: C에서 Java 메서드를 호출
네이티브 라이브러리 만들기
Makefile 작성
JNI 헤더와 DSO 생성
Wolf 3D를 에뮬레이터로 시험
요약

7장 3D 슈팅 게임 에피소드 II: 안드로이드용 Doom
Java/C 조합의 위력
Doom을 모바일 기기로 이식하기
Doom 게임의 전반적인 구조
Java 계층의 주 활동
생성 처리부
게임 UI 레이아웃
메뉴 생성 및 선택 처리부
키 입력 및 터치 사건 처리부
네이티브 콜백 처리부
게임 컨트롤러
음향 처리 클래스들
네이티브 연동 클래스
콜백 청취자 인터페이스
네이티브 메서드들
C에서 Java로의 콜백들
네이티브 계층
네이티브 메서드 구현
원본 코드 고치기
Doom 네이티브 라이브러리(DSO) 컴파일하기
안드로이드용 Doom을 에뮬레이터로 시험
프로젝트 완수!

부록 A 설치 및 컴파일 요령
응용프로그램 서명
키 저장소 만들기
응용프로그램 서명
안드로이드 NDK를 이용해서 제6장, 7장 예제 라이브러리 컴파일하기
NDK 1.5로 Wolf 3D 컴파일하기
공유 라이브러리 컴파일
NDK 1.5에서 OpenGL ES 사용하기
NDK 1.6으로 Doom 네이티브 라이브러리 컴파일하기
책을 마치며

부록 B NDK r3 활용
NDK r3으로 제5장 OpenGL 입방체 예제 컴파일하기
폴더 구조 준비
Eclipse 프로젝트 준비
네이티브 라이브러리의 컴파일 및 링크
Java 소스 수정 및 실행
NDK r3으로 제6장 Wolfenstein 3D 컴파일하기

찾아보기