회원 및 비회원 모두 열람이 가능합니다. 최대 업로드 가능한 용량은 20MB 입니다.

안녕하세요.


고도리입니다.


너무 오래 글을 올리지 못했는데, 여러가지 사정이 있었다라고 생각해 주시면 될 듯 합니다.


1. 내용물 정리에 시간을 많이 뺐겼습니다.

여러사람이 나눠서 하더라도, 교차로 내용 검증을 해야하는 부분과 용어가 너무 어려워서 고민이 많았습니다.

현재도 Sound device driver부분만은 정리가 안 끝났습니다.


- ALSA 버전의 변화부분을 넣어야 하느냐(2.6.37 에서의 구조 변경 부분)

- 2.6.35.7로만 타겟을 잡아야 할 것이냐, 아니면 나머지 부분도 추가를 해야할 것이냐


등등.....


ALSA를 쓰시는 분이 문서를 너무 여러번 갈아 엎어서 현재 많이 지쳐 있는 상태라 꼬이면 제가 마무리

해야할 듯 합니다....ㅠ.ㅠ


2. 에디팅에 시간이 많이 걸렸습니다.

일단 내용이 너무 어렵습니다. 쉽게 쓴다고 해도 너무 복잡한 구성이 많아서 탈고를 하면서도 계속 수정사항이

발생하네요.


3. 출판사와의 의견 조율

- 5/10일 이후에 결론이 날 듯 합니다.

- 저희가 쓴 초고가 너무 엔지니어가 쓴 스타일인데다, 완성도에 대한 관점 차이가 큽니다.

(현재 내용에 대한 검증까지 끝난 상태인데 관점에 대한 차이가 좀 있네요)


물론, 저희야 그냥 개발자기 때문에 그 점은 저희도 인정을 합니다만.....ㅎㅎ


4. editing관련

일단 안드로이드 용어와 구조가 너무 복잡해서 비슷한 용어가 계속 나오고, 함수 하나를 추적하면 기본적으로

클래스 7~8개까지 쫓아 들어가야 하는 경우가 많이 생깁니다. 그냥 나열만 해도요.....ㅠ.ㅠ


=========================================================================

이런 여러가지 일로 인해서 계속 뻥친것만 된 상태가 지속되고 있습니다.


여하튼 Icecream이 나오기 전에 출간하기 위해서 노가다x3을 해야할 듯 합니다....쩝


멀티미디어도 병행해서 작업을 하고 있는데, 멀티미디어만 잘 못하면 300페이지가 넘어갈 듯 하네요.

이건 간단한 모듈만 좀 추적해도 거의 40페이지가 넘게 나오네요.....허걱하고 있습니다.


밑은 현재까지 작업된 문서의 목차입니다.


어떤 장은 짧은것도 있고, 어떤 장은 긴것도 있습니다(대략 30~200 페이지)

긴 부분은 가끔 보면 어지럽기까지 합니다....ㅎㅎ


==========================================================================



목차

chapter 1 Google Android

1.1 Android 개요
- 스마트폰이란?

1.2 Android 특징
- 대표적인 Binder

1.3 Android의 구성요소 및 구조

1.4 Android Kernel + Android용 Linux Kernel 패치 내용

1.5 Android Libraries 계층

1.6 Android 개발방법
1.6.1 개발 환경
1.6.2 SDK를 이용한 개발
1.6.3 PDK를 이용한 개발
1.6.4 NDK를 이용한 개발
----------------------------------------------------------------------

chapter 2 Android Init Process

2.1 Android 부팅 과정
2.1.1 Android init process와 부팅 과정
2.1.2 init process의 시작

2.2 Android Init Process의 특징
2.2.1 Android init의 특징
2.2.2 Android에서의 init과 보안의 관계

2.3 Android Init 세부 분석
----------------------------------------------------------------------

chapter 3 udev 와 ueventd, android device management

3.1 udev탄생 배경

3.2 Udev란?

3.3 Udev의 특징

3.4 Udev 설정

3.5 uevent와 device

3.6 ueventd
----------------------------------------------------------------------

chapter 4 Input Device

4.1 Input Device 개요

4.2 Androdi Input Device Driver
4.2.1 Key Driver
4.2.2 Touchscreen Driver
4.2.3 Switch Event Device Driver

4.3 Android Input Manager
4.3.1 Input Manager 와 JNI
4.3.2 InputReader 클래스와 InputDispatcher 클래스

4.4 Kernel의 GPIO Key/GPIO Input Driver
----------------------------------------------------------------------

chapter 5 Sensor Subsystem

5.1 Sensor의 종류

5.2 Sensor System의 구성과 이해

5.3 Sensor의 NDK Interface 소개

5.4 SensorManager Process
5.4.1 초기화
5.4.2 SensorManager 객체 생성 및 동작
5.4.3 Listner의 등록

5.5 정리
----------------------------------------------------------------------

chapter 6 GPS Subsystem

6.1 Android에서의 GPS 동작

6.2 Android GPS Source 분석
6.2.1 Location Manager Service의 시작
6.2.2 초기화
6.2.3 GPS 동작의 시작

6.3 GpsLocationProvider Message 처리 구조
----------------------------------------------------------------------

7. Android Sound Subystem

7.1 Android에서의 Sound 개요

7.2 Android Sound 구조

7.3 Android Sound System과 HAL 초기화 순서
7.3.1 Android Sound Subsystem 관련 용어
7.3.2 AudioFlinger와 HAL의 초기화
- mediaserver의 구성 및 실행
- AudioFilinger::instantiate() 함수
- AudioFlinger 생성자
- AudioHardwareInterface::create() 함수
- Audio HAL 초기화 - AudioHardwareALSA
- alsa_sound의 alsa.default.so hw_module open
- AudioHardwareInterface의 create() 함수에서 호출하는 initCheck() 함수 routine

7.4 AudioFlinger
7.4.1 AudioFlinger의 Class 구조
7.4.2 IAudioFlinger Interface
7.4.3 ThreadBase Class
7.4.4 TrackBase
7.4.5 TrackHandle과 RecordHandle
7.4.6 PlaybackThread(Mixer Thread)의 생성
7.4.7 DuplicatingThread의 생성

7.5 AudioPolicyService
7.5.1 AudioPolicyService의 도입 이유
7.5.2 AudioPolicyService 구조
7.5.3 AudioPolicyService와 HAL의 초기화
7.5.4 AudioPolicyService 생성자
7.5.5 HAL 초기화 함수

7.6 AudioPolicyManager
7.6.1 입/출력 Device 관리
7.6.2 음량(Volume) 제어
7.6.3 Audio Policy Management

7.7 AudioFlinger HAL의 Class 구조
7.7.1 제어 경로 분석
7.7.2 Data 경로
- AudioStreamOutALSA, AudioStreamInALSA Class의 생성
- Audio 입/출력 경로 설정 - setParameters
7.7.3 Downsampling - Android Audio Code의 특이성
----------------------------------------------------------------------

8. Android Binder

8.1 Binder 개요

8.2 Linux IPC와 Unix IPC와 Android IPC

8.3 Android Binder의 기본 동작

8.4 Android Binder Device Driver

8.5 servicemanager 부분 분석

8.6 Android Framework에서의 Binder

8.7 Binder IPC의 사용
8.7.1 Service(Server 만들기)
8.7.2 Client

8.8 Binder RPC(Remote Procedure Call)의 사용
8.8.1 Binder의 RPC 동작 Mechanism
8.8.2 IServiceManager 동작
8.8.3 Binder Service 구현(ABC service)
- Binder Service의 시작
- BpABC 접속의 시작
- Binder Service 구현의 실제 예(RPC Service)

8.9 Binder RPC Service의 구현의 예(AudioFlinger로의 접근)

8.10 양방향 IPC Binder

8.11 Binder를 이용한 Android System 제어(Audio System)

8.12 Binder 정리
----------------------------------------------------------------------

9. Android Camera System

9.1 개요

9.2 Android Camera System의 이해

9.3 Camera Application
9.3.1 Camera 예제 Application
- Camera 장치 접근을 위한 설정
- Camera 영상 출력을 위한 설정
- Camera 장치와의 연결
9.3.2 Android Camera 기본 Application (Camera.apk)
- Camera Application 구조
- Camera 구동 및 preview 관련 진행 절차
- 초점 조정
- 사진 촬영
9.3.3 Callback
- PreviewCallback
- PictureCallback
- RawPictureCallback
- PostviewCallback
- JpegPictureCallback
- AutoFocusCallback
- ShutterCallback
- ErrorCallback

9.4 Camera Application Framework

9.5 Camera Client

9.6 Camera Service
9.6.1 Cameara Service의 시작
- Camera Service Instance 생성
- Camera 장치 정보 초기화
- Camera 장치 개수 요청
- Camera flag 초기화
- Camera 장치 제한
- Camera Service Server 실행 완료
9.6.2 Camera Service
- Camera Service의 시작
- Camera 출력 설정
- Camera 영상 출력 - startPreview()
- handleShutter
- PreviewCallback
- Callback

9.7 Camera HAL
9.7.1 Camera HAL - libcamearastub
- Camera 장치 정보 제공
- CameraHardwareInterface
- FakeCamera
- Preview
- Auto focus
- Snapshot
9.7.2 Camera HAL - libcamera(Nexus-S)
- libcamera 설정 정보
- Camera 정보
- Instance 생성
- SecCameraHWInterface 초기화
- Parameter 초기화
- Parameter 설정
- Preview

9.8 결론
----------------------------------------------------------------------

10. Android GDI(Graphics Device Interface)

10.1 Android GDI 개요

10.2 Android GDI System에서의 Display Buffer 관리 기법
10.2.1 Basics
- Format 변환
- Graphic 가속 엔진
10.2.2 Android Buffer 추상화

10.3 Android GDI System에서의 공유 Buffer 관리 기법
10.3.1 private_hadle_t의 native_handle_t Package
10.3.2 Graphic Mapper의 역할
10.3.3 GraphicBuffer(buffer proxy object)

10.4 SurfaceFlinger
10.4.1 Android SurfaceFlinger의 의미와 역할
10.4.2 SurfaceFlinger 관련 용어
10.4.3 SurfaceFlinger와 Application간의 함수 호출 구조
10.4.4 SurfaceFlinger의 Block Diagram
10.4.5 SurfaceFlinger 관련 Souce list

10.5 SurfaceFlinger의 기능과 구성요소

10.6 SurfaceFlinger의 초기화

10.7 SurfaceFlinger의 threadLoop() 함수

10.8 SurfaceSession과 Surface의 생성

10.9 LayerBase

10.10 copybit
----------------------------------------------------------------------

부록. Linux와 Kernel
1. Linux

1.1 Unix의 탄생 배경

1.2 Linux의 시작과 인물들

1.3 Linux 개요

1.4 Linux 운영체제의 특징

1.5 Embedded System과 Linux

1.6 Embedded Linux System의 구성
----------------------------------------------------------------------

2. Linux Kernel 2.6

2.1 Kernel 2.4 Vs Kernel 2.6 : Core

2.2 Kernel 2.4 Vs Kernel 2.6 : Hardware support

2.3 Kernel 2.4 Vs Kernel 2.6 : Filesystem

2.4 Kernel 2.4 Vs Kernel 2.6 : Version related
----------------------------------------------------------------------


관리자

2011.05.08 00:12:58
*.200.239.234

Sound device driver 챕터가 빠진상태인데, 이 부분은 어떻게든 정리해서 넣을 생각입니다.

최소한 구조분석 정도라고요.


Package Manager도 다 써 놓은 상태인데, 몇 챕터에 넣을지 고민중이라서 윗 부분에서는 빠졌습니다.

출간될 때는 포함됩니다.

현쓰

2011.05.08 00:50:34
*.203.95.50

두근 두근~ 기대되네요~ 그리고 고생 많으셨습니다~

김성재

2011.05.09 20:48:53
*.11.182.184

금년도 가장 기다려지고 기대되는 책입니다. 부디 잘 나왔으면 좋겠습니다. 힘내세요.

김택기

2011.05.10 00:44:23
*.244.221.3

저정도의 책이 나올 수 있을까 싶었는데...

만드시니 되는군요..^^

이제현

2011.05.10 06:08:33
*.90.137.102

출판사와 어떤 방식으로 의견 조율을 할지 궁금하네요.

먼 옛날 제가 아주 어렸던(?) 94/95년에 책을 낼때에는 독자의 눈높이와 편집 방향을 바라보는 관점의 차이가 주요 논점이었습니다. 출판사가 보는 독자의 모습과 엔지니어가 보는 독자의 모습이 다르기 때문이죠. 기술을 전파하려는 목적은 같지만, 적당한 타협에 시간이 다소 걸렸습니다. ㅎㅎㅎ

초고 -> 편집 -> 검증 -> 보완 -> 편집 -> 검증 -> 보완 -> 편집......   상당히 지루하고 험난했던 기억이 납니다.

좋은 편집 책임자와 좋은 타협을 이루시길 진심으로 바랍니다.

고도리

2011.05.11 12:12:02
*.237.243.143

말씀 감사합니다.

무한루프가 될 듯 합니다. 출판사쪽으로 일단 정리된 부분을 내일 넘기기로 했는데.....


결론을 봐야죠. 도저히 출판할 수준이 아니다라는 얘기가 나오면 저희가 편집해서 그냥 aesop용으로나 배포해야죠.


icecream sandwitch가 아마 4분기에 나온다는데, 그 전에 한 점을 찍고 가야한다는 강박에 시달리고 있습니다.

Simba444

2011.05.11 22:47:40
*.94.41.89

"결론을 봐야죠. 도저히 출판할 수준이 아니다라는 얘기가 나오면 저희가 편집해서 그냥 aesop용으로나 배포해야죠."

==> 혹시 이렇게 되더라고 "Fund Raising for Aesop Site" 라도 하면 좋을 듯....

DavidKim

2011.05.14 02:01:06
*.18.103.130

 10일이 지난는데 결론이 어떻게 되었는지 궁금하네요.


책이 기다려지는데  가끔 보면 너무 쉽게 얻어 먹을려고 생각하는 건 아닌가 반성해봅니다.


열심히 하시는 분들이 계시는데 말입니다.


수고 하시고 좋은 결과 있었으면 합니다.




고도리

2011.05.14 04:23:12
*.200.239.234

아직 출판사 쪽에서 답이 안 왔습니다만.......벌써 조판쪽으로 넘어간 듯 하다고 하네요.

 

프린트 해서 일일이 읽어보고 있다고 합니다....ㅠ.ㅠ, 후딱 물어봐서 결정해야할 듯 하네요.

List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 [교육관련] 게시물 --> 반드시 "교육 및 세미나 홍보" 게시판 ... 관리자 2013-12-12 18754
공지 [질문]하실 때 부탁드립니다. 관리자 2013-07-10 21741
259 [Android 포팅책] 표지가 나왔습니다. file [12] 관리자 2011-06-10 7016
258 [오픈소스] git 사이트를 오픈하였습니다. [10] 관리자 2011-05-30 12559
257 [공동구매] V310 보드 공동구매 진행합니다(마감완료). file [43] 관리자 2011-05-25 16434
256 [AESOP보드] Exynos4 Board 5월 25일서부터 공제 들어갑니... [10] 관리자 2011-05-23 14365
255 [Android 포팅책] 최종 목차를 올립니다. [9] 관리자 2011-05-18 8551
254 [Android Porting 책] 6월 20일 경에 서점에서 보실 수 ... [9] 관리자 2011-05-14 14105
» [Android책/목차포함] 5/10일 이후에 최종진행 방법을 정리해서... [9] 관리자 2011-05-08 14513
252 [안내] 4월 8일 오전에 발생한 데이터베이스 오류복구. [1] 관리자 2011-04-09 9140
251 [Android책] 초고가 마무리 되었습니다. [22] 관리자 2011-03-22 11670
250 [Android책] Android NDK 책도 동시 진행됩니다. [4] 관리자 2011-03-01 13361
249 [Android책] 출판 됩니다 - AESOP 운영진 공저 [28] 관리자 2011-02-25 15486
248 [S5P6450] 개발보드 제작 관련 - 분위기 조사(?) [33] 관리자 2011-02-17 11213
247 [신형칩] S5P6450 SoC 소개 file [6] 관리자 2011-01-28 20792
246 [사이트불안정] 서버의 불안 증세 [1] 관리자 2011-01-15 11528
245 [신년인사] 새해 복 많이 받으세요 & 임베디드 리눅스 공부에... [14] 관리자 2011-01-01 21242
244 [문서관련] 배송관련 책관련 문서보는 순서 file 관리자 2010-12-30 15519
243 [공지] V210 보드 관련 책자 배송안내 [16] 관리자 2010-12-23 17141
242 [사이트/교재] 해킹 비슷한 사건과 교재 프린트 들어갔습니다. [13] 관리자 2010-12-22 12255
241 [보드문서] v210관련 manual/android 교재관련 [3] 관리자 2010-12-10 13993
240 [공제관련] WIFI module이 정해졌습니다. [7] 관리자 2010-11-19 33480

사용자 로그인