Binder
来源:互联网 发布:jquery.form.js cdn 编辑:程序博客网 时间:2024/06/06 03:04
Binder是来进行 IPC 说白了也就两个进程间通信的
什么样的情况下会用到进程间通信呢
其实一个应用之间的两个activity之间的跳转就是进程间通信 为什么是这样的呢
在我们的手机上有很多东西 不是在某一个应用里面的 比如说是系统服务 如果应用要使用系统服务 这就是跨进程
比如说 activitymanagerservice pakagermanagerservice 和很多操作都要跟系统服务打交道
为什么不封装起来交给sdk层这样的好处是 复用 可以解决应用的性能上面的问题 要分配更多的内存
其次 供应用层调用 应用程序就可能会通过反射的方式截取服务 其他的应用程序就无法使用 会造成安全问题
我们通常都会下意识的认为我们自己的应用内activity的跳转是同一个进程之间的通讯
其实对于整个系统而言 每一个activity 界面都是平等的一样的 他只管进程的栈 当前任务栈 历史任务栈 他只管当前显示那个界面 停用那个界面 ,哪个应该被销毁
我们通常将的activity 存放在一个栈里面 他实际上就是保存到系统服务的栈里面 所以在我们自己的应用里面无法获取本进程的任务栈
只能通过其他的逻辑操作将自己的activity存放到一个集合里面通过判断当前的activity 的个数来判断这个应用程序是否退出
但是这并不是任务栈
所以本应用的activity的跳转是进程间通讯 (是对整个系统而言 而不是单指应用程序)
ARDL的业务逻辑就是
就是应用a与应用b通信 就是A要调用b的某些方法或者修改b的属性、
必须要统一一个语言 必须要在a和b定义一模一样的接口包括包名都要一样
底层利用Binder 分配一块内存 进行通信
Binder就起到一个桥接的作用
android的aidl利用接口与底层binder进行交互
binder里面存放的是等待被链接的进程的aidl信息
Binder决定用哪个aidl链接
一个进程里面有多个aidl的引用 通过Ibinder返回给我们建立链接
通过Stub获取从Binder里面返回的数据
从Proxy中 发送数据
- binder
- binder
- binder
- Binder
- binder
- binder
- Binder
- binder
- binder
- Binder
- Binder
- Binder
- binder
- Binder
- Binder
- Binder
- binder
- Binder
- Linux常用命令整理
- Javascript Form表单知识点总结
- MFC获取DC的四种方式
- Java Jvm运行机制原理
- 面向对象的六大原则
- Binder
- spring集成jdbc
- 深入理解裸机中断二
- C++中数组、链表和vector等容器之间的区别
- 高阶篇:8.3)塑胶(注射)模具讨论要点;
- windows命令提示符工具切换至管理员权限
- OpenStack client 调用分析
- Solr学习(三) -- 学习资源
- eclipse git 插件集成与本地使用(傻瓜教程 一)