您的位置:首页 > 移动开发 > Android开发

Android-BoundService

2015-06-03 12:22 435 查看
Android-BoundService

一 binder

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

二 实现机制

C/S结构

调用服务的方法的映射

进程指针->指向远程服务器方法的指针->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接口,客户端向它发送请求,

IBind即是Android基于linux的IPC进程间通信在进行封装进程间通信的方式

也是RPC远程通信



Activity也用的binder通信

C和S在一个进程中:local服务

C和S不同的进程中:remote服务

但是实现机制都一样

binder也用到serviceManager
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: