码迷,mamicode.com
首页 > 移动开发 > 详细

Android-BoundService

时间:2015-06-03 13:45:31      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:android   service   bound   

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

Android-BoundService

标签:android   service   bound   

原文地址:http://blog.csdn.net/qq_22075977/article/details/46343549

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!