1. 云栖社区>
  2. 博客列表>
  3. 正文

Android Binder学习趣事

zhang_sl 2016-05-23 10:29:14 浏览637 评论0

android 阿里技术协会 binder

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

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

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

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

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

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

版权声明:本文内容由互联网用户自发贡献,版权归作者所有,本社区不拥有所有权,也不承担相关法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:yqgroup@service.aliyun.com 进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。

用云栖社区APP,舒服~

【云栖快讯】中办国办印发《推进互联网协议第六版(IPv6)规模部署行动计划》加快推进基于 IPv6 的下一代互联网规模部署,计划指出2025年末中国 IPv6 规模要达到世界第一,阿里云也第一时间宣布了将全面提供IPv6服务,那么在全面部署 IPV6 前,你需要了解都在这儿  详情请点击

网友评论

关注
zhang_sl
阿里巴巴天猫无线工程师
11篇文章|4关注
基于深度学习技术及阿里巴巴多年的海量数据支撑, 提供多样化的内容识别服务,能有效帮助用户降低违规风险。其产品包括... 更多>

阿里云机器学习是基于阿里云分布式计算引擎的一款机器学习算法平台。用户通过拖拉拽的方式可视化的操作组件来进行试验,... 更多>

一站式提供企业即时通讯、销售管理、协同办公。 更多>

为您提供简单高效、处理能力可弹性伸缩的计算服务,帮助您快速构建更稳定、安全的应用,提升运维效率,降低 IT 成本... 更多>
订阅广场全新上线

订阅广场全新上线