当前位置:首页 > 嵌入式 > Linux阅码场
[导读]课程简介随着项目复杂度的增加,现实中的很多项目都会涉及到远程过程调用(RPC)的问题,这些远程过程也许是同一设备上的不同进程,也许分属于物理上分割的不同设备。如何灵活高效地实现这些远程调用,是很多项目都会面临的挑战。本课程首先通过对远程过程调用一般性原理的解释和基本框架的介绍,使...

课程简介



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








本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭