1.Binder是什么?

对于android而言,是跨进程传输的通道,是封装好的java类,可以直接继承和使用。

从组成、模型来讲,我认为是连接Server层、Client层、ServerManager层的纽带,也是驱动。

2.Binder的基础概念

2.1 进程空间

进程空间:用户空间(不可共享)和内核空间(可共享)。

linux本身用copy_from_user()与copy_to_user(),用俩次拷贝进行跨进程通讯。

copy_from_user():将A进程的用户空间的数据拷贝到内核空间。

copy_to_user():将内核空间的数据拷贝到B进程的用户空间

以上需要拷贝2次,而Binder只需要拷贝1次。

2.2 Binder跨进程

2.2.1 流程

service端在binder注册服务到serverManager,client端通过binder获取serverManager里的服务。

2.2.2 作用

Binder.c :连接进程,调用mmap()方法,创建内核缓存区和接受数据缓存区。

ServiceManager.c:通过binder_loop()创建循环请求队列,获取数据和解析binder,关机才会退出循环。

3.Android端与Binder

1.ContentProvider,内部有个ContentProviderNavite与Binder通信(还未写完

2.Aidl

【Android】Binder的理解相关推荐

  1. 安卓进阶(2)之android Binder通信理解

    关键字 aidl 进程间通信 binder机制 aidl 全名安卓接口定义语言,用于进程间通信.简单理解的话,就是类似应用的服务器和客户端.服务器开启一个服务处理数据,客户端传递数据以及响应回调.具体 ...

  2. aidl使用_借助 AIDL 理解 Android Binder 机制——Binder 来龙去脉

    AIDL 是 Android Interface Definition Language(Android 接口定义语言)的缩写,它是 Android 进程间通信的接口语言.由于 Android 系统的 ...

  3. 理解Android Binder机制(3/3):Java层

    本文是Android Binder机制解析的第三篇,也是最后一篇文章.本文会讲解Binder Framework Java部分的逻辑. Binder机制分析的前面两篇文章,请移步这里: 理解Andro ...

  4. 理解Android Binder机制(1/3):驱动篇

    Binder的实现是比较复杂的,想要完全弄明白是怎么一回事,并不是一件容易的事情. 这里面牵涉到好几个层次,每一层都有一些模块和机制需要理解.这部分内容预计会分为三篇文章来讲解.本文是第一篇,首先会对 ...

  5. Android之最好理解的Binder机制

    转载:http://weishu.me/2016/01/12/binder-index-for-newer/ Binder学习指南 发表于 2016-01-12   |   92条评论   |   3 ...

  6. Android Binder(也许是最容易理解的)

    该文章是一个系列文章,是本人在Android开发的漫漫长途上的一点感想和记录,我会尽量按照先易后难的顺序进行编写该系列.该系列引用了<Android开发艺术探索>以及<深入理解And ...

  7. Android Binder通信一次拷贝你真的理解了吗?

        Android Binder通信一次拷贝你真的理解了吗? Android Binder框架实现目录: Android Binder框架实现之Binder的设计思想 Android Binder ...

  8. Android Binder IPC机制

    之前有很多人问过我TaintDroid的内容,所以一点点吧涉及的思路整理一下. 今天又看了一遍,确实需要很多的技术支持以及扎实的功底,不管是Java的还是Android,从系统底层一直到顶层,涉及的知 ...

  9. Android Binder 学习笔记

    前言: Binder是Android给我们提供的一种跨进程通信方式.理解Binder能帮助我们更好的理解Android的系统设计,比如说四大组件,AMS,WMS等系统服务的底层通信机制就都是基于Bin ...

  10. Android Binder Driver缺陷导致定屏问题分析

    本文讲解异步Android binder call是如何阻塞整个系统的,通过ramdump信息以及binder通信协议来演绎并还原定屏现场. 一.背景知识点 解决此问题所涉及到的基础知识点有:Trac ...

最新文章

  1. 20190226-利用序列化完成小型记账程序
  2. Kali Linux Web 渗透测试秘籍 翻译完成!
  3. java ajax无刷分页_asp.net+ajax+json来实现无刷新分页功能
  4. FICO 最常用配置表
  5. H5禁止手机自带键盘弹出
  6. 《四世同堂》金句摘抄(十五)
  7. java nosql_Java EE的NoSQL的未来
  8. 技术实践丨列存表并发更新时的锁等待问题原理
  9. 【科普篇】推荐系统之矩阵分解模型
  10. php模板和框架,php模板和框架的区别的区别是什么
  11. .bat以管理员身份运行
  12. java父类的私有方法可以被继承吗_简单通俗的解释java中的继承
  13. 考研408复习思路,学习方法
  14. 用美图秀秀给人像P上西装,并改成纯色背景
  15. 10款白嫖网站笔记整理
  16. 计算机软件 专利挖掘,专利挖掘五步法,你学会了吗?
  17. UEFIEDKII Introduction:UEFIEDKII概述[1]
  18. Big O notation:算法的时间复杂度
  19. python 开发微信小游戏_教你快速开发一个微信小游戏好友排行榜
  20. da2 Android版本固件,OPPOAce2官方系统刷机包(完整固件最新升级包ColorOS 7)

热门文章

  1. 08运行程序常见错误
  2. Base64 编码原理及代码实现
  3. Thunderbolt4,雷电4与USB4
  4. 【实验】实验课总结2 实验一
  5. 精读-软件测试的艺术之调试,极限测试和因特尔应用系统的测试
  6. CheckBox复选框全选以及获取值(转)
  7. git学习——上传项目代码到github
  8. 防盗定位追踪,电动车安全管理“神器”装一个?
  9. Stream中map和flatmap的区别,一看就懂
  10. Open CASCADE安装及+MFC