成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Android 系統 Binder 詳解

移動開發 Android
binder是什么?可以理解為Andorid系統中的一種進程間通信的方式,雖然Android系統基于Linux,但是它并沒有采用Linux自帶的進程間通信方式,而是采用了更高效的binder,理解binder對于理解Android系統具有至關重要的作用。

[[422252]]

本文轉載自微信公眾號「嵌入式Linux系統開發」,作者asonangel。轉載本文請聯系嵌入式Linux系統開發公眾號。

最近博主在研究Android系統的binder。

binder是什么?可以理解為Andorid系統中的一種進程間通信的方式,雖然Android系統基于Linux,但是它并沒有采用Linux自帶的進程間通信方式,而是采用了更高效的binder,理解binder對于理解Android系統具有至關重要的作用。binder原理圖如下:

Binder通信采用c/s架構,和Socket一樣,但是稍微復雜。binder組件包含Client、Server、ServiceManager以及binder驅動,其中ServiceManager用于管理系統中的各種服務。

具體通信過程:Server先向ServiceManager注冊一個服務,其實也就是一個字符串。然后Client從ServiceManager獲取服務,關鍵字就是注冊的字符串。這樣Client和Server就可以通信。真正的數據流是走了底層的Linux內核空間的binder驅動,但這個是被封裝的,所以不用關心真正的binder驅動,只管在Client和Server之間調用函數收發數據就行。就是服務端的onTransact函數和客戶端remote()->transact(TEST, data, &reply),發送的數據存在data中,返回的數據存在reply中。Client和Server都可以收發數據。

安卓系統架構圖:

理解了binder以后,具體分析:binder驅動肯定是在最下面的Linux內核中,那么binder的客戶端和服務器,可以存在在任何地方。舉例:

1、bindder服務器在app層,客戶端在app層。2、bindder服務器在native層,客戶端在app層。3、bindder服務器在app層,客戶端在native層。4、bindder服務器在native層,客戶端在native層。

以上四種情況都可以。

說的比較抽象,我發兩篇文章連接,這兩篇文章的代碼我已經驗證過,可以使用。需要注意的是,APP層的binder由java語言編寫,native層的binder,由C++語言編寫。但其實接口都很相似。

但是要看懂代碼,需要先理解幾個類:

native層binder真實的繼承關系如下:

對稱一點可能方便理解:

我們主要是從BnInterface和BpInterface繼承,去實現自己的服務器和客戶端。

bp:binder proxy

bn:binder native

 

sm:ServiceManager

 

責任編輯:武曉燕 來源: 嵌入式Linux系統開發
相關推薦

2023-10-09 08:24:54

IPC機制Binder

2010-03-04 09:46:51

Android Bin

2013-01-06 13:06:02

2011-08-11 13:41:06

手機病毒

2016-11-28 14:44:55

ANDROID BIN通信架構

2010-01-28 14:35:21

Android系統信息

2016-11-28 14:11:24

ANDROID BIN通信架構

2013-01-06 15:20:58

Android開發Android振動器

2010-01-25 14:13:36

Android菜單系統

2011-05-05 14:44:43

SurfaceFlinSurfaceActivity

2011-05-04 09:48:14

2023-03-23 09:33:22

Android移動開發

2011-06-01 10:48:28

Android系統

2025-03-10 00:17:00

2011-05-16 09:27:14

Android 3.1谷歌

2013-11-05 11:25:21

Android 4.4系統詳解

2014-07-24 09:11:34

2017-01-11 19:05:45

AndroidAndroid Loa詳解

2013-11-14 16:50:08

2014-07-28 10:09:30

Android
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91免费视频 | 欧美精品久久久久 | 一区二区视频 | 欧美日韩国产精品一区二区 | 91av大全| 国产午夜视频 | 99re在线视频 | av黄色在线 | 国产视频一区在线 | 91国内精品久久 | 91精品国产高清久久久久久久久 | 国产精品日本一区二区在线播放 | 最新一级毛片 | 久久1区| 国产精品国产馆在线真实露脸 | 视频一区二区三区四区五区 | 久久在线 | 黄色91在线| 国产区精品 | 中文一区 | 亚洲国产精品久久 | 久久精品在线 | 国产精品一区久久久 | 亚洲欧美在线视频 | 日本又色又爽又黄又高潮 | 国产成人午夜精品影院游乐网 | 亚洲精品一区二区三区在线观看 | 九九九久久国产免费 | 在线一区视频 | 日韩精品一区二区三区视频播放 | 日皮视频免费 | 欧美日韩亚洲视频 | 久久精品免费 | 日韩三区在线观看 | 久久激情视频 | 国产女人与拘做视频免费 | 超碰电影 | 毛片av免费在线观看 | 精品国产乱码久久久久久中文 | 欧美手机在线 | 日韩成人在线观看 |