android IPC之binder通信機(jī)制
更新時間:2012年11月28日 10:30:45 作者:
Binder通信機(jī)制說來簡單,但是在使用的過程的遇到了一些問題,最后終于解決了,現(xiàn)在曬出來和大家分享一下,希望可以幫助你們
Binder通信機(jī)制說來簡單,但是在使用的過程的遇到了一些問題,最后終于解決了,在這總結(jié)一下,一并分享給大家:
1、要使用Binder通信,首先要定義接口,然后實(shí)現(xiàn)服務(wù)端BnInterface***和客戶端BpInterface***,說到底一個是把參數(shù)解包,一個是把參數(shù)打包。
2、服務(wù)端要能夠接收Binder調(diào)用請求,要具備兩個條件:一個是實(shí)現(xiàn)Bn接口,另一個是調(diào)用IPCProcess()-》self->startThreadPool()
IPCThread()->Self->joinThreadPool();
這兩句話非常關(guān)鍵,因?yàn)樗麊恿艘粋€線程在后臺,負(fù)責(zé)讀取Binder接口調(diào)用的請求,然后調(diào)用具體接口,如果沒有這個線程,你的服務(wù)是收不到調(diào)用請求的,客戶端會調(diào)用失敗(died)。
對于客戶端也一樣,如果要支持回調(diào),也必須要啟動讀取Binder調(diào)用的線程,否則,回調(diào)失敗。
1、要使用Binder通信,首先要定義接口,然后實(shí)現(xiàn)服務(wù)端BnInterface***和客戶端BpInterface***,說到底一個是把參數(shù)解包,一個是把參數(shù)打包。
2、服務(wù)端要能夠接收Binder調(diào)用請求,要具備兩個條件:一個是實(shí)現(xiàn)Bn接口,另一個是調(diào)用IPCProcess()-》self->startThreadPool()
IPCThread()->Self->joinThreadPool();
這兩句話非常關(guān)鍵,因?yàn)樗麊恿艘粋€線程在后臺,負(fù)責(zé)讀取Binder接口調(diào)用的請求,然后調(diào)用具體接口,如果沒有這個線程,你的服務(wù)是收不到調(diào)用請求的,客戶端會調(diào)用失敗(died)。
對于客戶端也一樣,如果要支持回調(diào),也必須要啟動讀取Binder調(diào)用的線程,否則,回調(diào)失敗。
相關(guān)文章
Flutter開發(fā)之Shortcuts快捷鍵組件的用法詳解
在桌面端的開發(fā)中,鍵盤快捷鍵是非常常見而必要的,F(xiàn)lutter?既然可以開發(fā)桌面端應(yīng)用,那必然要提供自定義快捷鍵,所以本文就來和大家講講Shortcuts組件的簡單使用吧2023-05-05
Android Studio如何查看源碼并調(diào)試的方法步驟
這篇文章主要介紹了Android Studio如何查看源碼并調(diào)試的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05
Android重寫View實(shí)現(xiàn)全新的控件
這篇文章主要介紹了Android重寫View來實(shí)現(xiàn)全新的控件,最難的一種自定義控件形式,感興趣的小伙伴們可以參考一下2016-05-05
Android新特性ConstraintLayout完全解析
這篇文章主要為大家詳細(xì)介紹了Android新特性ConstraintLayout ,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-10-10
Android依據(jù)名字通過反射獲取在drawable中的圖片
依據(jù)圖片的名字,通過反射獲取其在drawable中的ID,在根據(jù)此ID顯示圖片,具體實(shí)現(xiàn)如下,感興趣的朋友可以參考下哈2013-06-06
通過實(shí)例簡單講解Android App中的Activity組件
這篇文章主要介紹了通過Android App中的Activity組件,包括Activity的定義和繼承以及啟動等基本知識,需要的朋友可以參考下2016-04-04
Android BroadcastReceiver廣播注冊方式總結(jié)
這篇文章主要介紹了Android BroadcastReceiver廣播注冊方式總結(jié)的相關(guān)資料,需要的朋友可以參考下2017-01-01

