Android 13(T) - binder阅读开篇

这篇具有很好参考价值的文章主要介绍了Android 13(T) - binder阅读开篇。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

写在前面:

原本计划用一个系列来记录自己学习Android Media框架的心得感受,但是刚刚起步就碰到了问题,由于Media框架中用了许多服务(binder service),而且我不太熟悉binder的用法,所以看代码的过程中心里总有些忐忑,害怕遇到binder,这对我对框架结构的理解学习是十分不利的。

binder作为android中最重要的进程间通信方式之一,不去了解始终是不行的,所以就下定决心去读一读,于是就有了这篇binder阅读开篇。当然这只是我的阅读笔记,共享出来是让想了解binder的同学一起学习,里面肯定会漏洞百出,也会有很多错误,如果有同学看到了错误,欢迎指出,我会努力改进的^_^

关于内容:

网上已经有许多大佬讲解了binder驱动,但是对于我这种小白来说,还是太难理解了。许多博文会去讲解binder是如何做一次数据拷贝的,花很大的功夫做内存分配的讲解,但这并不是我想深入了解的。作为一个新手,我想了解的更多的是binder中的数据是如何传输的?binder对象是如何传递的?从service manager中找到了服务,这个服务是什么?找到了服务怎么就可以调用这个服务提供的方法了呢?…

原先只看了binder C++框架的内容,也就是Bn、Bp那一套,到这里已经可以熟练使用binder了,但是好奇心作怪,又想了解了解上面疑问的答案,可实在是太难了!其实光想讲清楚Bn、Bp那一套,也需要对binder driver有比较多的理解,而这已经远远超出了我能力的范围。

对于我这种新手来说,binder driver还是太复杂,完全不能理解其中的细节实现。最后斟酌了一下,也算是放过自己,阅读过程中只去看大致的流程,譬如mmap,我只需要知道用户空间和内核空间共享了一片内存空间即可,至于如何共享的就不去过多理解,而数据传输部分可以多了解一下。还有其他的一些driver相关的知识,我们只要了解知道,不要深究为什么,不然就会陷入死胡同。

关于参考

学习binder需要很多的前备知识,对于我这位转码的同学(不了解Linux相关的底层操作系统相关的知识)来说,binder driver如天书一般,也下定决心后面会恶补基础知识。

学习过程中参考了很多大佬的博文,这里列出部分我看到的觉得写的好的参考,有了他们的帮助我才能够有理解binder的机会:
Android跨进程通信IPC
Binder系列
Android源码分析 - Binder驱动

代码参考:
Android 13 kernel-5.15
Android 13 framework/native/libs/binder/文章来源地址https://www.toymoban.com/news/detail-505884.html

到了这里,关于Android 13(T) - binder阅读开篇的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Android】深入Binder拦截

    ☞ Github ☜ ☞ Gitee ☜ Binder 作为 Android 系统跨进程通信的核心机制。网上也有很多深度讲解该机制的文章,如: Android跨进程通信详解Binder机制原理 Android系统核心机制Binder【系列】 这些文章和系统源码可以很好帮助我们理解Binder的实现原理和设计理念,为拦截做准备。借助

    2024年02月03日
    浏览(29)
  • Android Binder小结

    Binder是Android中一种跨进程通信方式,Binder也是一个虚拟设备,对于客户端来说Bidner是一个可以跨进程通信的一个类 Android底层是Linux,但是Linux已有的跨进程通信方式都不能满足Android移动设备的需求,在Android中跨进程通信方式,要求是CS的一对多的架构、需要保证安全,并且

    2023年04月08日
    浏览(27)
  • Android 进阶——Binder IPC之Binder IPC架构及原理概述(九)

    前面几篇文章,为我们学习Binder IPC通信机制提供了扎实的理论基础,接下来将正式进入Binder IPC通信架构及原理的解读。 Binder 是基于 C/S 架构的,由一系列的组件组成,包括 Client进程、Server进程、Service Manager进程、Binder 驱动。其中 Client进程、Server进程、Service Manager进程运行

    2023年04月09日
    浏览(33)
  • 浅谈 Android Binder 监控方案

    在 Android 应用开发中,Binder 可以说是使用最为普遍的 IPC 机制了。我们考虑监控 Binder 这一 IPC 机制,一般是出于以下两个目的: 卡顿优化:IPC 流程完整链路较长,且依赖于其他进程,耗时不可控,而 Binder 调用本身通常又是以 RPC 形式对外提供能力的,使得我们在使用时更容

    2024年02月11日
    浏览(64)
  • Android 基础技术——Binder 机制

    笔者希望做一个系列,整理 Android 基础技术,本章是关于Binder 机制 什么是Binder 机制:Binder 是一种进程间通信机制 驱动:Binder 是一个虚拟物理设备驱动 应用层:Binder 是一个能发起通信的 Java 类 为什么要使用Binder 图解析: 性能上:  binder小于共享内存 优于其他ipc 共

    2024年02月19日
    浏览(27)
  • Android 面试笔记整理-Binder机制

    作者:浪人笔记 面试可能会问到的问题 从IPC的方式问到Binder的优势 为什么zygote跟其他服务进程的通讯不使用Binder Binder线程池和Binder机制 等等这些问题都是基于你对Binder的理解还有对其他IPC通讯的理解 IPC方式有多少种 传统的IPC方式有Socket、共享内存、管道、信号量等 安卓

    2024年02月12日
    浏览(29)
  • Android Binder通信原理(一):简介

    源码基于: Android R 在Linux 系统中现有的进程间通信(IPC)方式: 管道(PIPE): 在创建时分配一个page大小的内存,缓存区大小比较有限; 命名管道(FIFO): 考虑 PIPE_BUF 和原子操作; 消息队列: 信息复制两次,额外的CPU消耗;不合适频繁或信息量大的通信; 共享内存:  无须

    2024年02月10日
    浏览(27)
  • Android Framework——Binder 监控方案

    作者:低性能JsonCodec 在 Android 应用开发中,Binder 可以说是使用最为普遍的 IPC 机制了。我们考虑监控 Binder 这一 IPC 机制,一般是出于以下两个目的: 卡顿优化:IPC 流程完整链路较长,且依赖于其他进程,耗时不可控,而 Binder 调用本身通常又是以 RPC 形式对外提供能力的,

    2024年02月04日
    浏览(26)
  • [DEMO] Android Binder 的使用

    The Android binderfs Filesystem — The Linux Kernel documentation Android Binder 是一种 IPC 机制,IPC 键值/标识 是一个字符串,收发双方通过 键值/标识 建立通讯路径。 Binder 是通过模板类实现的,因此使用起来并不是那么简明通俗,如果没有demo可以参考的话是需要琢磨好一阵子。 class IInt

    2024年02月13日
    浏览(26)
  • Android IPC Binder机制学习(一)

    一、多进程系统设计及意义 Android系统分为5层,不过Android一般岗位只关注上三层就够用了即:应用层、framework层、native层。 Android中的应用层和系统服务层不在同一个进程,系统服务在单独的进程中。 Android中不同的应用属于不同的进程中 Android应用和系统服务运行在不同的进

    2023年04月09日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包