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

안녕하세요.


고도리입니다.


Android 포팅 책 최종 목차를 올립니다. 페이지수도 있으니 대략의 분량이 짐작 되실겁니다.

(실제 책은 좀 더 늘어날 겁니다)


참고하시기 바랍니다.


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

1.    Google Android    7
1.1    안드로이드 개요    7
1.2    안드로이드의 특징    8
1.3    안드로이드의 구성요소 및 구조    10
1.4    안드로이드 커널    12
1.5    안드로이드용 리눅스 커널 패치 내용    13
1.6    Android Libraries 계층    14
1.6.1 Libraries 계층의 구성    15
1.6.2 대표적인 Binder Service    17
1.6.3 Android Runtime    18
1.6.4 Application Framework    20
1.6.5 Application    21
1.7    개발환경    21
1.7.1 이클립스 IDE    21
1.7.2Android Emulator    22
1.7.3 Target Board    22
1.7.4Android 시스템 구조    23
1.7.5Android Root FileSystem    24
1.8    Android 개발방법    24
1.8.1 Android SDK를 이용한 개발    25
1.8.2 PDK(Platform Development Kit)를 이용한 개발    26
1.8.3 NDK(Native Development Kit)를 이용한 개발방법    31
1.9    Android init process와 부팅과정    32
1.9.1    init 프로세스의 시작    33
1.9.3 Zygote의 시작.    34
1.9.4 이후의 과정    35
1.10    Android의 init    40
1.10.1 android init의 특징    40
1.10.2 안드로이드에서의 init와 보안의 관계    41

2. Android의 init process 분석    44
2.1. Android init 세부분석    44
2.1.1 RC 파일 문법    45
2.2 init 소스 분석    48
2.3. 실습 ? setprop을 이용한 init service 제어    61
3. udev 와 ueventd, Android device mamagement    62

3.1. udev 탄생 배경    63
3.2. Udev란?    63
3.3. Udev의 특징    64
3.4. Udev 설정    65
3.5. uevent와 device    66
3.6. ueventd    69
4. Android Input Device    78
4.1 Input Device 개요    78
4.2 Android Input Device Driver    92
4.2.1 Android key driver    93
4.2.2 Android touchscreen driver    96
4.2.3 Android switch event device driver    98
4.3 Android Input Manager    104
4.3.1 Input Manager와 JNI    104
4.3.2 InputReader Class와 InputDispatcher Class    109
4.4 Kernel의 GPIO KEY/GPIO INPUT Driver    125

5. Sensor Sub System    130
5.1 Sensor의 종류    130
5.2 Sensor System의 구성과 이해    132
5.3 Sensor의 NDK Interface 소개    134
5.4 Sensor Manager    134
5.4.1 초기화    134
5.4.2 SensorManager 객체 생성 및 동작    136
5.4.3 Listner의 등록    139
5.5 정리    142

6. Android GPS Sub System    143
6.1 Android에서의 GPS 동작    144
6.2 Android GPS Source 분석    146
6.2.1 Loction Manager Service의 시작    148
6.2.2 초기화 함수의 시작    150
6.2.3 GPS 동작의 시작    166
6.3 GpsLocationProvider Message 처리 구조    170

7. Android Audio Sub System    176
7.1 Android에서의 사운드 개요    176
7.2 Android 사운드 구조    180
7.3 Android 사운드 시스템과 HAL 초기화 순서    183
7.3.1 Android 사운드 서브시스템 관련 용어    186
7.3.2 AudioFlinger와 HAL의 초기화    187
7.4 AudioFlinger    220
7.4.1 AudioFlinger의 class 구조    220
7.4.2 IAudioFlinger Interface    224
7.4.3 ThreadBase Class    227
7.4.4 TrackBase    234
7.4.5 TrackHandle, RecordHandle    240
7.4.6 PlaybackThread(MixerThread)의 생성    247
7.4.7 RecordThread의 생성    251
7.4.8 DuplictingThread의 생성    256
7.5 AudioPolicyService    264
7.5.1 AudioPolicyService의 도입 이유    264
7.5.2 AudioPolicyService 구조    265
7.5.3 AudioPolicyService와 HAL의 초기화    265
7.5.4 AudioPolicyService() 생성자    267
7.5.5 HAL 초기화 함수    276
7.6 AudioPolicyManager    282
7.6.1 입출력 디바이스 관리    282
7.6.2 음량(Volume) 제어    293
7.6.3 오디오 정책 관리(Audio Policy Management)    302
7.7 AudioFlinger HAL의 Class 구조    312
7.7.1 제어경로 분석    320
7.7.2 데이터 경로    332
7.7.3 Downsampling - 안드로이드 오디오 코드의 특이성    356

8. Android IPC Binder    361
8.1 OpenBinder 개요    361
8.1.1 Binder의 사용 이유    362
8.2 Linux에서의 IPC와 Android IPC와의 관계    364
8.2.1 Linux의 종류와 개요    364
8.2.2 BSD의 UDS( Unix Domain Socket )    365
8.2.3 System V IPC의 Message Queue    366
8.2.4 System V IPC의 Shared Memory    367
8.2.5 System V IPC의 Semaphore    367
8.2.6 UNIX 계열의 IPC의 특징    367
8.2.7 System V IPC를 사용한 process간 통신의 간단한 block diagram    368
8.2.8 Android의 IPC    368
8.3 Android Binder의 기본 동작 설명 ( 예제 )    368
8.4 Android Binder Device Driver    371
8.5 ServiceManager 부분 분석    374
8.6 Android Framework에서의 Binder    378
8.7 Binder IPC의 사용    385
8.7.1 Service ( Server 만들기 )    385
8.7.2 Client    389
8.8 Binder의 RPC(Remote Procedure Call) 사용    393
8.8.1 Binder의 RPC 동작 메커니즘    396
8.8.2 IServiceManager 동작    399
8.8.3 Binder RPC의 실제 구현 예(PermissionController)    399
8.8.4 Binder 서비스 구현 (ABC service)    403
8.9 Binder RPC service의 실현의 예 (AudioFlinger로의 접근)    416
8.10 양방향 IPC Binder    417
8.11 Binder를 이용한 Android 시스템 제어 (Audio Subsystem)    426
8.12 Binder에 대한 정리    474

9. Android Camera System    476
9.1 개요    476
9.2 Android Camera System의 이해    476
9.3 카메라 애플리케이션    480
9.3.1 카메라 예제 애플리케이션 (CameraPreview)    480
9.3.2 Android 카메라 기본 애플리케이션 (Camera.apk)    485
9.3.3 Callback    490
9.4 카메라 애플리케이션 프레임워크    496
9.5 카메라 클라이언트    502
9.6 카메라 서비스    510
9.6.1 카메라 서비스의 시작    510
9.6.2 카메라 서비스    512
9.7 카메라 HAL    521
9.7.1 카메라 HAL - libcamerastub    522
9.7.2 카메라 HAL - libcamera (Nexus-S)    535
9.8 결론    553

10. Android GDI ( Graphics Device Interface )    554
10.1 안드로이드 GDI 개요    554
10.2 Android GDI 시스템에서의 디스플레이 버퍼 관리 기법 - 스크린 디바이스 관리를 위한 Android GDI(동적 링크 라이브러리)    558
10.2.1 Basics    558
10.2.2 Android 버퍼 추상화    561
10.3 Android GDI 시스템에서 공유 버퍼 관리 기법    565
10.3.1 private_handle_t의 native_handle_t 패키지    565
10.3.2 GraphicBufferMapper의 역할    567
10.3.3 GraphicBuffer    569
10.4 SurfaceFlinger    570
10.4.1 Android SurfaceFlinger의 의미와 역할    570
10.4.2 SurfaceFlinger 관련 용어    572
10.4.3 SurfaceFlinger와 응용프로그램간의 함수 호출 구조    574
10.4.4 SurfaceFlinger의 블록 다이어그램    575
10.4.5 SurfaceFlinger 관련 source list    576
10.5 SurfaceFlinger의 기능과 구성요소    577
10.6 SurfaceFlinger의 초기화    578
10.7 SurfaceFlinger의 threadLoop() 함수    581
10.7.1 handleTransaction()    584
10.7.2 handlePageFlip()    587
10.7.3 handleRepaint()    591
10.7.4 postFrameBuffer()    594
10.8 SurfaceSession과 Surface의 생성    596
10.9 LayerBase    609
10.10 copybit    617

부록    619


Appendix 1. 리눅스 개요    619
1.1 유닉스의 탄생 배경    619
1.2 리눅스의 시작과 인물들    620
1.3 리눅스 개요    622
1.4 리눅스 운영체제의 특징    623
1.5 임베디드 시스템과 리눅스    625
1.6 임베디드 리눅스 시스템의 구성    626
1.7 Linux kernel 2.6    627
1.8 HardWare Support    629
1.9 File System    631
1.10 버전 특성    632

Appendix 2. Android 컴파일    632
2.1 개발환경 구축하기    632
2.1.1 VirtualBox 설치하기    633
2.1.2 VirtualBox 설정하기    636
2.1.3 Ubuntu Linux 설치하기    645
2.1.4 Android 개발환경    649
2.1.5 Android 코드 내려받기    650
2.1.6 Android 코드 컴파일 하기    651

Appendix 3. Audio Headset Detection    653
3.1 Android Framework 부분    653

Appendix 4. Package Manager Service    660
4.1 Package Manager Service의 시작    661
4.2 Package Install    663
4.3 Package Delete    673
4.4 Scan Package    680

Appendix 5. 참조 사이트    688


관리자

2011.05.18 22:10:48
*.200.239.234

사운드랑 Binder가 가장 많습니다...^^

전경선

2011.05.19 00:36:58
*.40.229.252

눈팅만 하는 유령회원입니다.

본격적으로 안드로이드를 포팅하고 싶은데요.

저처럼 아무것도 모르는 초짜가 보면 제목처럼 안드로이드 포팅을 할 수 있는지요?

목차상으로는 시중의 안드로이드 책들과 비슷한 내용 같아서요.

고도리

2011.05.19 01:43:56
*.200.239.234

1. 꽤 힘듭니다. 내용이 어려운 부분이 많습니다. 분석책이니....

2. 시중의 안드로이드 책이 비슷한거나 있는지 모르겠네요............????

3. Linux device driver는 어느정도 다룰 수 있어야 좀 이해가 쉽고, 어느 부분은 H/W에 대한 지식이 있어야

나름 보기가 쉽습니다.

김장균

2011.05.19 07:51:44
*.149.75.148

좋은 내용으로 가득하네요. 수고하셨습니다. 6월 20일이 기다려지네요.

몇가지 궁금한것이있습니다. OpenGL ES 포팅 부분도 포함되어 있나요? GDI의 일부로 봐야 하나요?

그리고 GPS나 Camera관련 내용은 안드로이드 2..3 진저 기준인가요? 듀얼 카메라 지원이나 GPS 부분이 2.2랑 차이가 좀 많은것 같아서요.

 

 

 

고도리

2011.05.19 09:16:52
*.200.239.234

1. OpenGL ES는 워낙 버전별로 따라 틀리고, 칩벤더만이 할 수 있는 일입니다. 소스 공개는 거의 전무하기 때문입니다. 만일 정리하신다면 적극 추천을.......ㅎ


2. GDI는 SurfaceFlinger위주입니다. openGL은 그 밑단이지만, 워낙 하드웨어 밀접이라서...


3. 예................진저기준입니다.

DavidKim

2011.05.19 18:20:05
*.18.103.130

기대가 됩니다.

 

Android NDK 책도 동시에 진행 된다고 하셨는데,   말씀 하신 NDK 책은 이것이 아닌거죠?

 

그 부분의 소식도 궁금하네요.

 

이재훈

2011.05.19 20:39:14
*.247.149.239

기대됩니다. 드디어 나오는군요..^^

고도리님의 역작!!..

Simba444

2011.06.09 08:14:36
*.254.8.107

그런데 책 제목이...???

예약구매 할까해서 제목을 찾아봐도 보이지가 않네요...

 

 

고도리

2011.06.09 23:14:50
*.200.239.234

책은 조판본 2차 수정까지 마무리 한 상태인 것으로 알고 있는데, 최종 첫 페이지만 없네요....ㅎ

 

즉, 제목은 저도 모른다는 얘기.....ㅠ.ㅠ

내용은 마무리 된 듯 해서, 슬슬 제목 얘기가 나올텐데, 이 부분은 출판사에 그냥 넘겨 놓은 상태입니다.

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
» [Android 포팅책] 최종 목차를 올립니다. [9] 관리자 2011-05-18 8551
254 [Android Porting 책] 6월 20일 경에 서점에서 보실 수 ... [9] 관리자 2011-05-14 14105
253 [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

사용자 로그인