안드로이드를 가장 깊이 있게 배울 수 있는

안드로이드 디바이스 드라이버

수강대상

가전, MID, PMP, CarNavigation 등 스마트폰을 제외한 스마트 정보기기에 안드로이드를 탑재하고자 하는 개발자
임베디드 환경 어플리케이션 개발자
안드로이드 전향 하려는 C/C++ 개발자
임베디드 시스템 소프트웨어 개발자

선수과정

기초 C 프로그래밍
기초 JAVA 프로그래밍
고급 자료구조
네트워크 프로그래밍

강의환경

linux kernel 2.6.29
Google Android 2.1/2.2
Samsung S5PC100 board

- 기존 임베디드 디바이스 드라이버 프로그램을 안드로이드 환경에 포팅한다.



- 안드로이드 바인더 드라이버를 집중 분석하고 프래임워크와 커널간의 프로그램 실행 과정을 이해한다.




- 안드로이드 애플리케이션은 Dalvik 가상머신에서 동작하는데 NDK는 개발자에게 C, C++ 같은 언어로 native-code를 사용해 애플리케이션의 부품을 구현할 수 있게 한다.




- 기존 c/c++로 구현된 많은 라이브러리와 어플리케이션을 안드로이드에 이식 하려면 NDK를 이용한 개발 방법이 필수 적인 요소가 된다.


  • Section1. 임베디드 개발 환경 구축
    • ubuntu 설치, toolchain설치, tftp 및 bootp설치, network환경설정, 시스템 환경설정
  • Section2. 리눅스 커널 / 부트로더
    • 커널 환경설정, 커널 환경설정 언어, 커널 patch, 시스템콜 추가, 커널 컴파일, uboot분석
  • Section3. 리눅스 커널 내부구조 분석
    • kernel 2.6 scheduler 동작방식
    • 인터럽트 동작 방식과 IDT 설정
    • 가상 파일 시스템 동작원리 이해
    • 메모리 관리 내부 동작 이해
    • 네트워크 패킷 처리 내부 동작 이해
  • Section4. Device Driver I
    • Device Driver 개요
    • kernel 2.6 device 모델
    • Device Driver 동작 방식
  • Section5. Device Driver II
    • touch screen 제어
    • 센서 디바이스 드라이버
    • 카메라 디바이스 드라이버
    • 버튼 디바이스 드라이버
  • Section6. 안드로이드 개요
    • 안드로이드 시스템의 구조
    • linux와 안드로이드 커널 구조 차이
    • 안드로이드 부팅과정
    • 안드로이드 파일 시스템
  • Section7. 안드로이드 포팅 방안
    • 안드로이드 이식 방안
    • 안드로이드 커널 개요
    • 안드로이드 Kernel 2.6.29의 특징
    • 안드로이드 source code 빌드
  • Section8. 안드로이드 저장매체
    • 안드로이드 루트 파일 시스템 제작
    • 안드로이드 커널 SD/MMC 인식
    • 안드로이드 커널 ADB USB 적용
  • Section9. 안드로이드 디바이스 드라이버
    • Binder driver 구조
    • 안드로이드 binder의 동작 방식
    • Binder의 서비스 실현
    • Binder의 제어의 흐름
    • touch screen을 이용한 정보기기 제어
  • Section10. 센서의 특징과 이용방안
    • 지자기 센서의 특성 및 이용방안
    • 가속도 센서의 특성 및 이용 방안
    • 온도/습도/조도 센서의 특성 및 이용방안