1、Android Binder1. Android Binder介绍(1) Binder基于Client-Server通信模式。Android Binder框架定义了四个角色:Server,Client,ServiceManager以及Binder驱动。其中Server,Client, ServiceManager运行于用户空间,驱动运行于内核空间。(2) Android Binder机制核心组件是Binder驱动程序,ServiceManager提供辅助管理功能,负责管理Server、 向Client提供查询Server的功能。(3) ServiceManager提供接口addService和
2、getService。2. ServiceManagerServiceManager也是Client-Server通信模式。Java层ServiceManager是客户端,Server端对应Service_manager.c,这个一个Linux守护进程,系统引导的时候会开启的服务。(启动方式见init.rc中 service servicemanager /system/bin/servicemanager)3. ActivityManager4. Android Binder 框架5. AIDL 介绍(1) AIDL (Android Interface Definition Languag
3、e) 是一种IDL 语言,用于生成可以在Android设备上两个进程之间进行进程间通信(inter process communication,IPC)的代码。(2) AIDL接口文件,和普通的接口内容没有什么特别,只是它的扩展名为.aidl。保存在src目录下。如果其他应用程序需要IPC,则那些应用程序的src也要带有这个文件。(3) 何时使用AIDL:允许客户端从不同的应用程序为了进程间的通信而去访问service,并且想在service处理多线程。(4) 如果不需要进行不同应用程序间的并发通信(IPC),you should create your interface by implementing a Binder。(5) 想进行IPC,但不需要处理多线程的,则implement your interface using a Messenger。注:参考网络上的文章整理,部分资料转自网络。