Android-BoundService
2024-08-26 12:55:21
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
最新文章
- 锋利的JQuery 学习笔记
- 转: KindEditor 图片空间文件增加删除文件、文件夹功能(ASP语言环境)
- webService发布和调用--Axis2
- Eureka的故事,专注能让你看到别人看不到的事情
- poj----1330Nearest Common Ancestors(简单LCA)
- Objective-C中NSValue的使用
- “PEDIY CrackMe 2007” 下载地址
- iOS:Git分布式版本控制器系统
- CentOs install oracle instant client
- 你们都是怎么阅读android系统源码的,用什么工具?
- SpringMVC4+thymeleaf3的一个简单实例(篇一:基本环境)
- jz2440烧写开发板uboot,内核和文件系统等的相关命令
- NSIS:延时启动软件的几个方法及探索
- WebBrowser一点心得,如果在Javascript和Winform代码之间实现双向通信
- Apache保持连接
- C++对象模型之lambda表达式
- Spring中@Autowired与@Resource的区别
- 配置环境变量及jdk
- 【持续集成】GIT+jenkins+sonar——GIT
- Skype 服务器客户端策略参数优化
热门文章
- 机动车驾驶员计时培训系统符合性检测平台TCP服务器设计和开发
- jquery远程引用地址大全
- 01 SQL核心语句
- yum 安装出错--";Couldn't resolve host 'mirrors.aliyun.com'";
- html 调用ActiveX
- datagrid带查询带分页
- java小数位-DecimalFormat(转)
- 获取WPF的DataGrid控件中,是否存在没有通过错误验证的Cell
- Django admin 的 9 个技巧
- kafka 并发数配置过程中踩到的坑 InstanceAlreadyExistsException