Android Service : Binder
什麼是Binder
Binder是Android的一種通信機制,用于Service和Client進行通信。
Binder可以用來做什麼
Binder是可以用作Service和Client之間通信。無論Service和Client是否在同一個程序内,Binder都可以完成Service和Client之間的通信。是以Binder可以用作跨程序通信,也就是Android IPC的一種機制。
Binder原理
Binder的原理如果從Android的代碼角度講,比較複雜。如果看代碼的話涉及Framework、native層、驅動等等,比較複雜,也不便于了解。
簡單點說,Binder通信的原理就是,Service和Client利用linux的一個裝置節點(檔案),通過這個裝置節點對Service和Client進行資料交換,進而實作Service和Client通信。
打個不恰當的比喻,Service好比是一個島,而Client是大陸,Service和Client通信,相當于島(service)和大陸(client)進行溝通。島和大陸溝通需要橋梁,而Binder就相當于這個橋梁。
島(service)和大陸(client)之間,有了橋梁(Binder)之後,就可以通過這個橋梁(Binder)進行溝通啦。島(servcie)可以把東東發給大陸(client);相反,大陸(client)也可以發送東東給島(service)
對于需要從Android代碼角度是分析、了解Binder的夥伴們,請參考下面:
- android IPC及原理簡介
- Android的IPC機制Binder的各個部分