IBinder
,跨进程通信的Base
接口,它声明了跨进程通信需要实现的一系列抽象方法,实现了这个接口就说明可 以进行跨进程通信,所有的Binder
实体都必须实现
IBinder
接口
IInterface,
这也是一个
Base
接口,用来表示
Server
提供了哪些能力,是
Client
和
Server
通信的协议,
Client
和 Server都要实现此接口。
Binder,IBinder的子类,
Java
层提供服务的
Server
进程持有一个
Binder
对象从而完成跨进程间通信
BinderProxy,在Binder.java
这个文件中还定义了一个
BinderProxy
类,这个类表示
Binder
代理对象它同样实现 了IBinder
接口。
Client
中拿到的实际上是这个代理对象
1
、首先定义
IActivityManager
接口
(
继承
IInterface)
:
public interface IActivityManager extends IInterface {
//binder描述符
String DESCRIPTOR = "android.app.IActivityManager";
//方法编号
int TRANSACTION_startActivity = IBinder.FIRST_CALL_TRANSACTION + 0;
//声明一个启动activity的方法,为了简化,这里只传入intent参数
int startActivity(Intent intent) throws RemoteException;
}