logo
logo
x
바코드검색
BOOKPRICE.co.kr
책, 도서 가격비교 사이트
바코드검색

인기 검색어

실시간 검색어

검색가능 서점

도서목록 제공

안드로이드 아나토미 시스템 서비스

안드로이드 아나토미 시스템 서비스

김태연, 박지훈, 김상엽, 이왕재 (지은이)
개발자가행복한세상
40,000원

일반도서

검색중
서점 할인가 할인률 배송비 혜택/추가 실질최저가 구매하기
알라딘 로딩중
yes24 로딩중
교보문고 로딩중
11st 로딩중
영풍문고 로딩중
쿠팡 로딩중
쿠팡로켓 로딩중
G마켓 로딩중
notice_icon 검색 결과 내에 다른 책이 포함되어 있을 수 있습니다.

중고도서

검색중
서점 유형 등록개수 최저가 구매하기
알라딘 판매자 배송 7개 5,790원 >
로딩중

eBook

검색중
서점 정가 할인가 마일리지 실질최저가 구매하기
로딩중

책 이미지

안드로이드 아나토미 시스템 서비스
eBook 미리보기

책 정보

· 제목 : 안드로이드 아나토미 시스템 서비스 
· 분류 : 국내도서 > 컴퓨터/모바일 > 모바일 프로그래밍 > 안드로이드
· ISBN : 9788996603108
· 쪽수 : 550쪽
· 출판일 : 2011-08-22

책 소개

안드로이드 플랫폼 핵심 컴포넌트의 동작원리를 분석한 최초의 서적. 안드로이드 플랫폼을 구성하고 있는 핵심 컴포넌트인 네이티브 시스템 서비스의 동작원리를 심도 있게 분석하고 있다. 저자들이 안드로이드 프레임워크의 주요 소스코드를 직접 분석하고 정리하였으며, 프레임워크의 동작을 이해하기 위한 각종 기초 지식과 안드로이드 플랫폼만의 특징을 자세히 다루고 있다.

목차

01장. 안드로이드 아나토미 소개
1.1 인사이드 안드로이드와의 연결성
1.2 본서의 서술 스타일
1.3 정리

02장. 안드로이드 개발 환경 구축
2.1 호스트 환경 구성
2.1.1 VirtualBox 설치
2.1.2 우분투(64bit) 설치
2.2 안드로이드 시스템 빌드 환경 구축
2.2.1 플랫폼 빌드에 필요한 유틸리티
2.2.2 JDK 설치
2.2.3 필수 패키지 설치
2.2.4 Repo 설치 24
2.2.5 안드로이드 시스템의 소스 코드 내려받기
2.2.6 안드로이드 시스템 빌드
2.3 넥서스 원에 안드로이드 시스템 설치
2.3.1 USB 장치 접근 설정 28
2.3.2 넥서스 원 빌드를 위한 환경 설정
2.3.3 넥서스 원에 안드로이드 시스템 설치하기
2.4 안드로이드 로그 시스템
2.4.1 안드로이드 로그 시스템의 구성
2.4.2 이클립스에서 로그 생성하고 출력하기
2.4.3 logcat 사용하기
2.5 GDB를 이용한 디버깅
2.5.1 GDB를 이용한 디버깅 준비하기 - 타겟 시스템
2.5.2 GDB를 이용한 디버깅 준비하기 - 호스트 시스템
2.5.3 logcat 디버깅

03장. 안드로이드 시스템 서비스
3.1 시스템 서비스의 종류
3.1.1 네이티브 시스템 서비스
3.1.2 하드웨어 서비스
3.1.3 코어 플랫폼 서비스
3.2 시스템 서비스의 생성과정
3.2.1 미디어 서버의 실행 코드 분석
3.2.2 시스템 서버의 실행 코드 분석
3.3 시스템 서비스의 프로세스와 쓰레드
3.3.1 미디어 서버와 쓰레드
3.3.2 시스템 서버와 쓰레드
3.4 서비스 프레임워크
3.4.1 서비스 프레임워크 개요
3.4.2 예제를 이용한 서비스 프레임워크의 이해
3.5 자바 네이티브 인터페이스
3.5.1 JNI 네이티브 메서드 등록
3.5.2 자바에서 네이티브 메서드 호출하기
3.5.3 네이티브에서 자바 클래스 사용하기
3.6 하드웨어 추상 계층 (HAL)
3.6.1 HAL 종류
3.6.2 HAL 구조
3.6.3 HAL의 동적 로딩 예제
3.7 레이어 인터렉션
3.7.1 레이어 인터렉션의 종류
3.7.2 “가” 레이어 인터렉션 예제
3.7.3 나 레이어 인터렉션 예제
3.7.4 정리

04장. Advanced 바인더 IPC
4.1 바인더 IPC 개요
4.1.1 서비스 클라이언트와 서비스 서버
4.1.2 컨텍스트 매니저와 서비스 매니저
4.1.3 바인더 드라이버
4.2 구성요소간 상호작용
4.2.1 시스템 서비스 등록
4.2.2 시스템 서비스 검색
4.2.3 시스템 서비스 사용
4.2.4 정리
4.3 네이티브 리모트 서비스
4.3.1 정방향 리모트 서비스FRS 생성
4.3.2 역방향 리모트 서비스BRS 생성
4.3.3 리모트 서비스 프록시의 공유
4.3.4 정방향 리모트 서비스 예제
4.4 안드로이드 공유 메모리
4.4.1 공유 메모리 개요
4.4.2 애쉬맴 개요
4.4.3 애쉬맴 생성 (서비스 서버)
4.4.4 애쉬맴 사용 (서비스 클라이언트)
4.5 파일 식별자 전달 메커니즘
4.5.1 파일 식별자 전달 개요
4.5.2 애쉬맴 파일 식별자 요청 과정
4.5.3 애쉬맴 파일 식별자 반환 과정
4.6 MemoryHeapBase 리모트 서비스
4.6.1 MemoryHeapBase 리모트 서비스 구조
4.6.2 MemoryHeapBase 예제 애플리케이션
4.6.3 화면 캡쳐 요청 (서비스 클라이언트)
4.6.4 화면 캡쳐 (서비스 서버)
4.6.5 공유 메모리 사용 (서비스 클라이언트)
4.7 MemoryBase 리모트 서비스
4.7.1 MemoryBase 리모트 서비스 구조
4.7.2 MemoryBase 예제 애플리케이션
4.7.3 MemoryBase 생성 (서비스 서버)
4.7.4 MemoryBase 사용 (서비스 클라이언트)

05장. 안드로이드 오디오 시스템
5.1 오디오 시스템의 개요
5.1.1 오디오 시스템의 역할
5.1.2 PCM 데이터
5.1.3 트랙과 플레이백 쓰레드
5.1.4 오디오 장치 소개
5.2 오디오 시스템의 구조
5.2.1 오디오 시스템 계층별 구성요소
5.2.2 오디오 시스템 아키텍쳐
5.2.3 오디오 HAL 구조
5.3 오디오 플링거 서비스 초기화
5.3.1 오디오 HAL의 결정
5.3.2 출력 스트림과 플레이백 쓰레드 생성
5.4 오디오 출력
5.4.1 오디오 출력 애플리케이션
5.4.2 오디오 출력의 동작 과정
5.4.3 트랙 생성 요청 (서비스 클라이언트)
5.4.4 트랙 생성 과정 (서비스 서버)
5.4.5 트랙 공유 메모리 생성
5.4.6 오디오 트랙 컨트롤 블록 생성
5.4.7 트랙 생성
5.4.8 트랙 공유 메모리 참조 (서비스 클라이언트)
5.4.9 트랙 활성화 요청 (서비스 클라이언트)
5.4.10 트랙 활성화 (서비스 서버)
5.4.11 PCM 데이터 출력 요청 (서비스 클라이언트)
5.4.12 PCM 데이터 출력 준비 (서비스 서버)
5.4.13 PCM 데이터 리샘플링과 믹싱
5.4.14 PCM 데이터 출력
5.4.15 오디오 출력의 모든 것 (삽질과 굴삭기)

06장. 서피스 플링거 서비스
6.1 서피스 플링거 서비스 소개
6.1.1 다양한 종류의 안드로이드 화면
6.1.2 레이어 합성
6.1.3 OpenGL ES와 EGL
6.1.4 현재 프레임과 드로잉 프레임
6.1.5 그래픽 버퍼 공유
6.1.6 프레임 버퍼와 픽셀 포맷
6.2 서피스 플링거 서비스 구조
6.2.1 서피스 플링거 서비스 계층별 구성요소
6.2.2 서피스 플링거 서비스 아키텍처
6.3 서피스 플링거 서비스 초기화
6.3.1 SurfaceFlinger 클래스의 인스턴스 생성
6.3.2 메인 디스플레이 초기화
6.3.3 네이티브 윈도우 생성
6.3.4 EGL 초기화6
6.3.5 디스플레이 공유 메모리FRS 생성
6.3.6 부트 애니메이션
6.4 핵심기능 분석 (푸시 버퍼 서피스)
6.4.1 화면 출력 애플리케이션
6.4.2 서피스 플링거 서비스 연결 요청 (서비스 클라이언트)
6.4.3 서피스 플링거 서비스 연결(서비스 서버)
6.4.4 푸시 버퍼 서피스 생성 요청 (서비스 클라이언트)
6.4.5 푸시 버퍼 서피스 생성(서비스 서버)
6.4.6 푸시 버퍼 등록 요청(서비스 클라이언트)
6.4.7 푸시 버퍼 등록(서비스 서버)
6.4.8 레이어 상태 변경 요청 (서비스 클라이언트)
6.4.9 레이어 상태 변경(서비스 서버)
6.4.10 푸시 버퍼 출력 요청 (서비스 클라이언트)
6.4.11 푸시 버퍼 출력 (서비스 서버)

07장. 카메라 서비스
7.1 카메라 서비스 소개
7.1.1 카메라 하드웨어의 이해
7.1.2 카메라 서비스의 주요 기능
7.2 카메라 서비스 구조와 생성
7.2.1 카메라 서비스 계층 분석 및 구성 요소
7.2.2 카메라 서비스 아키텍쳐
7.2.3 카메라 서비스 생성
7.3 예제를 통한 카메라 서비스 동작의 이해
7.4 카메라 서비스 연결
7.4.1 카메라 서비스 연결 요청 (애플리케이션 프레임워크)
7.4.2 카메라 서비스 연결 요청 (서비스 클라이언트)
7.4.3 카메라 서비스 연결 (서비스 서버)
7.4.4 카메라 HAL 초기화
7.4.5 카메라 클라이언트FRS 리모트 서비스 생성
7.4.6 카메라 클라이언트FRS 리모트 서비스 콜백 함수 등록 (카메라 HAL)
7.4.7 카메라BRS 리모트 서비스 콜백 함수 등록
7.4.8 카메라 애플리케이션 콜백 함수 등록
7.5 카메라 영상 서피스 설정
7.5.1 카메라 영상 서피스 설정 요청 (애플리케이션 프레임워크)
7.5.2 카메라 영상 서피스 설정 요청 (서비스 클라이언트)
7.5.3 카메라 영상 서피스 설정 (서비스 서버)
7.6 카메라 설정 정보 획득
7.6.1 카메라 설정 정보 요청 (애플리케이션 프레임워크)
7.6.2 카메라 설정 정보 요청(서비스 클라이언트)
7.6.3 카메라 설정 정보 획득(서비스 서버)
7.6.4 카메라 설정 관리 클래스
7.7 카메라 설정 변경
7.7.1 사용자 카메라 설정 변경 요청(애플리케이션 프레임워크)
7.7.2 사용자 카메라 설정 변경 요청(서비스 클라이언트)
7.7.3 사용자 카메라 설정 변경(서비스 서버)
7.7.4 카메라 영상 데이터 버퍼 할당
7.8 카메라 미리보기
7.8.1 미리보기 시작 요청(애플리케이션 프레임워크)
7.8.2 미리보기 시작 요청(서비스 클라이언트)
7.8.3 미리보기 시작(서비스 서버)
7.8.4 프리뷰 쓰레드 생성 (카메라 HAL)
7.8.5 미리보기 영상 데이터 전달
7.9 카메라 사진 촬영
7.9.1 사진 촬영 요청(애플리케이션 프레임워크)
7.9.2 사진 촬영 요청(서비스 클라이언트)
7.9.3 사진 촬영 (서비스 서버)
7.9.4 픽쳐 쓰레드 생성 (카메라 HAL)
7.9.5 사진 촬영 데이터 전달 이해

저자소개

김태연 (지은이)    정보 더보기
부산대학교 컴퓨터 공학과 대학원 박사과정에 재학 중이며 소프트웨어 공학을 전공하고 있다. 안드로이드 휴대폰 개발에 참여 했으며, 현재 서울 안드로이드 플랫폼 스터디를 이끌고 있다. 저서로는 「인사이드 안드로이드」, 「안드로이드 아나토미」가 있다. 대외적으로 삼성전자 첨단기술연수소에서 2년간 「안드로이드 플랫폼 분석 및 설계 과정」을 강의하고 있으며, TOMPA 안드로이드 분과 출제위원이다.
펼치기
박지훈 (지은이)    정보 더보기
경성대학교 컴퓨터 과학과를 졸업 하였으며, 재학중 삼성 소프트웨어 멤버십에서 임베디드 리눅스 관련 프로젝트를 진행했다. 현재는 반도체 업계에서 SoC의 테스트 업무를 수행하고 있다. 저서로는 「인사이드 안드로이드」, 「안드로이드 아나토미」가 있다.
펼치기
김상엽 (지은이)    정보 더보기
반도체 업계에서 안드로이드 기반 소프트웨어 개발 업무를 하고 있다. 유럽향 안드로이드 폰 양산에 참여하였으며, 카메라와 시스템 파트를 담당하였다. 현재는 사운드 관련 업무를 맡고 있다.
펼치기
이왕재 (지은이)    정보 더보기
삼성 소프트웨어 멤버십에서 ARM 관련 프로젝트를 진행했고, 현재 반도체 업계에서 그래픽 디바이스 드라이버 업무를 수행하며 안드로이드 관련 프로젝트에 참여 하고 있다. 업무와 맞물린 안드로이드 플랫폼의 서피스 플링어 서비스와 그래픽스에 관심을 가지고 있다. 저서로는 「안드로이드 아나토미」가 있다.
펼치기

책속에서

『인사이드 안드로이드』를 통해 안드로이드 플랫폼을 구성하고 있는 근본원리에 관한 분석 및 집필을 마친 후 드는 강한 지적 호기심은 실제 시스템 서비스들이 근본원리 위에서 어떻게 동작하는지에 관한 것이었다. 그러나 시스템 서비스의 소스 분석에는 다양한 분야의 스터디 구성원이 필요했으며, 실제 서비스를 구현한 코드의 양은 기본적인 구성요소의 구현 코드보다도 적게는 10배에서 많게는 100배에 이를 정도로 매우 방대하였다. 따라서 분석을 해 보겠다는 마음을 먹고 효율적인 진행을 위한 참고문헌을 찾던 중 시스템 서비스를 설명하고 있는 유일한 서적을 찾게 되었다. 이에 안드로이드 플랫폼을 함께 분석할 스터디 구성원과 전문 번역가를 섭외하여 3개월에 걸쳐 플랫폼 스터디를 진행했지만 결과는 만족스럽지 못하였다. 인사이드 안드로이드를 집필할 당시의 스터디 구성원과는 다르게, 새롭게 구성된 스터디의 참여자들은 안드로이드 플랫폼에 익숙치 않았으며, 결과적으로 플랫폼 분석에 흥미를 갖지 못해 스터디는 실패로 끝나게 되었다.
하지만, 실패에서 얻은 교훈을 바탕으로 다시 한번 플랫폼 분석에 도전하기로 결심하였다. 이번에는 관심 있는 스터디 구성원이 아닌 현업에서 안드로이드 플랫폼 개발에 종사하면서 플랫폼 스터디에 관심 있는 사람들을 모집하였다. 그러나 이번에는 참고한 서적의 내용이 문제가 되었다. 플랫폼에 관한 분석이 진행될 수록, 구성원들의 해당 서비스에 관한 지식이 증가함에 따라, 책에 대한 불만이 쏟아져 나왔다. 불만의 가장 큰 이유 중 하나는 해당 서비스에 관해 원하는 만큼의 상세한 설명이나 분석이 없었기 때문이었다. 또한, 서적에서 분석의 기준이 된 플랫폼 버전 역시 너무 오래된 것이었기 때문에 최신의 플랫폼 변경 사항을 반영하지 못하였다. 3개월이 지난 시점에서 또다시 실패하는 것이 아닌가 하는 두려움이 몰려오기 시작할 무렵에 Linux Kernel Development의 저자인 Robert Love가 들려준 얘기가 떠올랐다.

“커널 개발자는 완벽함이라는 이름으로 많은 양의 코드를 재작성 하는 것을 두려워하지 않는다.”

“그래, 안드로이드 아나토미를 직접 써보자!”

Robert Love의 잘생긴 사진과 함께 우리도 리눅스 커널 개발자처럼 멋진 개발자가 되어 보자며 스터디 구성원들을 협박(?)하여, 결국 이 책의 집필을 진행할 수 있었다. 안드로이드 아나토미는 현업에 종사하는 저자들이 안드로이드 플랫폼이라는 생소한 개발환경과 구글의 빠른 버전업 및 사용자의 끊임없는 업그레이드 요구라는 척박한 개발 현실에서 온몸으로 느끼고 체험한 경험적 지식들을 고스란히 담아놓은 책이다. 또한, 방대한 안드로이드 플랫폼의 성공적인 분석을 목표로 도전하여 여러 번 실패하고 좌절해서 얻은 값진 결과물이다.

『안드로이드 아나토미』는 『인사이드 안드로이드』에서와 마찬가지로 구글 IO 2008에서 Patrick Brady가 발표한 Anatomy & Physiology of an Android에 기초하고 있다. 전편이 안드로이드 생리학(Physiology)에 중점을 두고 쓰여졌다면 후편은 안드로이드 해부학(Anatomy)에 중점을 두고 작성되었다. 특히, 네이티브 시스템 서비스 중 안드로이드 플랫폼만의 특징인 오디오 플링거 서비스, 서피스 플링거 서비스, 카메라 서비스의 동작 메커니즘을 자세히 다루고 있다.

여기에 더하여, 안드로이드 플랫폼 개발에 필수적인 기술인 바인더 IPC, 프로세스간 데이터 공유 기법(공유 메모리, ashmem), 서비스 프레임워크, JNI, HAL 등에 관해서도 설명하고 있다. 책에서 설명하는 이 기술들은 안드로이드 플랫폼 1.6버전부터 2.3버전까지 큰 변화가 없었으므로, 앞으로도 계속 유효할 것으로 생각된다. 현업에서 안드로이드와 관련된 다양한 분야에 종사하는 개발자들에게 이 책이 업무에 도움이 될 수 있기를 희망한다.
- 서문 중에서


추천도서

이 포스팅은 쿠팡 파트너스 활동의 일환으로,
이에 따른 일정액의 수수료를 제공받습니다.
이 포스팅은 제휴마케팅이 포함된 광고로 커미션을 지급 받습니다.
도서 DB 제공 : 알라딘 서점(www.aladin.co.kr)
최근 본 책