Android进程间通信(IPC)机制Binder简要介绍和学习计划
2016-05-25 22:02
537 查看
Android进程间通信(IPC)机制Binder简要介绍和学习计划:http://blog.csdn.net/luoshengyang/article/details/6618363
为了实现通信,使用Binder实体映射到具体的物理内存空间,然后使用Service Manager作为守护进程去管理Binder实体。为Client和Server提供服务接口。
Server通过ServierManager::addService可以将自己的服务启动起来。
Client通过ServiceManager::getService获得Server的服务。
1. Client、Server和Service Manager实现在用户空间中,Binder驱动程序实现在内核空间中
2. Binder驱动程序和Service Manager在Android平台中已经实现,开发者只需要在用户空间实现自己的Client和Server
3. Binder驱动程序提供设备文件/dev/binder与用户空间交互,Client、Server和Service Manager通过open和ioctl文件操作函数与Binder驱动程序进行通信
4. Client和Server之间的进程间通信通过Binder驱动程序间接实现
5. Service Manager是一个守护进程,用来管理Server,并向Client提供查询Server接口的能力
主要就是利用Java的JNI调用将前面所述的Linux系统下的进程间通信机制,当做运行库来进行进程间通信。
即:应用程序框架中的基于Java语言的Binder接口是通过JNI来调用基于C/C++语言的Binder运行库来为Java应用程序提供进程间通信服务
大致阅读后的印象记录:
一、Linux系统层面
主要就是Client与Server两个进程需要通信。为了实现通信,使用Binder实体映射到具体的物理内存空间,然后使用Service Manager作为守护进程去管理Binder实体。为Client和Server提供服务接口。
Server通过ServierManager::addService可以将自己的服务启动起来。
Client通过ServiceManager::getService获得Server的服务。
1. Client、Server和Service Manager实现在用户空间中,Binder驱动程序实现在内核空间中
2. Binder驱动程序和Service Manager在Android平台中已经实现,开发者只需要在用户空间实现自己的Client和Server
3. Binder驱动程序提供设备文件/dev/binder与用户空间交互,Client、Server和Service Manager通过open和ioctl文件操作函数与Binder驱动程序进行通信
4. Client和Server之间的进程间通信通过Binder驱动程序间接实现
5. Service Manager是一个守护进程,用来管理Server,并向Client提供查询Server接口的能力
二、应用程序框架层(Application Framewo)的Java接口实现
主要就是利用Java的JNI调用将前面所述的Linux系统下的进程间通信机制,当做运行库来进行进程间通信。即:应用程序框架中的基于Java语言的Binder接口是通过JNI来调用基于C/C++语言的Binder运行库来为Java应用程序提供进程间通信服务
相关文章推荐
- 深入浅出Android打包
- android编程练习中遇到的问题(一)—alignRight和toRightOf
- android手机通讯录数据库重要表介绍
- Android studio修改包
- android--view类
- Android屏幕适配之路
- [Android]自定义万能Dialog
- 你需要知道的 Android 拍照适配方案
- 浅聊android中的继承
- 超详细图文讲解android studio导入第三方类库的方法
- 改变手机浏览器(iPhone/Android)上文本输入框的默认弹出键盘(数字)
- android 广播一次发送出现多次接收
- Activity强制横/竖屏,全屏和常亮
- Android MVP 设计模式
- listview 点击错乱
- Android在xml中设置点击事件不响应
- Android--Bundle类
- Android Home按键的监听与屏蔽方式
- Android-WebView(五)优先加载本地资源(js, css等)
- 推拿开发之二: Android开发技术