• 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. 应用程序客户端
  • 相关阅读:
    postfix队列管理
    fdisk添加磁盘
    postfix日志分析pflogsumm
    ioctl接口内容操作
    linux 路由表设置 之 route 指令详解
    手把手教你用 Strace 诊断问题
    rtsp学习----海康RTSP客户端连接深入分析
    栈回溯技术
    objdump命令
    linux中的strip命令简介------给文件脱衣服
  • 原文地址:https://www.cnblogs.com/liu666bin/p/2935311.html
Copyright © 2020-2023  润新知