안드로이드 시스템 프로그래밍 완전정복(실전)(MANGO STORY 5)
실전 테스트 보드를 통한 가장 완벽한 실제 개발에 활용 할 수 있는 Android 지침서 『안드로이드 시스템 프로그래밍 완전정복』. 임베디드 모바일 안드로이드 시스템 프로그램 개발을 가이드하고, 초보자도 쉽게 따라할 수 있는 전문가 수준의 정보를 담았다. 안드로이드 어플리케이션부터 플랫폼 내부를 통하여 리눅스 디바이스 드라이버부터 하드웨어까지 전체의 연결을 한 번에 파악할 수 있는 정보를 제공하고 있다.
Couldn't load pickup availability
출판사 리뷰
출판사 리뷰
환경 구축, 보드 포팅부터 디바이스 드라이버까지 초보자도 쉽게 따라서 할 수 있고 전문가의 수준까지 총 망라한 지도서
안드로이드 어플리케이션부터 플랫폼 내부를 통하여 리눅스 디바이스 드라이버부터 하드웨어까지 전체의 연결을 한번에 파악할 수 있는 지름길
● 안드로이드 개발을 위한 환경 구축
● ARM11, Cortex-A8 보드에 리눅스 커널 및 안드로이드 파일시스템 포팅
● 안드로이드 SDK 및 기본적인 어플리케이션 개발
● 리눅스 디바이스 드라이버와 안드로이드 디바이스 드라이버
(NDK, JNI, Interrupt, Event, Keypad, WM8960, SPDIF Driver)
● 안드로이드 환경 설정 메뉴 추가
1부 - Introduction & 환경 구축
안드로이드 개발 환경 VMware, 리눅스(Ubuntu) 환경 구축
Host PC와 파일 공유 - VMware Tools & 삼바(Samba)
우분투 minicom 및 네트워크 설정, TFTP Ethernet Downloading Server
툴체인(Cross-Compiler) 설치
2부 - 망고64, 망고100에 안드로이드 포팅
U-Boot 구동, Tftp NAND 다운로드
Kernel 및 안드로이드 파일시스템 포팅
Eclair 빌드 과정 분석
SD Card를 이용한 쉬운 안드로이드 포팅
NFS (Network File System) 구동
3부 - 안드로이드 SDK & Application
안드로이드 SDK & EClipse
Android Virtual Device (AVD), Android Debug Bridge (ADB)
DDMS (Dalvik Debug Monitor Service)
Application과 Activity, Programmatic UI layout vs. XML-based layout
Image View와 Button, Activity Creation & Execute
Intent Filter 추가 및 Activity 실행
Debugging Throw Error & Log
4부 - 안드로이드 디바이스 드라이버
Character Device, Block Device, Network Device
Cross compiler (CodeSourcery G++), busybox 설치
Basic Character 디바이스 드라이버
NDK를 이용한 빌드
LED 디바이스 드라이버
Key 드라이버 & Event 처리
안드로이드 Key event 처리
WM8960, SPDIF Driver 및 Setting 메뉴 변경
망고64, 망고100 소개
Mango64 (S3C6410 EVB)
| CPU: Samsung S3C6410X ARM1176JZF-S 667MHz
| 128M MobileDDR
| 256M NAND, 4M NOR Flash
| WM8960 Audio Codec, LAN9220
| USB, SD, TV-out
| WiFi (Wi2Wi) module, GPS
| Camera ExpansionPort
| ATA HDD Connector
| 3-Axis Acceleration Sensor, Pressure Sensor
Mango100 (S5PC100)
| CPU: Samsung S5PC100 Cortex-A8 667/800MHz
| 256M Mobi|eDDR,256MNANDF|ash
| SD/MMC Boot
| WM8960 Audio Codec, |AN9220
| USB, HDMI 1.2, TV-out
| Camera ExpansionPort
| ATA HDD Connector
| Expansion Connectors: IrDA, Camera, I2S, SPI0/SPI1, SDIO0/2, EBI, UART, |CD
목차
목차
목 차 4
1부 ?-Introduction & 환경 구축 18
1. Introduction 19
1.1. 이 책의 목적
1.2. 안드로이드, Android 19
1.3. 안드로이드를 공부하기 위한 기반 지식 20
1.4. 안드로이드의 어느 부분을 공부할 것인가? 21
1.5. 안드로이드 버전 22
1.6. 개발 환경 갖추기 25
2. VMware & 리눅스(Ubuntu) 환경 구축 26
2.1. VMware 및 우분투 설치 26
2.2. 우분투 기초 활용 33
3. 리눅스(Ubuntu) 에디터 gedit & vim 46
3.1. gedit 46
3.2. vim 48
4. Host PC와 파일 공유 - VMware Tools & 삼바(Samba) 63
4.1. VMware Tools 63
4.2. VMware Tools를 이용한 파일 공유 69
4.3. 삼바 (Samba) 이용 73
5. 망고64 하드웨어와 부팅모드 설정 84
5.1. 망고 64 하드웨어 사양 84
5.2. 망고 64 부품 면 86
5.3. 망고 64 보드 LCD 면 87
5.4. 망고 64 구성도 88
5.5. Boot Option 선택 89
5.6. NAND Mode로 부팅하기 90
6. 망고100 하드웨어와 부팅모드 설정 91
6.1. Introduction 91
6.2. 하드웨어 사양 92
6.3. 보드 구성 93
6.4. Boot Option 선택 96
7. 우분투 minicom 및 네트워크 설정 104
7.1. 우분투 minicom 설정 104
7.2. 우분투 네트워크 설정 109
8. 툴체인(Cross-Compiler) 설치 119
8.1. Tool chain 이란? 119
8.2. GCC 4.2.2 다운로드 119
8.3. 툴체인 설치 120
8.4. 툴체인 환경 설정 121
8.5. 툴체인 확인 122
9. 안드로이드를 위한 환경 설정과 소스 코드 다운로드 124
9.1. Java 5 설치 124
9.2. 기타 패키지 설치 128
9.3. 안드로이드 소스 코드 다운로드 129
2부 ? 망고64, 망고100에 안드로이드 포팅 137
10. (망고64) DNW 수행 및 U-Boot 구동 138
10.1. DNW 실행 및 설정 138
10.2. 망고보드 연결 및 U-Boot 구동 140
10.3. Cross-Cable을 이용한 직접 연결 147
11. (망고64) Kernel 및 안드로이드 파일시스템 포팅 150
11.1. Kernel 및 안드로이드 소스 다운로드 150
11.2. Kernel 소스 빌드 151
11.3. Kernel 다운로드 후 NAND 저장 및 부팅 155
11.4. 안드로이드 Cupcake 빌드 및 루트 파일시스템 생성 159
11.5. NAND Write 및 부팅 166
11.6. 안드로이드 포팅 과정 정리 169
12. (망고100) USB 부팅과 U-Boot Porting 171
12.1. USB 부팅 모드 시험 171
12.2. U-Boot Porting 및 NAND 부팅 모드 시험 178
13. (망고100) Kernel 및 안드로이드 파일시스템 포팅 189
13.1. Kernel 및 안드로이드 소스 다운로드 189
13.2. Kernel 소스 빌드 190
13.3. Kernel 다운로드 후 NAND 저장 및 부팅 194
13.4. 안드로이드 Eclair 빌드 및 루트 파일시스템 생성 201
13.5. NAND Write 및 부팅 205
14. (망고100) Eclair 빌드 과정 분석 214
14.1. CPU_JOB_NUM 계산 214
14.2. 시간 계산 215
14.3. make PRODUCT-mango100-eng 수행 216
14.4. 루트 파일시스템 용 폴더 작업 219
15. (망고100) SD Card를 이용한 쉬운 안드로이드 포팅 221
15.1. 이미지, 툴, 및 소스 코드 다운로드 221
15.2. SD Booting Image를 T-flash에 다운로드 하기 224
15.3. SD Booting 하기 229
15.4. SD를 이용한 NAND 파일시스템 구축 231
15.5. SD 부팅에서 직접 안드로이드 파일시스템 구동 239
16. (망고100) sdwriter & build_filesystem 스크립트 분석 242
16.1. sdwriter 내용 분석 242
16.2. build_filesystem 내용 분석 250
17. 커널 빌드 과정에서의 config 변경 263
17.1. make xxx_config 263
17.2. make menuconfig 264
17.3. make xconfig 267
18. NFS로 구동시키기 270
18.1. NFS (Network File System) 란? 270
18.2. NFS 서버 설정 271
18.3. 망고64 NFS 부팅 274
18.4. 망고100 NFS 부팅 279
3부 ? 안드로이드 SDK & Application 282
19. 리눅스와 안드로이드 개요 283
19.1. 리눅스 (Linux)의 개요 283
19.2. 안드로이드 (Android)의 개요 285
20. 안드로이드 SDK & EClipse 290
20.1. SDK 설치 전 준비 과정 290
20.2. SDK 설치 292
21. 최초 어플리케이션 Hello Android 315
21.1. Hello Android 프로젝트 생성 315
21.2. Android Virtual Device (AVD) 만들기 및 수행 320
21.3. Hello Android 내용 분석 323
22. ADB를 이용 망고 보드에 어플리케이션 구동 332
22.1. (망고64) NFS에 복사해서 구동시키기 332
22.2. (망고64) ADB를 이용해서 구동시키기 335
22.3. DDMS (Dalvik Debug Monitor Service) 사용 345
22.4. (망고64) Ethernet을 이용해서 ADB 구동시키기 351
22.5. 망고100 용 Hello Android 생성 355
22.6. (망고100) NFS에 복사해서 구동시키기 359
22.7. (망고100) ADB를 이용해서 구동시키기 360
22.8. (망고100) Ethernet을 이용해서 ADB 구동시키기 363
23. Android Application 기초 사항 366
23.1. Android API Levels 366
23.2. Application과 Activity 이해 367
23.3. Android Project의 기본적인 files 368
24. Image View와 Button 만들기 381
24.1. Image View 만들기 381
24.2. Button 만들기 391
25. Activity Creation & Execute 398
25.1. Activity 생성 ? Class 추가 398
25.2. Class 변경 ? Super Class 추가 399
25.3. Layout XML 파일 추가 401
25.4. AndroidManifest.xml 파일 수정 403
25.5. onCreate method 생성 408
25.6. Intent Filter 추가 및 Activity 실행 409
26. Debugging Throw Error & Log 413
26.1. Open Perspective ? DDMS, Debug 413
26.2. Throw Error 수행 414
26.3. 안드로이드 Log 419
4부 ? 안드로이드 디바이스 드라이버 423
27. 리눅스 디바이스 드라이버 개요 424
27.1. 디바이스와 디바이스 드라이버 424
27.2. 디바이스 드라이버 종류 424
28. 망고보드에서 HelloWorld 모듈 돌리기 429
28.1. 소스코드 분석 429
28.2. 망고64에서의 수행 433
28.3. 망고100에서의 수행 439
29. Cross compiler (CodeSourcery G++) 설치하기 442
29.1. Code Sourcery G++ 다운로드 442
29.2. Code Sourcery G++ 설치 446
29.3. 설치 확인 및 Path 설정 450
30. 안드로이드 파일시스템에 busybox 설치하기 453
30.1. busybox 개요 453
30.2. busybox 다운로드와 빌드 454
30.3. 망고64에 설치해서 수행시키기 461
30.4. minicom 컬러로 수행하기 464
30.5. 망고100에 설치해서 수행시키기 466
30.6. BusyBox shell에서도 alias를 사용해보자 467
31. Basic Character 디바이스 드라이버 470
31.1. 등록 함수 register_chrdev & unregister_chrdev 470
31.2. file_operations 적용 479
31.3. Application 구현 485
32. NDK를 이용한 빌드 489
32.1. NDK 개요 489
32.2. Cygwin 설치 490
32.3. NDK 설치 500
32.4. NDK로 샘플 프로그램 빌드하기 502
32.5. Eclipse에서 Hello-jni 실행 503
32.6. BasicCharDD 어플리케이션을 NDK로 빌드하기 506
33. (망고64) LED 디바이스 드라이버 509
33.1. 하드웨어 분석 509
33.2. 디바이스 드라이버 작성 511
33.3. Simple 어플리케이션 작성 520
33.4. 안드로이드 어플리케이션에서 LED 구동하기 523
34. 삼성 2.6.29 커널과 안드로이드 커널 코드 다운로드 및 비교 539
34.1. 목적 및 개요 539
34.2. 2.6.29-samsung 다운로드 539
34.3. 삼성 원본 커널과 망고 보드 커널 비교 542
34.4. 안드로이드 커널 543
34.5. 안드로이드 GIT Platform 분석 547
35. Key 드라이버 & Event 처리 549
35.1. 회로도 분석 549
35.2. 커널 Config 분석 551
35.3. Keypad 드라이버 소스 코드 추가 553
35.4. Input Event 및 TIMER_STATS 확인 556
35.5. KEYPAD 드라이버 소스 분석 560
35.6. 안드로이드 Key event 처리 565
36. (망고100) WM8960, SPDIF Driver 및 Setting 메뉴 변경 580
36.1. 기본 동작 확인 580
36.2. Codec Driver (WM8960) 582
36.3. HDMI S/PDIF Driver 586
36.4. 적용 소스 검토 및 확인 590
36.5. Android 메뉴 생성 ? 어플리케이션 & 프레임워크 부분 변경 36.6. Android Binder 및 초기화 과정 600
36.7. Sound Mode 변경 과정 603
맺음말 608
리눅스 참고 사이트 목록 609
Linux 커널 공식 사이트 609
리눅스 커널 Config 찾기 609
리눅스 ID 및 소스 검색 611
<파일 검색> 612
Linux 매뉴얼 검색 613
색 인 614
저자
저자
서울대학교 컴퓨터공학과 석사
현대전자주식회사 중대형컴퓨터 개발
VK주식회사 GSM 핸드폰 개발
코아로직 사업본부장
현) 씨알지테크놀러지 대표이사
네이버 embeddedcrazyboys 카페 필명 "설렁설렁"
Your payment information is processed securely. We do not store credit card details nor have access to your credit card information.

