早鸟报名:深入理解Linux RPC - 从Linux RPC到Android Binder

Posted Linux阅码场

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了早鸟报名:深入理解Linux RPC - 从Linux RPC到Android Binder相关的知识,希望对你有一定的参考价值。

课程简介

随着项目复杂度的增加,现实中的很多项目都会涉及到远程过程调用(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

  • 各方案主要特性对比

实例分析——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

实验、练习和解答


  1. 用Linux RPC实现加法和greet函数,greet函数接收一个字符串格式的名字如“Mike”,返回字符串“Hello Mike”。(提示:Linux RPC只支持单参数,传递多参数可利用struct实现)

  2. a. 用D-Bus实现加法和greet函数;b. 参照Linux RPC格式,根据自己对RPC机制的理解,手动实现对2.a.中所完成接口的RPC封装。

  3. 利用WebService实现上述加法和greet函数。

  4. 分析Binder在进程间通过一次拷贝机制传递数据时,发送方是否需要将待发送数据放入自己与binder驱动进行mmap的内存区域?放与不放有什么影响?

  5. 创建一个Android应用,利用AIDL生成对应的Java类,画出生成类的类图。

苹果和电脑用户报名方法:


电脑浏览器访问yomocode.com(不支持手机访问),先点击网站右上角图标,微信扫码登录,然后在此链接报名:

http://www.yomocode.com/courses/19


报名价格:

原价399元,现在报名仍享早鸟优惠价:299早鸟将于6月1日晚上8点结束。


手机用户可点击链接一键报名:


 

安卓手机用户可点击链接一键报名:


 


详情也可扫描如下二维码添加客服咨询:

以上是关于早鸟报名:深入理解Linux RPC - 从Linux RPC到Android Binder的主要内容,如果未能解决你的问题,请参考以下文章

早鸟价即将结束: 深入理解Linux内核缺页异常处理

深入理解Linux RPC - 从Linux RPC到Android Binder

早鸟价今晚结束:Linux内核tracers的实现原理与应用

Vue.js全球开发者大会早鸟票通知

早鸟票通道即将关闭!微服务时代的领域驱动设计实战工作坊——广州站持续报名中

惠普架构师解密从分布式到微服务,深入理解RPC内存存储检索等问题