Android Binder進階篇二
阿新 • • 發佈:2021-10-04
一、Binder是什麼?
Binder是Android提供的程序IPC通訊的工具。
二、Binder的優點?
在Linux中程序IPC通訊方式有很多,其中最常用的管道、Socket、共享記憶體、訊號等。為什麼Android還要設計一套新的IPC通訊機制。
- 效能,管道和共享記憶體都是比較高效的IPC通訊方式。
- 方便易用,管道和共享記憶體都是在核心開闢快取的實現原理,不過,使用起來很複雜,使用上很容易出問題。
- 安全性,Linux上提供的IPC通訊都是不安全的,如:Socket通訊,Socket的IP地址是開放的,只要知道IP地址都可以進行IPC通訊,管道也是一樣,命名管道是通過管道名通訊的,只要知道管道名就可以通訊。IPC安全性是如何體現,IPC通訊安全主要是呼叫方的身份資訊新增,呼叫方的身份資訊不能在呼叫方新增吧,這樣也不安全,安全的方式是在IPC通訊機制內部的核心態新增呼叫方資訊,就是在由IPC機制在核心中新增。
Binder是基於以上三點設計的IPC通訊。
三、原理
1. Binder啟動
- 開啟Binder驅動(dev/binder)。
- 記憶體對映,分配緩衝區。
- 啟動Binder執行緒。