zoukankan      html  css  js  c++  java
  • Android-BoundService

    Android-BoundService


    一 binder
    内核->字符设备binder(负责进程间通信的驱动)->servicemanager->binder类->binger接口


    二 实现机制
    C/S结构
    调用服务的方法的映射
    进程指针->指向远程server方法的指针->memory 
    装程序stub:指向远端指针的指针(句柄)。这个句柄发送请求给远端的句柄(通信的机制可能是binder也可能是其它的IPC)
    要求远端的句柄调用某些方法,然后远端返回给本地,
    本地通过接收这个句柄,得到远程的某些实例方法,能够操作这些方法。但并非直接操作远程的内存空间


    三 BoundService编写步骤
    1 继承Service或者IntentService实现某些服务类
    2 在manifest文件里注冊服务类
    3 绑定服务bindService
    4 取消绑定unbindService


    四 常见问题
    1 onBind和onServiceConnected两个方法谁先运行:
    onBind先运行


    2 onUnbind和onServiceConnected两个方法谁先运行:
    onServiceConnected先运行


    3 理解binder的作用:
    依赖于ServiceManager,它提供IBind接口。client向它发送请求,
    IBind即是Android基于linux的IPC进程间通信在进行封装进程间通信的方式
    也是RPC远程通信



    Activity也用的binder通信
    C和S在一个进程中:local服务
    C和S不同的进程中:remote服务
    可是实现机制都一样
    binder也用到serviceManager
  • 相关阅读:
    ubuntu问题集锦
    得把这个事情坚持下来
    海贼王有啥好看的?
    虚拟机网络连不上怎么办?
    耍耍Windows Live Writer
    Jquey模糊选择
    JS网址正则验证
    PowerDesigner 同步Name到Comment 及 同步 Comment 到Name
    进程调用系统默认和邮件客户端并附加指定文件
    Form.DialogResult 属性
  • 原文地址:https://www.cnblogs.com/jzssuanfa/p/7346897.html
Copyright © 2011-2022 走看看