구현을 통해 배우는 설계철학

안드로이드 프레임워크 구조와 설계

수강대상

C++ 기본 문법을 알고 있는 임베디드 개발자
C++ 기본 문법을 알고 있는 안드로이드 어플 개발자

선수과정

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

강의환경

젤리빈

안드로이드 Framework 소스에는 sp, wp 등의 스마트 포인터 및 각종 traits 기술, 인터페이스 기반의 설계, INTERFACE_CAST 등 다양한 객체 지향 디자인과 Generic 기술이 들어 있습니다.



확장성을 고려한 전체적인 디자인은 객체 지향을 따르면서도 성능을 고려해서 다양한 Generic 기술을 사용하고 있습니다.



하지만 Framework를 분석하고자 하는 많은 분들이 이런 디자인 기술과 Generic 기술을 제대로 이해하지 못하기 때문에 분석에 많은 어려움을 겪고 있습니다.




본 과정에서는 안드로이드 프레임워크가 사용하는 다양한 고급 문법, 테크닉, template 문법 정리 그리고, 다양한 디자인 철학과 Generic 기술을 배우는 과정입니다.




본 과정을 통해서 안드로이드 프레임 워크에 대한 통찰력있는 시각을 얻을수 있습니다.




본과정을 통해서



1. 안드로이드 프레임워크 소스 코드에서 볼수 있는 복잡한 C++ 표현식을 배우게 됩니다.


2. sp, wp, String16, RefBase 등 안드로이드의 주요 클래스를 직접 구현을 통해서 이해 하게 됩니다.


3. 바인더 IPC를 C++ Wrapping 한 Proxy, Stub을 직접 구현해 보고, BnInterface, BpInterface, IInterface, interface_cast등을 직접 만들어 보면서 원리를 배우게 됩니다.



결국 안드로이드 프레임워크의 주요 클래스를 직접 구현해 보면서 설계철학을 깨닫고 정확하게 프레임워크를 이해하게 됩니다.

  • Section1. 안드로이드가 사용하는 C++고급 문법
    • 변환과 explicit
    • C++ explicit cast
    • reference counting
    • smart pointer
    • const object, const member function
  • Section2. template 고급 문법 및 기법
    • Reference Counting
    • 스마트 포인터( strong pointer, weak pointer)
    • template template
    • CRTP
    • template 상속
    • template interface
    • traits 기법
    • 안드로이드 소스에서 볼수 있는 다양한 template 기술
  • Section3. template 디자인 패턴
    • GLSP
    • Mix In Template
    • singletone
    • 클래스 템플릿안의 함수 템플릿기술
    • 안드로이드 프레임워크 내부의 다양한 디자인 기법과 철학
  • Section4. 안드로이드 소스 분석및 구현
    • sp, wp, refBase 등의 기본 클래스 구현 및 분석
    • String8, List, Vector등의 구현및 분석
    • IBinder, BBinder, Parcel, BnInterface, BpInterface, IInterface 등이 구현및 분석