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 데이