当前位置:首页 > 公众号精选 > 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类,画出生成类的类图。








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

罗德与施瓦茨与SmartViser携手开发了一种用于测试符合欧盟销售的智能手机和平板电脑的新Energy Efficiency Index(EEI)标签法规的解决方案。该解决方案的核心是R&S CMX500,这是...

关键字: 智能手机 Android iOS

(全球TMT2023年8月24日讯)2023年8月23日,时值实时3D引擎Unity在华设立合资公司Unity中国一周年之际,Unity中国正式推出Unity中国版引擎——团结引擎。Unity全球CEO John Ri...

关键字: UNITY CE Android 开发者

报告显示:全球电商 App 获客花费接近50亿美元 北京2023年8月23日 /美通社/ -- 全球营销衡量与体验管理平台 AppsFlyer 近日发布《2023 电商 App 营销现状报告》。尽管面临全球经...

关键字: APPS BSP iOS Android

数字机顶盒是一种数字技术下的多媒体娱乐中心,可以实现电视节目接收、播放、存储、网络应用等多种功能。随着科技的发展,数字机顶盒的设计方案也在不断进步和优化。本文将介绍数字机顶盒设计的几种实现方案。

关键字: 数字机顶盒 Android Linux

21ic 近日获悉,原小米 9 号创始员工李明在社交媒体平台公布了旗下首款产品乐天派桌面机器人,为全球首款 Android 桌面机器人,面向极客和发烧友的 AI + 机器人。据悉,李明两个月前宣布创业并进军 AI 领域,...

关键字: 小米 Android 桌面机器人 AI

尽管安装增长放缓,全球游戏 App 获客花费仍高达 267 亿美元 经济低迷导致 2023 游戏 App 营销优先考虑收入指标,用户增长次之 北京2023年3月9日 /美通社/ -- 今天,全球营销衡量与体验管理平台...

关键字: APPS iOS Android BSP

量子计算领域的新里程碑,来了! 谷歌科学家证明,通过增加量子比特的数量,就能降低量子计算的错误率。

关键字: 谷歌 Android Windows

「卫星通讯」正在被普及到每一台智能手机当中。普及的动机并非是消费市场的一个刚需,其实更像是将差异化的功能「抹平」成一个标配。时下,支持「卫星通讯」功能的智能手机只有苹果的 iPhone 14 系列与华为的 Mate 50...

关键字: 卫星通讯 Android 智能手机 iPhone

Android是Google开发的操作系统,支持多种指令集架构 (ISA),包括Arm和x86,多数使用Android的设备都采用Arm架构芯片组。新兴RISC-V架构是免费开放指令集架构,任何人都可用它设计芯片,且无需...

关键字: 谷歌 Android RISC-V架构

智能手机并非每年都取得重大进展,这导致越来越多的人将手机保留两年、三年或四年。不过,普通的 Android 手机能否在遇到问题之前使用那么久?

关键字: Android 安卓 谷歌 智能手机
关闭