精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

Andorid系統中binder是什么意思

麥辣雞腿堡 ? 來源:嵌入式Linux系統開發 ? 作者:Jasonangel ? 2023-10-07 15:13 ? 次閱讀

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++語言編寫。但其實接口都很相似。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 通信
    +關注

    關注

    18

    文章

    5977

    瀏覽量

    135871
  • Andorid
    +關注

    關注

    0

    文章

    7

    瀏覽量

    6981
  • 系統
    +關注

    關注

    1

    文章

    1010

    瀏覽量

    21320
收藏 人收藏

    評論

    相關推薦

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

    汽車電子系統
    學習電子
    發布于 :2022年11月20日 15:15:49

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

    汽車電子系統
    學習電子
    發布于 :2022年11月20日 15:16:47

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

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

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

    服務框架的層次結構 34810.1.2 java服務框架各個類間的相互作用 35110.2 運行機制 35410.2.1 java服務框架初始化 35510.2.2 binder 35510.2.3
    發表于 09-26 09:47

    openHarmony IPC數據調用的過程分享

    Binder驅動對應的Binder實體的Binder引用的描述。 }; void*cookie; // 當type=BINDER_TYPE_BIN
    發表于 03-30 09:26

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

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

    WifiStateMachine死鎖導致Binder Thread超限觸發Watchdog重啟方案

    1、WifiStateMachine死鎖導致Binder Thread超限觸發Watchdog重啟  系統信息:問題發生的系統是Android P,跑壓測復現到,復現過兩次,目前看起來是google
    發表于 10-19 18:00

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

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

    ARM成立ANDORID解決方案中心

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

    Andorid在平板電腦中的應用

    本內容介紹了Andorid在平板電腦中的應用,詳細介紹了Andorid再結構及功能和平板電腦的發展及技術方面知識
    發表于 07-18 10:26 ?221次下載
    <b class='flag-5'>Andorid</b>在平板電腦中的應用

    異步binder call是如何阻塞整個系統

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

    谷歌發布Andorid系統的新補丁,面向Android 10的BUG修復和后臺優化

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

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

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

    Android系統啟動流程

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

    如何在AOSP12查看binder調用信息呢?

    部分APP不會使用常規的framework api調用系統的一些函數獲取信息,但是如果他自己構建binder調用的信息獲取,最后都會跑到這個函數中去。
    的頭像 發表于 11-27 09:40 ?811次閱讀