로딩
요청 처리 중입니다...

Android/JAVA - Binder Source Analysis (바인더 소스 분석)

 Android/JAVA - Binder Source Analysis (바인더 소스 분석)

Binder를 사용하는데 굳이 Binder의 동작에 대해 알 필요는 없다. 그러나 Binder에 대해 정확히 알면 활용면에서도 그렇고 디버깅에서도 많은 도움이 된다.

그리고 세상에 알아서 나쁜 지식은 없다. 관련된 함수를 모두 분석하진 않겠다.

오히려 더 어렵게 느껴질 뿐이다. 어떤 역할을 하는지 알면 필요할 때 찾아보면 될 것이다.

Binder는 service_manager와 함께 시작된다. service_manager의 main함수를 살펴보자. binder_open()함수를 통해서 "/dev/binder"를 open하고 binder_loop()함수를 실행하는데, 이 때 인자로 binder_state 포인터 변수와 BINDER_SERVICE_MANAGER를 넘긴다. 이것은 필요에 따라 실행되는 프로세스가 아닌, 안드로이드 부팅과 함께 실행되어 종료될때까지 동작한다.

int main(...