Android基礎相關面試問題-binder面試問題詳解

來源:互聯網
上載者:User

標籤:模型   訪問   man   androi   資料   訊號   隔離   通訊錄   運行   

Linux核心的基礎知識:

  • 進程隔離/虛擬位址空間:在作業系統中為了保護某個進程互不干擾就設計了一個叫“進程隔離”的技術,防止進程A可以操作進程B的資料。而進程隔離技術用到了虛擬位址空間,進程A的虛擬位址空間跟進程B的虛擬位址空間其實是不同的,而如果進程與進程之間要進行通知則需要某種通訊機制才能完成,在android裡面就是binder通訊機制。
  • 系統調用:因為系統對核心存在某種保護機制來告訴應用程式你只可能訪問某些許可的資源,不許可的資源是不能被訪問的,也就是把Linux的核心層與應用程式層抽象隔離,也就是核心層和使用者空間,使用者可以通用系統調用在使用者空間去訪問核心的某些程式。
  • binder驅動:在android系統中它是運行在核心空間當中,它負責各各使用者進程通過binder通訊的核心進行互動的一個模組則為binder驅動。可以通過它來訪問硬體。

Binder通訊機制介紹:

  •  為什麼要使用Binder?

    a、Android使用的Linux核心擁有著非常多的跨進程通訊機制,如:管道、socket等,那為什麼Android還要特意搞個Binder通訊機制呢?主要是以下兩點的考慮:
    b、效能:行動裝置中如果廣泛的使用跨進程通訊機制肯定會對通訊機制提出嚴格的要求,而Binder相比較傳統的進程通訊方式更加的高效。
    c、安全:由於傳統進程通訊方式沒有對通訊的雙方和身方做出嚴格的驗證,只有上層協議才會去架構,如socket串連的IP地址可以人為的偽造。而Binder身份校正也是android許可權模式的基礎。

  • binder通訊模式:

    a、電話基站:binder驅動
    b、通訊錄:serviceManager
    這裡用一個比較形像的例子來說明上面的通訊錄和電話基站在binder通訊模型中的作用:A同學要給B同學打電話,首先A同學會去從通訊錄中找到B同學的電話號碼,而serviceManager驅動的角色就相當於這裡說到的通訊錄,存了通訊雙方的一些類似電話號碼可以去識別對方的東東,但是找到電話號碼要想打通對方,還需要電話基站的支援,電話基站是用來傳替雙方訊號的,所以binder驅動就相當於電話基站。下面用圖來說明:

AIDL:

 

Android基礎相關面試問題-binder面試問題詳解

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.