博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android Binder学习趣事
阅读量:6119 次
发布时间:2019-06-21

本文共 743 字,大约阅读时间需要 2 分钟。

看Android源码无论如何绕不开Binder,因此我一直对Binder的实现机制有浓厚的兴趣。无奈本人功力不够,所以对此一直没有清晰的认识。看了网上一些分析Binder的文章,基本都是源码分析,我觉得对于Binder这样一种比较复杂的框架,最好不要一开始就进入到源码这么细节的层面,很容易找不到北。我觉得应该先撇开代码,有原理性的介绍,再根据个人需要深入代码去分析。因为没有找到合适的文章,所以我就想自己来探究,自己来写,我主要想解决以下几个问题:

  1. Binder的历史?
  2. Binder和Linux原有的IPC有什么区别,为什么一定要用Binder?
  3. Binder整体的设计是怎样的?
  4. Binder的跨进程数据传输是怎么实现的?

但是,正当我准备自己动手探究时,却找到一篇很不错的文章,一下子把我的问题都回答了,开心,又有点失落。这真是一篇高质量的文章,我想我可以把它翻译成中文,跟大家分享。然而紧接着在里面一个例子中看到"Zhang San"。心里惊呼“难道原文是中文?”。还真找到了,原文在CSDN上。这下只有为国人感到自豪了。这篇文章清晰地阐述了Binder的设计实现机制,清晰易懂。

整体的设计已经了然于胸,就可以自己去看代码,亲自触摸里面的实现细节。网上有不少源码分析的文章,最有名的要数的。但是我觉得源码就像一个丰富的宝库,源码分析应该是带着问题,有目的地去分析,不然只会被别人牵着鼻子走,或者迷失其中。就像老罗在系统地分析Android源码前也是看了很多书(见)。

除了阅读源码,了解Binder的实现细节,我还想了解Linux原有的IPC机制,例如管道,System V IPC,socket是如何设计的,其设计思想和出发点各有什么不同?此处先留着问题,后面再探究总结。

转载地址:http://qpqka.baihongyu.com/

你可能感兴趣的文章
.NET Core微服务之基于Polly+AspectCore实现熔断与降级机制
查看>>
vue组件开发练习--焦点图切换
查看>>
浅谈OSI七层模型
查看>>
Webpack 2 中一些常见的优化措施
查看>>
移动端响应式
查看>>
python实现牛顿法求解求解最小值(包括拟牛顿法)【最优化课程笔记】
查看>>
js中var、let、const的区别
查看>>
腾讯云加入LoRa联盟成为发起成员,加速推动物联网到智联网的进化
查看>>
从Python2到Python3:超百万行代码迁移实践
查看>>
Windows Server已可安装Docker,Azure开始支持Mesosphere
查看>>
简洁优雅地实现夜间模式
查看>>
react学习总结
查看>>
微软正式发布PowerShell Core 6.0
查看>>
Amazon发布新的会话管理器
查看>>
InfoQ趋势报告:DevOps 和云计算
查看>>
舍弃Python,为什么知乎选用Go重构推荐系统?
查看>>
在soapui上踩过的坑
查看>>
MySQL的字符集和字符编码笔记
查看>>
ntpd同步时间
查看>>
must implement java.io.Serializable hessian
查看>>