對Binder的理解?

2021-08-17 19:28:18 字數 532 閱讀 5305

直觀來說:

binder是android中的乙個類,他實現了ibiner介面。

從ipc角度來說:

binder是android中的一種跨程序通訊方式,binder還可以理解為一種虛擬的物理裝置,他的裝置驅動是/dev/binder,該通訊方式在linux中沒有;

從android framework角度來說:

binder是servicemanager連線各種manger(activitymanager,windowmanager,等等)和相應manger service的橋梁;

從android 應用層來說:

binder是客戶端和服務端進行通訊的媒介,當bindservice的時候,伺服器會返回乙個包含了服務端業務呼叫的binder物件,通過這個binder物件,客戶端就可以獲取服務端提供的服務和資料,這裡的服務包括普通服務和基於aidl的服務。

AIDL中Binder的個人理解

遠端service與客戶端通訊時,繫結服務後,服務端返回的binder物件,被客戶端接收後,客戶端呼叫該binder的物件的方法其實就是呼叫的服務端的方法。此時,若客戶端呼叫服務端的方法時傳入了客戶端實現的介面物件,服務端呼叫該介面物件的方法時,其實就是服務端呼叫的客戶端的方法 兩種情況的 被呼叫方...

簡單理解 Binder 呼叫流程

從大年初一購買電影票說起 客戶端 獲取服務端在 binder 驅動中對應的引用,然後呼叫它的 transact 方法,向服務端傳送訊息 客戶端程序 服務端 該物件被建立後,內部則會啟動乙個隱藏執行緒,不斷的接收從客戶端傳送過來的資料,然後執行 binder 物件中的 ontransact 函式 bi...

從Android原始碼理解Binder

最近在看android原始碼,看到了binder部分,雖然對於這部分的內容感覺只理解了一小部分,但是畢竟還是看懂了小部分內容,所以想寫篇部落格記錄下自己的理解。在圖中,對於使用者空間,不同程序之間彼此是不能共享的,而核心空間卻是可共享的。在編寫應用程式時,如果想要實現binder機制,就需要以上四個...