簡析Binder機制 安卓開發藝術探索。

2021-09-09 06:04:28 字數 858 閱讀 6187

這幾天看了安卓開發藝術探索第二章,ipc總感覺還是寫個記錄比較好,下面說說以及的理解。

首先明白的一點,也就是很多部落格都說過,說到binder就要談到三個要素,服務端,binder,客戶端,binder在裡面中介者,這一點比較重要。下面談一下**部分。

說起來,用binder進行跨程序通訊很簡單,通過aidl介面,可以自動為我們生成**,但是問題也在這裡,生成的**容易操作,但是有時容易不好分析出來,因為它把服務端和客戶端的**放在一起了,比如與服務端有關的類就是stub,類中繼承了介面未實現的方法,同時stub也是乙個binder,那麼伺服器可以通過匿名內部類實現stub類中繼承的介面方法,然後把例項化的stub類作為binder進行返回。

與客戶端有關的**比較簡單,就是stub中asinste***ce()方法,利用binder進行例項化介面,然後通過呼叫介面物件的方法,進行通訊,實際的基礎的是客戶端transact()方法,與服務端ontransact()方法。

本章最後乙個binderpool連線池有點意思,為了解決有多個業務模組需要跨程序通訊,只需要乙個service。常規上每乙個跨程序模組都需要乙個service。它巧妙的利用「binder裡面裝binder",也就是說定義乙個aidl介面,介面中有乙個返回binder物件的方法,然後根據不同的客戶端返回不同的binder物件即可。

簡析安卓事件分發

ontouchevent,dispatchtouchevent,setontouchlistener 無論是down,move,up執行的順序都是 首先執行的是 dispatchtoucheventpublic boolean dispatchtouchevent motionevent event...

安卓的handler機制

一 定義 handler是訊息處理的機制,很多耗時的操作,如訪問網路 i o操作等不能在主線程中執行,而這些操作又與ui的變化相關聯。常常採用由子執行緒完成操作,傳送訊息使切換到主線程更新ui的辦法。當然也可以用來獲取資料等。與handle相關的類 message 訊息 messagequeue 訊...

180725 安卓 簽名機制

傳送者將公鑰公開,對於傳送資料的資訊摘要用私鑰加密 接受者用公鑰解密該內容,與接收資料的資訊摘要進行對比 從而保證 1.接收到的資料與發布資料相同 2.傳送者是公開公鑰的私鑰持有人 與https相同,公鑰必須可信才有意義 因此簽名也需要攜帶乙個由可信ca機構簽發的證書,證明該公鑰來自可信的傳送者 s...