• Binder


    • Binder :  在android中适用于进程间通信(IPC)的;

            在Linux层面说 它属于一个驱动,只是不需要硬件 操作的是一小段内存;

            在线程角度说 Binder驱动代码运行在内核态,客户端调用Binder是通过系统调用完成的。

    •  Binder框架:
    1. binder服务端:
      • 实际上就是一个binder,一旦创建就会启动一个隐藏线程,会接收binder驱动发送的消息收到消息后 执行到binder对象的OnTransaction()方法
      •  并按照该函数的参数执行不同的服务代码,故重载onTransact()是必须的
      • onTransaction(): 主要内容是onTransact()函数的参数转换为服务函数的参数,参数来源是客户端调用transaction()函数使输入的,因此,
        • 如果transact()有固定格式的输入 那么onTransact()就会有固定格式的输出
    2. binder驱动:
      1. 服务端Binder对象被创建的同时 会在Binder驱动中创建一个 mRemote(IBinder类型)的对象,客户通过它来访问远程服务
      2. 重载 transact()方法具体实现:
        1. 向服务端线程发送调用消息
        2. 挂起当前线程,等待服务器端执行完毕后的通知
        3. 接到通知,继续客户端线程,并返回执行结果
    3. 应用程序客户端
  • 相关阅读:
    一条痛并快乐的路
    Daily Scrum 11.1
    Daily Scrum 10.31
    Daily Scrum 10.30
    Daily Scrum 10.29
    Daily Scrum 10.28
    Daily Scrum 10.27
    (Alpha)Let's-Chronos分数分配规则
    Daily Scrum 10.26
    Daily Scrum 10.25
  • 原文地址:https://www.cnblogs.com/liu666bin/p/2935311.html
Copyright © 2020-2023  润新知