안드로이드 바인더(Android Binder) 강의

` </wp-content/uploads/2009/10/android-logo2.jpg>`__android-logo안드로이드 바인더에 대한 짤막한 강의를 준비했습니다. 오는 10월 23일 "제4회 Korea Android 세미나"에서 1시간 정도 발표할 예정입니다. 혹시 참가하시는 분들은 나중에 피드백 부탁 드립니다. 강의에 포함되었으면 하는 내용이 있으면 미리 알려주셔도 좋습니다.  안드로이드의 서비스들이 기초하고 있는 RPC(Remote Procedure Call) 에 대한 이해를 제공하는 것이 목적입니다. 이 번 강의는 다섯 꼭지로 구성됩니다.

  1. 바인더의 탄생 - 바인더의 역사적 맥락과 이름의 의미를 정리합니다. 오픈바인더(OpenBinder)를 짚고 가야지요. 하지만 이번 강의는 오픈바인더가 아니라 안드로이드 바인더입니다.
  2. 바인더 IPC - 커널 모듈인 바인더 IPC(Inter-process Communication) 드라이버(Driver)의 사용법을 요약하고, RPC 와 관련된 신호의 흐름과 쓰레드 관련 이슈들을 설명합니다.
  3. 바인더의 데이터 전달 - 함수 인자와 리턴 값이 전달되는 과정을 분석합니다. 드라이버가 인터페이스(Interface)를 매핑(Mapping)하는 방법을 소개합니다.
  4. 서비스 관리자(Service Manager) - 인터페이스를 등록하고 발견하는 기작(Mechanism)을 설명합니다. 컨텍스트 관리자(Context Manager)에 대한 설명과 함께, service 명령행 도구의 사용법을 예시합니다. C++ 구현, AIDL, Parcel 프로토콜이 간단히 언급됩니다.
  5. 바인더의 한계와 전망 - 바인더의 부족한 부분들을 정리하고, 향후 어떤 과제들이 남아있는지 진단합니다.

 모든 강의 내용은 안드로이드 1.6 (Donut) 을 기준으로 합니다. 액티비티 관리자(Activity Manager), Java 구현, 사용자 서비스 등의 고수준 영역에 대한 내용은 다음 기회로 미룹니다. 관련 포스트: