},BIND_AUTO_CREATE);
binder 安全基础
binder服务端可以通过binder提供的两个api拿到客户端的uid和pid,从而决定是否要对这次请求进行处理:
getCallingUid();
getCallingPid();
binder 死亡通知机制
当端服务进程挂掉的时候,客户端是有必要知道的,可以通过binder引用对象的linkToDeath()方法来设置binder服务死亡监听机制。 如下代码所示:
publicBinderServiceProxy(IBinder binder){
if(binder.queryLocalInterface(DESCRIPITON) == null ){
remote = binder;
try {
binder.linkToDeath(new IBinder.DeathRecipient() {
@Override
publicvoidbinderDied() {
Log.i(\,\binder server is deaded.\);
}
},0);
} catch (RemoteException e) {
e.printStackTrace();
}
}
else
thrownew RuntimeException(\this is not a BpBinder.\);
}
可以在死亡通知处理中做一些资源回收的操作,或者再次重启服务等操作。
到现在为止,已经对binder的表象有了一个大概的了解了,注意只是表象。