로그인회원가입장바구니고객센터마이페이지회사소개
kangcom
전체
 
인기검색어 
    Home >   >   > 
    인사이드 안드로이드 : 안드로이드 프레임워크 동작 원리 분석 [위키북스 임베디드 & 모바일 시리즈 _ 006]   
    지은이 송형주, 김태연, 박지훈, 이백, 임기영   |   출판사 위키북스  |   발행일 2010년 09월 03일
     
    클릭하시면 큰 도서이미지를 보실 수 있습니다.
    판매가 30,000원24,000원 20%
    마일리지 3% 720원
    발행일 2010-09-03
    ISBN 8992939582 | 9788992939584
    기타정보 국내서 | 512쪽 | 일반
    예상출고일 금일 가능 (근무일기준)
    배송비 무료배송
       
    프로그래밍
    종합지수 15p 16 위
    월간지수 2p 37 위
    주간지수 25p 10 위
       
      체크아웃으로 구매시 제주지역은 5
       만원 미만 결재의 경우 배송비가 추
       가 될 수 있습니다.
     

    『인사이드 안드로이드』에서는 안드로이드 부팅 프로세스를 통한 프레임워크 초기화 과정 및 주요 컴포넌트들의 동작 원리를 중점적으로 다룬다. 저자들이 안드로이드 프레임워크의 주요 소스코드를 직접 분석하고 정리하였으며, 프레임워크의 동작을 이해하기 위한 각종 기초 지식과 실제 안드로이드 플랫폼에 근간을 이루는 서비스 프레임워크에 대해 자세하게 설명하고 있다.

    [출판사서평]

    안드로이드 프레임워크 분석을 위한 국내 최초의 참고 서적.

    이 책은 안드로이드 프레임워크의 구조가 궁금한 개발자들에게는 한줄기 단비와 같은 책이다. 현재 안드로이드 SDK를 이용한 애플리케이션 개발과 관련한 자료들은 인터넷이나 서점에서 쉽게 찾아볼 수 있지만, 안드로이드 프레임워크의 구조와 동작 원리를 다룬 책은 전무하다. 구글조차 안드로이드 프레임워크 내부를 다룬 구체적인 자료를 제대로 공개하지 않고 있다.

    『인사이드 안드로이드』에서는 안드로이드 부팅 프로세스를 통한 프레임워크 초기화 과정 및 주요 컴포넌트들의 동작 원리를 중점적으로 다룬다. 저자들이 안드로이드 프레임워크의 주요 소스코드를 직접 분석하고 정리하였으며, 프레임워크의 동작을 이해하기 위한 각종 기초 지식과 실제 안드로이드 플랫폼에 근간을 이루는 서비스 프레임워크에 대해 자세하게 설명하고 있다.

    이 책은 몇몇 지적 개척자들이 불 꺼진 대학강의실에서 빔 프로젝트가 뿌려대는 소스코드를 통해 아직 미지의 영역인 안드로이드 프레임워크를 탐험하면서 발견한 내용을 기록한 일지이다. 구글이 꼭꼭 숨겨놓은 코드의 비밀을 이해할 때 느꼈던 짜릿한 기쁨기쁨의 과정들을 이 책을 통해 독자들과 함께 하고자 한다.


    [책 속으로]

    모바일 환경에서의 개발자에게 필요한 능력은 무엇일까요?

    다양한 대답이 가능하겠지만, 타겟 장치에 적용된 프레임워크에 대한 이해도 필수적이라고 생각됩니다. 이는 다시 말하면 윈도우나 리눅스 등 운영체제의 동작 원리를 제대로 이해하는 프로그래머나 웹브라우저의 동작 원리를 이미 숙지하고 있는 웹프로그래머가 고급 개발자로 대우 받는 것과 비슷한 얘기일 것입니다.

    마찬가지로 모바일 환경에서의 프레임워크의 동작 원리를 이해하는 것은 고급 개발자로 나아가기 위한 필수 관문일 것입니다. 이것은 안드로이드 개발자에게도 그대로 적용되는 내용일 것입니다. 하지만 안드로이드 프레임워크의 동작 원리와 관련된 자료들은 인터넷이나 시중의 서점을 통해서 굉장히 구하기 어렵습니다. 구글 또한 구글 IO(구글에서 매년 개최하는 개발자 행사)의 몇몇 세션에서 발표된 자료를 제외하고는 아직까지 안드로이드 프레임워크에 대한 설명을 속 시원히 해주지 않고 있는 실정입니다.

    현재로서는 안드로이드 프레임워크의 동작 원리를 제대로 이해하는 방법은 가장 원초적인 안드로이드 소스코드를 직접 살펴보는 방법밖에 없습니다. 저자들도 안드로이드 프레임워크 분석을 위한 자료가 너무 부족한 터라 결국 안드로이드 소스코드 분석을 통해 필요한 내용을 얻을 수밖에 없었습니다. 그러나 방대한 안드로이드 소스코드 중에서 어디서부터 분석을 시작해야 할지 도무지 감이 오지 않았습니다.

    다행히 구글 IO 2008 행사의 안드로이드 세션 중 ‘Anatomy & Physiology of an Android’ (http://sites.google.com/site/io/anatomy--physiology-of-an-android)라는 제목의 프레젠테이션 자료에서 소개된 안드로이드 프레임워크 초기화 과정 등을 포함한 여러 내용들에서 안드로이드 프레임워크 분석의 방향을 결정하는 데, 많은 도움을 얻을 수 있었습니다.

    이 책을 처음 작성할 시기에는 안드로이드 1.5 버전(코드명 Cupcake)을 중심으로 분석을 시작했으나 작성이 마무리될 쯤에는 안드로이드 2.2 버전(코드명 Froyo)이 발표됐습니다. 물론 책의 내용은 현재 최신 버전인 안드로이드 2.2를 기반으로 작성했지만, 프레임워크 특성상 1.5버전부터 2.2버전까지 프레임워크 관련해서 소스코드의 커다란 변화가 없어서 버전에 크게 구애받을 필요는 없습니다. 2010년 하반기에 출시 예정일 3.0(코드명 Gingerbread) 버전에서도 프레임워크에 대한 내용 변경은 알려진 게 없으나, 이 책의 내용은 계속 유효할 것이라 생각합니다.

    마지막으로 이 책에서 소개하는 안드로이드 프레임워크에 대한 내용은 방대한 안드로이드 내부에 대한 전체적인 설명이 아니라, 프레임워크 내부의 동작 원리를 이해하는 가이드라고 볼 수 있습니다. 책 내용을 바탕으로 현업에 필요한 안드로이드 소스코드 부분에 대한 분석을 시작한다면 좀 더 쉽게 원하는 바를 이룰 수 있을 것이라 생각됩니다.
    - 서문 중에서


    [출판사 리뷰]

    프레임워크를 제대로 이해하지 않더라도 얼마든지 안드로이드 애플리케이션을 개발할 수 있습니다. 그러나 프레임워크의 구조에 익숙하고 그것의 동작 원리를 제대로 파악한다면 어떠한 개발 시나리오라도 주눅들지 않고 안드로이드 프레임워크에 최적화된 소프트웨어를 설계할 수 있다는 자신감이 생길 것입니다.

    또한 안드로이드는 오픈소스로 제공되므로 각 하드웨어 벤더는 기본 안드로이드 프레임워크를 커스터마이즈해서 경쟁사와 차별화한 제품을 출시하고 있습니다. 안드로이드 프레임워크를 바탕으로 차별화한 자사 솔루션을 구축하려면 안드로이드 프레임워크에 대해 정확하고 심도있게 분석할 필요가 있습니다.

    『인사이드 안드로이드』는 안드로이드 시스템 소스코드 분석을 통해 안드로이드의 프레임워크를 심도 있게 다루고 있습니다. 안드로이드의 좀 더 깊은 곳을 알고 싶거나 최적화된 안드로이드 솔루션을 개발하고자 하는 개발자 여러분께 이 책을 추천합니다.

    이 책에서 다루는 내용

    - 부팅 프로세스로 알아보는 안드로이드 프레임워크 개요
    - 안드로이드를 포팅하고, 각 기기의 특성에 맞는 프로그램을 개발하기 위한 기초 지식
    - 안드로이드 프레임워크 분석에 필요한 기초 지식 - JNI(Java Native Interface)와 바인더(Binder)
    - Zygote, 서비스 매니저, 서비스 서버 등과 같은 안드로이드 핵심 컴포넌트 분석
    - 안드로이드 서비스 프레임워크의 구조와 이해
    - 카메라 서비스, 액티비티 매니저 서비스 등을 통한 실제 안드로이드 서비스 분석
    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 데이터의 흐름
    7.2.3 바인더 프로토콜
    7.2.4 RPC 코드와 RPC 데이터
    7.2.5 바인더 어드레싱
    7.3 안드로이드 바인더 드라이버 분석
    7.3.1 프로세스 관점에서의 서비스 사용
    7.3.2 바인더 드라이버 관점에서의 서비스 사용
    7.3.3 바인더 드라이버 함수 분석
    7.4 컨텍스트 매니저(servicemanager)
    7.4.1 컨텍스트 매니저의 동작
    7.5 정리

    8장 안드로이드 서비스 프레임워크

    8.1 서비스 프레임워크
    8.2 서비스 프레임워크의 구조
    8.2.1 계층별 구성 요소의 배치
    8.2.2 계층별 구성 요소의 상호작용
    8.2.3 클래스 구조
    8.3 동작 메커니즘
    8.3.1 서비스 인터페이스
    8.3.2 서비스
    8.3.3 서비스 프록시
    8.4 네이티브 서비스 매니저
    8.4.1 서비스 매니저(ServiceManager) 개요
    8.4.2 서비스 매니저 클래스
    8.4.3 서비스 매니저의 동작
    8.5 네이티브 서비스 제작하기
    8.5.1 HelloWorld 시스템 서비스 설계
    8.5.2 HelloWorld 서비스 인터페이스
    8.5.3 HelloWorld 서비스
    8.5.4 HelloWorld 서비스 프록시
    8.5.5 HelloWorld 서비스 실행

    9장 네이티브 시스템 서비스 분석

    9.1 카메라 서비스(Camera Service)
    9.2 카메라 애플리케이션
    9.3 카메라 서비스 프레임워크
    9.3.1 카메라 서비스 프레임워크의 계층 구조
    9.3.2 카메라 서비스 프레임워크의 클래스
    9.4 카메라 서비스 프레임워크의 동작
    9.4.1 카메라 서비스 초기화
    9.4.2 카메라 서비스 연결
    9.4.3 카메라 서비스의 연결 소스 분석
    9.4.4 카메라 설정 및 제어 과정
    9.4.5 카메라 설정 및 제어 과정 분석
    9.4.6 카메라 이벤트의 처리 과정
    9.4.7 카메라 이벤트 처리 과정 분석

    10장 자바 서비스 프레임워크

    10.1 자바 서비스 프레임워크
    10.1.1 자바 서비스 프레임워크의 계층별 요소
    10.1.2 자바 서비스 프레임워크의 클래스별 상호작용
    10.2 동작 메커니즘
    10.2.1 자바 서비스 프레임워크 초기화
    10.2.2 Binder
    10.2.3 BinderProxy
    10.2.4 Parcel
    10.3 자바 시스템 서비스 구현
    10.3.1 알람 매니저 서비스의 구조 분석
    10.3.2 HelloWorldService 시스템 서비스의 구현
    10.3.3 HelloWorldService 시스템 서비스의 이용
    10.3.4 HelloWorldService 시스템 서비스 빌드
    10.4 자바 서비스 매니저
    10.4.1 자바 서비스 매니저 소개
    10.4.2 BinderInternal
    10.4.3 자바 서비스 매니저의 동작
    10.5 AIDL을 이용한 서비스 프록시와 스텁의 구현

    11장 자바 시스템 서비스 동작 분석

    11.1 액티비티 매니저 서비스
    11.2 액티비티 매니저 서비스를 통한 서비스 생성 코드 분석
    11.2.1 Controller 액티비티 startService() 메서드 호출
    11.2.2 액티비티 매니저 서비스의 startService() 메서드 호출 과정 (바인더 RPC 활용)
    11.2.3 액티비티 매니저 서비스 startService() 스텁 메서드 실행
    11.2.4 ActivityThread 클래스의 main() 메서드 실행
    11.2.5 액티비티 매니저 서비스 attachApplication() 스텁 메서드 처리

    부록 AIDL 언어의 문법
    송형주
    센서 네트워크 플랫폼을 전공으로 KAIST 석사를 졸업했으며, 안드로이드와 같은 소프트웨어 플랫폼의 구조와 동작 원리에 관심이 많다. 차세대 이동통신 시스템 개발, 모바일 위젯 개발 등을 거쳐 현재는 HTML5 기반의 웹 플랫폼 개발 업무를 진행 중이다. 틈틈이 쌓은 개발 관련 지식을 온오프라인 형태로 공유해서 개발자 커뮤니티 활성화에 기여하고 싶은 소박한 꿈이 있다.

    김태연
    부산대학교 컴퓨터 공학과 대학원에서 소프트웨어 공학을 전공하고 있으며 병원 ERP 소프트웨어 개발 및 안드로이드 휴대폰 개발에 참여하였다. 현재 안드로이드 수원 플랫폼 스터디의 뒤를 잊는 부산 안드로이드 플랫폼 스터디를 이끌고 있으며 안드로이드펍에서 주로 활동하고 있다. 대용량 데이터베이스 및 객체지향 시스템에 관심이 많으며 늘 개발자가 행복한 세상을 꿈꾸고 있다.

    박지훈
    경성대학교 컴퓨터 과학과를 졸업하였으며, 재학 중 삼성 소프트웨어 멤버십에서 임베디드 리눅스 관련 프로젝트를 진행했다. 현재는 반도체 업계에서 SoC 검증업무를 수행하고 있으며, 임베디드 OS에서의 멀티 코어 환경에 대해 관심이 많다.

    이백
    임베디드 OS 및 플랫폼에 관심이 많으며, 현재는 안드로이드 포팅 및 시스템 프로그램을 개발하고 있다.

    임기영
    리눅스 기반 임베디드 디바이스 플랫폼의 구조 분석에 관심이 많으며, 임베디드 OS의 포팅 및 디바이스 드라이버 구현 등의 업무를 수행하고 있다.
    이 책 괜찮습니다.
    박성균님이 쓰신 서평보기 I 평점 I 조회수(1062) I 공감 (0) I 블로그
    application 개발에 관심이 계시거나 초급자 분이 보기에는 좀 힘들므로 중급 이상 분이 보셔야 합니다.. 안드로이드 플랫폼에 대해 동작 원리 등 전반적으로 다루고 있습니다. 안드로이드에 대해서 좀더 심화 학습 하시고 싶은 분에게 추천 드리고 싶네요근래 보기 드문 좋은 책입니다.
    이책은 절대 초급이 아니군요
    이상길님이 쓰신 서평보기 I 평점 I 조회수(925) I 공감 (0) I 블로그
    동작원리에 대해서 설명하고 있으나, 생략된 부분이 많고 강조되는 부분만 그것도 간단히 넘어가는 식입니다. 초급자에게는 비추입니다.
    내용이 꽤 어렵네요...
    유충범님이 쓰신 서평보기 I 평점 I 조회수(939) I 공감 (0) I 블로그
    초반부 보고 있는데.. 앞부분은 리눅스 커널관련된 내용이 나오는데..리눅스나 os에 대해 잘 모르는 사람에게는 상당히 어렵습니다.. 좀 더 봐야겠지만.. 아무튼.. 대충 넘겨보더라도 지은이의 고생이 엿보이는군요...
    Android application 개발서가 아니라 android framework 에 대하여 설명하고 있는 정말 괜찮은(!) 책.
    황태근님이 쓰신 서평보기 I 평점 I 조회수(2848) I 공감 (2) I 블로그
    My rating 5/5 = ★★★★★Android application 개발서가 아니라 android framework 에 대하여 설명하고 있는 정말 괜찮은(!) 책.Android 관련 서적이 많이 나오고 있지만 대부분 application develop 관점에서 서술된 책들이 대부분입니다.하지만 개인적으로는 업무상의 관련도 있고,  application 작성 뿐만 아니라 android platform & framework 이 어떻게 이루어져 있고,동작을 하는지 잘 설명된 책은 없어서 많이 아쉬워하던 참에 이 책을 알게 되었습니다.개발자들이 자...
    괜찮네요...
    신창훈님이 쓰신 서평보기 I 평점 I 조회수(1129) I 공감 (0) I 블로그
    인터넷에 널려 있는 자료을 봤는데.. 머리에 체계적으로 정립이 되지 않더라구요... 이 책을 지금 중간 정도 읽고 있는데.. 지금까진 대만족입니다. 나머지 뒷부분도 그냥 휙~ 봤을땐.. 충실히 짜여진거 같아요~ 후반부가 이 책에 하이라이트인거 같은데..  가려운 부분을 긁어준 저자분들께 감사할 따름입니다.  ㅎㅎ
    모던 웹을 위한 JavaScript + jQuery 입문(개정판)...
    윤인성
    선택된 상품을 찜하실 수 있습니다. 선택된 상품을 바로구매 하실 수 있습니다.
    안드로이드 프로그래밍(킷캣4.4 활용+실전)...
    인경열, 양성호
    선택된 상품을 찜하실 수 있습니다. 선택된 상품을 바로구매 하실 수 있습니다.
    안드로이드 프로그래밍 정복 3판, 1권...
    김상형
    선택된 상품을 찜하실 수 있습니다. 선택된 상품을 바로구매 하실 수 있습니다.
     
    전체평균(69)
    회원평점   회원서평수 5
    이 책 괜찮습니다.
    박성균 님  2010-11-01
    이책은 절대 초급이 아니군요
    이상길 님  2010-10-27
    내용이 꽤 어렵네요...
    유충범 님  2010-10-08
    Android application 개발서가 아니라 android framework 에 대하여 설명하고 있는 정말 괜찮은(!) 책.
    황태근 님  2010-09-28
    괜찮네요...
    신창훈 님  2010-09-16
    위키북스 출판사의 신간
    NGUI 유니티 2D 게임 프로그래밍
    송요창 저
    36,000원
    (20%↓+1%)
     
    모던 C 언어 프로그래밍
    하나이 시세이 저
    19,800원
    (21%↓+1%)
     
    프런트엔드 개발 시작하기
    주우영 저
    16,500원
    (25%↓+5%)
     
    Logic Pro X
    윤준혁 저
    24,000원
    (25%↓+1%)
     
    파이썬 인 프랙티스
    마크 서머필드 저
    19,880원
    (29%↓+1%)
     
    이메일주소수집거부
    클릭하시면 이니시스 결제시스템의 유효성을 확인하실 수 있습니다. 클릭하시면 eTrust 인증정보를 확인하실 수 있습니다.