목차

1장 안드로이드 프레임워크 개요 1.1 안드로이드 프레임워크의 소스코드 구조 1.2 부팅 프로세스로 알아보는 안드로이드 프레임워크 2장 안드로이드 개발 환경 구축 2.1 호스트 환경 구성 - 2.1.1 VirtualBox 설치 - 2.1.2 우분투 설치 2.2 안드로이드 시스템 빌드 환경 구축 - 2.2.1 빌드 유틸리티 - 2.2.2 Repo 설치 - 2.2.3 안드로이드 시스템의 소스코드 내려받기 - 2.2.4 안드로이드 시스템 빌드 2.3 안드로이드 SDK 개발 환경 구축 - 2.3.1 이클립스 개발 환경 구축 - 2.3.2 안드로이드 SDK starter 패키지 다운로드 - 2.3.3 이클립스용 ADT 플러그인 설치 - 2.3.4 안드로이드 SDK 경로 설정 - 2.3.5 안드로이드 SDK에 플랫폼 및 예제 프로그램 추가하기 2.4 안드로이드 애플리케이션 개발 - 2.4.1 Hello 애플리케이션 작성 2.5 안드로이드 시스템 소스 레벨 디버깅 - 2.5.1 애플리케이션 프레임워크 소스 로딩 - 2.5.2 HelloWorld 프레임워크 소스 레벨 디버깅 3장 init 프로세스 3.1 init 프로세스의 실행 과정 3.2 init 프로세스의 소스코드 분석 3.3 init.rc 파일 분석 및 실행 - 3.3.1 액션 리스트 - 3.3.2 서비스 리스트 - 3.3.3 init.rc 파싱 코드 분석 - 3.3.4 액션 리스트 및 서비스 리스트의 실행 3.4 디바이스 노드 파일 생성 - 3.4.1 정적 디바이스 노드 생성 - 3.4.2 동적 디바이스 감지(HOT PLUG) 3.5 프로세스 종료와 재시작 - 3.5.1 프로세스 재시작 코드 분석 3.6 프로퍼티 서비스 - 3.6.1 프로퍼티 초기화 - 3.6.2 프로퍼티 변경 요청 처리 3.7. 정리 4장 JNI와 NDK 4.1 안드로이드와 JNI - 4.1.1 왜 안드로이드에서 JNI를 알아야 하는가? 4.2 JNI의 기본 원리 이해 - 4.2.1 자바에서 C 라이브러리 함수 호출하기 - 4.2.2 정리 4.3 JNI 함수 이용하기 - 4.3.1 JNI 함수를 활용하는 예제 프로그램의 구조 - 4.3.2 자바측 코드 살펴보기 - 4.3.3 JNI 네이티브 함수의 코드 살펴보기 - 4.3.4 컴파일 및 실행 결과 - 4.3.5 안드로이드에서의 활용 예 4.4 C 프로그램에서 자바 클래스 실행하기 - 4.4.1 호출 API 사용 예제 - 4.4.2 컴파일 및 실행 - 4.4.3 안드로이드에서 활용 예 : Zygote 프로세스 4.5 JNI 네이티브 함수 직접 등록하기 - 4.5.1 라이브러리 로드 시에 JNI 네이티브 함수 등록하기 - 4.5.2 안드로이드에서의 활용 예 : app_process 프로세스 4.6 안드로이드 NDK(Native Development Kit)로 개발하기 - 4.6.1 안드로이드 NDK 환경 설정 - 4.6.2 안드로이드 NDK 개발 따라하기 5장 Zygote 5.1 Zygote란 무엇인가? - 5.1.1 Zygote를 통한 프로세스의 생성 5.2 app_process로부터 ZygoteInit class 실행 - 5.2.1 AppRuntime 객체 생성 - 5.2.2 AppRuntime 객체 실행 - 5.2.3 달빅 가상 머신의 생성 - 5.2.4 ZygoteInit 클래스의 실행 5.3 ZygoteInit 클래스의 기능 - 5.3.1 /dev/socket/zygote 소켓 바인딩 - 5.3.2 애플리케이션 프레임워크에 속한 클래스와 플랫폼 자원의 로딩 - 5.3.3 SystemServer 실행 - 5.3.4 새로운 안드로이드 애플리케이션 실행 6장 안드로이드 서비스 개요 6.1 예제 프로그램 : 안드로이드 서비스 동작 이해 6.2 안드로이드 서비스 분류 6.3 안드로이드 애플리케이션 서비스 - 6.3.1 애플리케이션 서비스의 분류 - 6.3.1.1 로컬 서비스 - 6.3.1.2 리모트 서비스 6.4 안드로이드 시스템 서비스 - 6.4.1 시스템 서비스의 분류 - 6.4.1.1 네이티브 시스템 서비스 - 6.4.1.2 자바 시스템 서비스 6.5 시스템 서비스의 실행 - 6.5.1 미디어 서버의 실행 코드 분석 - 6.5.2 시스템 서버의 실행 코드 분석 6.6 안드로이드 서비스 프레임워크와 바인더 드라이버 개요 및 용어 정리 7장 안드로이드 바인더 IPC 7.1 리눅스 메모리 공간과 바인더 드라이버 7.2 안드로이드 바인더 모델 - 7.2.1 바인더 IPC 데이터의 전달 - 7.2.2 바인더 IPC 데이