遠程過程調用
什么是RPC
什么是IPC
本課程RPC的定義——跨進程過程調用
Linux RPC實例
RPC整體架構
RPC各組成部分功能及運作原理
IDL/Interface
Client/Server
Proxy/Stub
Server register
其他
課程簡介
隨著項目復雜度的增加,現實中的很多項目都會涉及到遠程過程調用(RPC)的問題,這些遠程過程也許是同一設備上的不同進程,也許分屬于物理上分割的不同設備。如何靈活高效地實現這些遠程調用,是很多項目都會面臨的挑戰。
本課程首先通過對遠程過程調用一般性原理的解釋和基本框架的介紹,使大家理解遠程過程調用的整體結構和主要流程。
接下來本課程會對RPC發展過程中的部分重要方案進行介紹,使大家了解這些不同方案的設計思想、主要特點和適用范圍,在不同的項目中能夠根據需求進行合理抉擇。
最后,我們會將Android Binder作為具體案例進行解剖,對其整體架構、運作機制等進行全面、深入、詳盡的學習,使大家深入了解其實現細節,理解Binder的設計特點,掌握Binder的運作原理。在牢固掌握其實現的基礎上,可以對類似技術做到觸類旁通,快速掌握。
課程共4節課,全長約4小時,課程已全部上線,無需等候。
上課形式:
視頻課程(可無限次數回看)
課后實戰,練習和解答(在自己的電腦上進行實際操作)
加入課程討論答疑群。
老師簡介
曾昭毅:武漢理工大學計算機應用技術碩士畢業
曾在群碩軟件、深圳仙苗科技有限公司擔任軟件開發經理、軟件研發總監等職,是在實戰中成長起來的從單板嵌入式到大型企業級應用系統集成的全棧式工程師。
具有豐富的Arm體系Linux及Android系統移植經驗,對基于I2C、SPI、USB、AC97、I2S、SDIO/EMMC、UART等總線的各種設備如LCD、觸摸屏、3G/4G模塊、Wifi、GPS、攝像頭、HDMI、CODEC等驅動移植有深厚的掌握。
什么是RPC
什么是IPC
本課程RPC的定義——跨進程過程調用
Linux RPC實例
RPC整體架構
RPC各組成部分功能及運作原理
IDL/Interface
Client/Server
Proxy/Stub
Server register
其他
RPC模式
支持語言
主要結構
關鍵特性
ONC RPC
Corba
EJB
Web service
Dubbo
Json-RPC
IPC模式
Android Binder
D-Bus
各方案主要特性對比
Binder主要特點
整體結構
Native層(C++/C)
Service注冊
隱含ServiceManager接口獲取過程
ServiceManager啟動流程
App/Zygote啟動時Binder相關初始化
ServiceManager類結構
掌控全局的IInterface.h
關鍵類結構
系統啟動準備工作
Binder調用流程
Native層(C++/C)
Service注冊流程
Service接口獲取流程
Service調用過程
Binder調用流程(續前)
Binder線程管理
Binder一次數據拷貝機制
Java層
關鍵類結構
Java service獲取流程 - ServiceManager
Service注冊流程
Java service獲取流程 - ActivityManager
AIDL
用Linux RPC實現加法和greet函數,greet函數接收一個字符串格式的名字如“Mike”,返回字符串“Hello Mike”。(提示:Linux RPC只支持單參數,傳遞多參數可利用struct實現)
a. 用D-Bus實現加法和greet函數;b. 參照Linux RPC格式,根據自己對RPC機制的理解,手動實現對2.a.中所完成接口的RPC封裝。
利用WebService實現上述加法和greet函數。
分析Binder在進程間通過一次拷貝機制傳遞數據時,發送方是否需要將待發送數據放入自己與binder驅動進行mmap的內存區域?放與不放有什么影響?
創建一個Android應用,利用AIDL生成對應的Java類,畫出生成類的類圖。
報名方法:

詳情也可掃描如下二維碼添加客服咨詢:
