Android Binder框架实现源码深入分析
文章平均质量分 96
Android Binder框架实现从入门到放弃
IT先森
Android界的大牛忒多了,我大胆的估摸一下有生之年我是达不到那个高度了!但是怎么着我也要在这浩瀚的博客世界留下我的痕迹才行!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Android Binder通信一次拷贝你真的理解了吗?
最近有读者在询问一个关于Binder通信"一次拷贝"的问题,说在学习Binder驱动的实现中看到有多次调用了copy_from_user和copy_to_user来进行数据的跨用户空间和内核空间的拷贝,但是为啥Android官方和绝大部分的博客还是说只进行了一次拷贝呢!这就是本篇博客的由来!原创 2021-01-13 20:24:47 · 14581 阅读 · 55 评论 -
Android Binder框架实现之bindService详解
关于bindService我们将从两个知识点出发,第一就是从进程之间的交互,第二就是匿名Binder之间的传递角度来探讨!当然小伙们也可以抛开上面的匿名/实名Binder等相关知识点,单纯当成是bindService的源码分析也不为过,这个就看小伙们的出发点了,是分析匿名Binder的应用还是bindService的流程就看小伙们各取所需了。原创 2020-09-10 21:34:07 · 4484 阅读 · 9 评论 -
Android Binder框架实现之何为匿名/实名Binder
Android Binder框架实现之何为匿名/实名BinderAndroid Binder框架实现目录:Android Binder框架实现之Binder中的数据结构Android Binder框架实现之Binder相关的接口和类Android Binder框架实现之Parcel详解之基本数据的读写Android Binder框架实现之Parcel read/writeStrongBinder实现Android Binder框架实现之defaultServiceManager()的原创 2020-09-02 16:27:31 · 5862 阅读 · 21 评论 -
Android Binder框架实现之Java层Binder整体框架设计
Android Binder框架实现之Framework层Binder整体框架设计前言 本文是Android Binder框架实现之Framework层Binder整体框架设计的起始篇,本文会重点讲述Android Binder框架Framework层整体设计思路,本系列的文章列表如下:Android Binder框架实现之Binder的设计和框架Android Binder框架实现之Binder中的数据结构Android Binder框架实现之Binder相关的接口和类Android原创 2020-08-28 17:47:36 · 2792 阅读 · 5 评论 -
Android Binder框架实现之Java层Binder服务跨进程调用源码分析
Android Binder框架实现之Java层Binder服务跨进程调用源码分析前言 兜兜转转几个春秋,通过前面的博客Android Binder框架实现之Framework层Binder服务注册过程源码分析和Android Binder框架实现之Java层获取Binder服务源码分析我们终于将Android Framework层的Binder框架整体分析完毕了,而我们也可以通过ServiceManagerProxy的getService获取远程Java BInder服务的代理端IXXXServ原创 2020-08-27 20:31:42 · 2689 阅读 · 7 评论 -
Android Binder框架实现之Parcel详解之read/writeStrongBinder实现
Android Binder框架实现之Parcel read/writeStrongBinder实现前言原创 2020-08-25 17:06:25 · 7405 阅读 · 23 评论 -
Android Binder框架实现之Java层获取Binder服务源码分析
Android Binder框架实现之Framework层Binder服务获取过程源码分析前言原创 2020-08-22 16:27:17 · 3595 阅读 · 10 评论 -
Android Binder框架实现之Framework层Binder服务注册过程源码分析
Android Binder框架实现之framework层服务注册过程源码分析原创 2020-08-20 17:56:31 · 4040 阅读 · 3 评论 -
Android Binder框架实现之Parcel详解之基本数据的读写
Android Binder框架实现之Parcel详解前言 经过耕耘Android Binder框架实现源码深入分析系列文章告一段落!但是闲暇时间过来阅览发现该系列还是有许多瑕疵,主要是该系列太偏重重点的讲解了,而忽略了一些基本知识点的详细分析,所以这里反过来重新查漏补缺继续完善该系列文章。 Android Binder是Android高级进阶必须攻破的一个知识系列,说它简单吗也是简单就是一个IPC跨进程通信,但是说它复杂吗也复杂因为它将通信逻辑和业务逻辑巧妙地糅合在一起了,造成原创 2020-08-13 18:02:25 · 11731 阅读 · 15 评论 -
Android Binder框架实现之开篇
Android Binder入门指南之开篇 对于想在Android开发中深入源码级进行学习的读者来说,Binder是一道必须跨国的门槛,因为不跨过这道门槛,你永远只停留在门外阶段,而不能深入的探究Android的内在美。像AMS,PMS,WMS等等这些Android的核心服务无不和Binder紧紧关联协同着,共同完成了Android的江湖大业。在本系列中,我将会带领读者...原创 2020-07-02 16:12:22 · 1980 阅读 · 6 评论 -
Android Binder框架实现之Binder Native Service的Java调用流程
Android Binder机制(十三) Binder Native Service的Java调用流程原创 2020-07-05 22:31:31 · 2569 阅读 · 4 评论 -
Android Binder框架实现之Native层getService详解之请求的反馈
Android Binder机制(十二) getService详解之请求的反馈 前面两篇文章分别介绍了getService中"请求的发送"和"请求的处理"这两部分,本文将介绍getService请求的最后一部分–请求的反馈。下面继续分析分析MediaPlayer收到请求反馈之后的处理流程。注意:本文是基于Android 7.xx版本进行介绍的!1 唤醒MediaPlayer客户...原创 2019-12-13 10:43:14 · 1657 阅读 · 11 评论 -
Android Binder框架实现之Native层getService详解之请求的处理
Android Binder机制(十一) getService详解之请求的处理 前面介绍了getService请求的发送部分,本文接着继续介绍请求的处理部分。下面看看ServiceManager被唤醒之后,是如何处理getService请求的。注意:本文是基于Android 7.xx版本进行介绍的。 1 Binder驱动中binder_thread_read()的源码...原创 2019-12-12 20:31:26 · 1854 阅读 · 3 评论 -
Android Binder框架实现之Native层getService详解之请求的发送
Android Binder机制(十) getService详解之请求的发送 在前面的篇章中,我们以MediaPlayerService为例,介绍了Service服务是如何通过addService请求添加到ServiceManager中的(其中的艰难困苦,你懂的)。本文,将以MediaPlayer获取MediaPlayerService服务为例,来介绍Client端是如...原创 2019-12-11 18:00:36 · 3438 阅读 · 13 评论 -
Android Binder框架实现之Binder服务的消息循环
Android Binder机制(八) Binder服务的消息循环 在前面的三篇文章中,我们以MediaPlayerService为例,介绍了在Binder的C-S架构中的Server服务是如何通过addService请求添加到ServiceManager中进行管理的。但是在Android Binder机制(八) addService详解之请求的反馈的结尾处,我们有留下一...原创 2019-12-07 16:46:23 · 1990 阅读 · 7 评论 -
Android Binder框架实现之Native层addService详解之请求的反馈
Android Binder机制(八) addService详解之请求的反馈 在前面的两篇文章Android Binder机制(六) addService详解之请求的发送和Android Binder机制(七) addService详解之请求的处理分别介绍了addService中"请求的发送"和"请求的处理"这两部分,本文将介绍addService请求的最后一部分–请求的反馈。Se...原创 2019-12-06 16:59:22 · 1561 阅读 · 4 评论 -
Android Binder框架实现之Native层addService详解之请求的处理
Android Binder机制(六) addService详解之请求的处理 在Android Binder机制(六) addService详解之请求的发送 中介绍了addService得请求发送部分,Binder驱动在处理addService请求时,有将一个待处理事务添加到ServiceManager中,然后将ServiceManager唤醒。在Android Binder机制...原创 2019-12-02 20:34:19 · 2527 阅读 · 8 评论 -
Android Binder框架实现之Native层addService详解之请求的发送
Android Binder机制(五) addService详解01之请求的发送 有了前面篇章的铺垫,我想读者对Binder应该有了一定的了解了,那么我们接着继续深入了解。本篇章终于要开始讲解Client-Server交互了,若标题所示,本文要讲解的是addService请求,即添加服务请求。本文选取的题材是MediaPlayerService服务通过addService请求注册到Serv...原创 2019-11-25 20:31:56 · 5279 阅读 · 22 评论 -
Native Binder Service开发中获取Process进程名和调用者的进程名
Native Binder Service开发中获取Process进程名和调用者的进程名 前言 在 Native Binder Service开发中过程中,有时希望获取Process进程名和调用者的进程名,进而做一些权限方面的限制,譬如值允许某一个进程名使用或者调用。下面代码展示了如何做到上述的要求。 Native Binder Service开发中获取Process进程...原创 2020-07-03 21:20:31 · 809 阅读 · 2 评论 -
Android Binder框架实现之defaultServiceManager()的实现
Android Binder机制(四) defaultServiceManager()的实现前言 通过前面的章节Android Binder机制(四) ServiceManager守护进程我们知道了在Android中,系统提供的服务被包装成一个个系统级service,这些service往往会在设备启动之时添加进Android系统中即由ServiceManager进程来管理。同时在上一篇...原创 2019-11-12 18:01:21 · 4469 阅读 · 13 评论 -
Android Binder框架实现之Binder相关的接口和类
Android Binder机制(三) Binder相关的接口和类前言 前面的篇章Android Binder机制(二) Binder中的数据结构对我们要强攻的Binder机制中将要牵涉到的数据结构,包括应用层的和内核层的做了非常详细的讲解和阐述。本篇幅重点要突破的是Binder机制中相关的接口和类,我们知道Android的绝大部分跨进程通信机制都是基于Binder的,正所谓做戏得...原创 2019-11-08 11:44:25 · 4239 阅读 · 10 评论 -
Android Binder框架实现之servicemanager守护进程
Android Binder机制(三) ServiceManager守护进程前言 ServiceManager是用户空间的一个守护进程,它一直运行在后台。它的职责是管理Binder机制中的各个Server。当Server启动时,Server会将"Server对象的名字"连同"Server对象的信息"一起注册到ServiceManager中;而当Client需要获取Server接入点时...原创 2019-11-04 20:30:56 · 4542 阅读 · 9 评论 -
Android Binder框架实现之Binder中的数据结构
Android Binder机制(二) Binder中的数据结构 正所谓一切经典的设计都是建立在完美的数据结构前提下,Binder也不例外,在对Binder代码展开详细介绍之前,先列举出Binder机制中涉及到的数据结构。本文是一篇参考文章,读者在阅读代码的过程中遇到相关的数据结构,就可以查阅此文中的内容。本文列举的数据结构,涵盖了内核空间和用户空间两个部分。内核空间部分就是Bind...原创 2019-10-31 20:15:45 · 5529 阅读 · 10 评论 -
Android Binder框架实现之Binder的设计思想
这是关于Android中Binder机制的一系列纯技术贴。花了一个多礼拜的时间,才终于将其整理完毕。行文于此,以做记录;也是将自己所得与大家分享。和以往一样,介绍Binder时,先讲解框架,然后再从设计和细节等方面一一展开。若文章若错误或纰漏,请不吝指出。谢谢!注意:本文是基于Android 4.4.2版本进行介绍的!原创 2019-10-31 15:59:13 · 11319 阅读 · 19 评论 -
Binder传输数据大小限制,你真的get到了吗?
Binder传输数据大小限制,你真的get到了吗? Binder通信,我想对于Android开发的读者来说,一定并不陌生。可是你知道Binder传输的数据有大小限制吗,下面让我们从源码和实例角度带领读者来分析一把。Binder传输数据大小的限制 对于通过Intent跨进程传递数据大...原创 2019-10-18 16:16:22 · 7599 阅读 · 5 评论
分享