读书笔记:android设计与实现第三…
2016-01-22 17:32
351 查看
Binder机制:
Android使用了Linux的进程管理机制,以进程为单位分配虚拟地址空间,为了安全考虑,一个进程禁止直接与其他进程交互,这样不同进城之间是相互隔离的,如果进程间需要通信,必须通过android的linux内核提供的进程间通讯机制实现间接通信。linux使用的进程间的通信方式有很多种:Socket,Signal,Pipe,MessageQueue,Semaphore,SharedMemory等,但是以上的机制要么效率低,要么不适合封装给上层复用,因此在android中使用的是Binder机制。
binder是对Linux内核层的一个扩展,属于一个字符设备驱动,android通过这个驱动实现不同进程之间的间接通讯,Android通过对Binder封装,提供了一套Binder操作的框架,便于上层使用,这样Binder的概念便不仅是一个驱动,而是被扩展为一种架构,binder架构分为Native层和Java层两部分。
应用框架层为应用开发都提供了Android四大组件,四大组件是由Java代码实现,不同的组件可以位于不同的进程中,不同的进程需要交互时,需要用到Binder通信。Binder在Java框架层的应用不仅限于四大组件换交互,在四大组件中也可以通过应用框架层提供的getSystemService接口直接使用Java系统服务。。
Binder换java框架层和Native框架层一样,具备C/S体系结构的主要组成部分:Client,Proxy,Stub,Server和Service。Java框架层没有提供类似Native框架层的servicemanager,而是通过JNI将Native框架层的servicemanager在Java框架层的代理,此外,Java框架层通过JNI将Native框架层换BpBinder和BBinder封装为Java对象,供Java框架层使用,为了便于Java框架开发系统服务,要jav框架层中提供了AiDl工具,用于生成统一的Proxy和Stub接口。
Android使用了Linux的进程管理机制,以进程为单位分配虚拟地址空间,为了安全考虑,一个进程禁止直接与其他进程交互,这样不同进城之间是相互隔离的,如果进程间需要通信,必须通过android的linux内核提供的进程间通讯机制实现间接通信。linux使用的进程间的通信方式有很多种:Socket,Signal,Pipe,MessageQueue,Semaphore,SharedMemory等,但是以上的机制要么效率低,要么不适合封装给上层复用,因此在android中使用的是Binder机制。
binder是对Linux内核层的一个扩展,属于一个字符设备驱动,android通过这个驱动实现不同进程之间的间接通讯,Android通过对Binder封装,提供了一套Binder操作的框架,便于上层使用,这样Binder的概念便不仅是一个驱动,而是被扩展为一种架构,binder架构分为Native层和Java层两部分。
应用框架层为应用开发都提供了Android四大组件,四大组件是由Java代码实现,不同的组件可以位于不同的进程中,不同的进程需要交互时,需要用到Binder通信。Binder在Java框架层的应用不仅限于四大组件换交互,在四大组件中也可以通过应用框架层提供的getSystemService接口直接使用Java系统服务。。
Binder换java框架层和Native框架层一样,具备C/S体系结构的主要组成部分:Client,Proxy,Stub,Server和Service。Java框架层没有提供类似Native框架层的servicemanager,而是通过JNI将Native框架层的servicemanager在Java框架层的代理,此外,Java框架层通过JNI将Native框架层换BpBinder和BBinder封装为Java对象,供Java框架层使用,为了便于Java框架开发系统服务,要jav框架层中提供了AiDl工具,用于生成统一的Proxy和Stub接口。
相关文章推荐
- Android parcelable序列化
- 读书笔记:android设计与实现第四…
- android设计与实现 收获
- Android 优化布局:
- Android 视图绘制流程:
- Android开发和Android Studio使用教程
- (安全系列一)Android Apk反编译得到Java源代码
- oschina的android源码分析学习-MainActivity
- [置顶] Android 友盟更新、推送、分享
- android源码
- Android apk文件方法数统计
- [Android4.4]NetworkManagementService与Netd交互流程
- 01Android_Studio过滤文件提交至Git
- Android 数字签名详解
- unable to access android sdk add-on list
- Android Design Support Library 介绍
- [AndroidAnnotatians] Intent传参
- Android HandlerThread 完全解析
- android 新特性material design 之recyclerview 详解
- Android 关闭多个Activity总结