課程簡介
現實中的很多項目都會涉及到遠程過程調用(RPC)的問題,這些RPC也許跨進程,也許跨物理主機。如何靈活高效地實現RPC,是很多項目都會面臨的挑戰。
1. 本課程首先通過對遠程過程調用一般性原理的解釋和基本框架的介紹,使大家理解RPC的整體結構和主要流程。
2. 之後會對RPC發展過程中的部分重要方案進行介紹,包括Linux RPC、Corba、Web services、D-Bus等,使大家瞭解這些不同方案的設計思想、主要特點和適用範圍,在不同的項目中能夠根據需求進行合理抉擇。
3. 接着,會將Android Binder作爲典型案例進行解剖,對其整體架構、運作機制等進行全面、深入、詳盡的學習,使大家深入瞭解其實現細節。在牢固掌握其實現的基礎上,可以對類似技術做到觸類旁通,快速掌握。
4. 最後,設計了一組Linux RPC、D-Bus、Binder、Web services的練習題來進行實戰。
課程共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
各方案主要特性對比
實例分析——Android Binder詳解
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類,畫出生成類的類圖。
報名方法
點擊左下角“閱讀原文”試聽與報名!!!