99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Andorid系統(tǒng)中binder是什么意思

麥辣雞腿堡 ? 來源:嵌入式Linux系統(tǒng)開發(fā) ? 作者:Jasonangel ? 2023-10-07 15:13 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

圖片

Binder通信采用c/s架構(gòu),和Socket一樣,但是稍微復(fù)雜。binder組件包含Client、Server、ServiceManager以及binder驅(qū)動,其中ServiceManager用于管理系統(tǒng)中的各種服務(wù)。

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

安卓系統(tǒng)架構(gòu)圖:

圖片

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

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

以上四種情況都可以。

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 通信
    +關(guān)注

    關(guān)注

    18

    文章

    6207

    瀏覽量

    137863
  • Andorid
    +關(guān)注

    關(guān)注

    0

    文章

    7

    瀏覽量

    7143
  • 系統(tǒng)
    +關(guān)注

    關(guān)注

    1

    文章

    1032

    瀏覽量

    21828
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    汽車車身控制與舒適性系統(tǒng)檢修:控門鎖系統(tǒng)控制電路#汽車維修

    汽車電子系統(tǒng)
    學(xué)習(xí)電子
    發(fā)布于 :2022年11月20日 15:15:49

    汽車車身控制與舒適性系統(tǒng)檢修:控門鎖系統(tǒng)故障診斷和排除#汽車維修

    汽車電子系統(tǒng)
    學(xué)習(xí)電子
    發(fā)布于 :2022年11月20日 15:16:47

    項目源碼--Android團購類客戶端

    數(shù)據(jù)處理模塊(5)Android的Sqlite數(shù)據(jù)庫以及Sqlite數(shù)據(jù)的使用(6)Andorid的定位系統(tǒng)(7)Andorid的數(shù)據(jù)恢復(fù)系統(tǒng)(8)支持了圖片模和文字模式源碼目錄定位團
    發(fā)表于 07-15 16:44

    [資料分享]+Android框架揭秘

    服務(wù)框架的層次結(jié)構(gòu) 34810.1.2 java服務(wù)框架各個類間的相互作用 35110.2 運行機制 35410.2.1 java服務(wù)框架初始化 35510.2.2 binder 35510.2.3
    發(fā)表于 09-26 09:47

    openHarmony IPC數(shù)據(jù)調(diào)用的過程分享

    Binder驅(qū)動對應(yīng)的Binder實體的Binder引用的描述。 }; void*cookie; // 當(dāng)type=BINDER_TYPE_BIN
    發(fā)表于 03-30 09:26

    移植openharmony啟動后一直打印binder驅(qū)動程序報錯是怎么回事

    在移植openharmony過程,由于添加了新組件,啟動后,一直打印binder驅(qū)動程序報錯,錯誤如下所示。01-01 00:00:45.218 1 1 E 00719/Init
    發(fā)表于 05-23 17:27

    WifiStateMachine死鎖導(dǎo)致Binder Thread超限觸發(fā)Watchdog重啟方案

    1、WifiStateMachine死鎖導(dǎo)致Binder Thread超限觸發(fā)Watchdog重啟  系統(tǒng)信息:問題發(fā)生的系統(tǒng)是Android P,跑壓測復(fù)現(xiàn)到,復(fù)現(xiàn)過兩次,目前看起來是google
    發(fā)表于 10-19 18:00

    imx8mm andorid10無法接入GPS,需要對Android10源碼做哪些改動?

    你好 我用的是imx8mm andorid10,gps是ttymxc2,cat是可以的。 evk_8mm:/ # 貓 /dev/ttymxc2 $BDGSV
    發(fā)表于 04-25 07:31

    ARM成立ANDORID解決方案中心

    ARM成立ANDORID解決方案中心 ARM公司宣布設(shè)立Android解決方案中心,該中心為設(shè)計和開發(fā)基于ARM技術(shù)的、并且運行在Android(源自O(shè)pen Handset Alliance™的開源平臺)平臺的人
    發(fā)表于 11-18 09:18 ?989次閱讀

    Andorid在平板電腦中的應(yīng)用

    本內(nèi)容介紹了Andorid在平板電腦中的應(yīng)用,詳細介紹了Andorid再結(jié)構(gòu)及功能和平板電腦的發(fā)展及技術(shù)方面知識
    發(fā)表于 07-18 10:26 ?221次下載
    <b class='flag-5'>Andorid</b>在平板電腦中的應(yīng)用

    異步binder call是如何阻塞整個系統(tǒng)

    Ramdump:把系統(tǒng)memory某一個時間點的數(shù)據(jù)信息保存起來的內(nèi)存崩潰文件,屬于ELF文件格式。 當(dāng)系統(tǒng)發(fā)生致命錯誤無法恢復(fù)的時候,主動觸發(fā)抓取ramdump能異常現(xiàn)場保留下來,這是屬于高級調(diào)試秘籍。
    的頭像 發(fā)表于 05-21 17:52 ?7518次閱讀
    異步<b class='flag-5'>binder</b> call是如何阻塞整個<b class='flag-5'>系統(tǒng)</b>的

    谷歌發(fā)布Andorid系統(tǒng)的新補丁,面向Android 10的BUG修復(fù)和后臺優(yōu)化

    今天谷歌也是早早就發(fā)布了Andorid系統(tǒng)的新補丁,這是11月份的安全補丁,用來修復(fù)近期曝光的安全漏洞同時還帶來了面向Android 10的BUG修復(fù)和后臺優(yōu)化。
    的頭像 發(fā)表于 11-05 15:16 ?2869次閱讀

    鋰電池測試箱----德國BINDER賓德的詳細介紹

    德國賓德BINDER電池測試箱適用于對鋰離子電池和模塊進行測試。在和鋰離子電池打交道的時候,可能存在各種危險。系統(tǒng)操作員需要對風(fēng)險進行評估,并通過合適的安全方案來應(yīng)對風(fēng)險。德國BINDER賓德鋰電池
    發(fā)表于 09-27 17:35 ?2226次閱讀
    鋰電池測試箱----德國<b class='flag-5'>BINDER</b>賓德的詳細介紹

    Android系統(tǒng)啟動流程

    Andorid 系統(tǒng)是在嵌入式行業(yè)中廣泛應(yīng)用的系統(tǒng),手機、平板、機器人、汽車系統(tǒng)都有使用安卓系統(tǒng)
    的頭像 發(fā)表于 10-07 14:58 ?937次閱讀
    Android<b class='flag-5'>系統(tǒng)</b>啟動流程

    如何在AOSP12查看binder調(diào)用信息呢?

    部分APP不會使用常規(guī)的framework api調(diào)用系統(tǒng)的一些函數(shù)獲取信息,但是如果他自己構(gòu)建binder調(diào)用的信息獲取,最后都會跑到這個函數(shù)中去。
    的頭像 發(fā)表于 11-27 09:40 ?1233次閱讀