美文网首页
AIDL机制是如何应对本地客户端和远程客户端分别进行处理?

AIDL机制是如何应对本地客户端和远程客户端分别进行处理?

作者: 采蘑菇的小白菜 | 来源:发表于2018-06-29 16:23 被阅读0次

[QUESTION]

AIDL机制是如何应对本地客户端和远程客户端分别进行处理?

[ANSWER]

实际上这部分内容是在ADT生成的java文件自动进行处理的,代码如下。

public static com.dyq.aidlservice.IAdd asInterface(android.os.IBinder obj)

{ if

((obj==null)) {

return null;

} /×

×obj是从Client端调用asInterface时传递过来的IBinder对象,DESCRIPTOR是aidl的本地路径

× queryLocalInterface方法会在本地检查是否有这个obj的实现,如果本地有这个实现,

× 说明server端和client端处于同一进程,只要返回这个本地实现即可。否则,返回的是

× 系统封装后的Stub.Proxy对象icfans

×/

android.os.IInterface iin = obj.queryLocalInterface(DESCRIPTOR);

if (((iin!=null)&&(iin instanceof com.dyq.aidlservice.IAdd))) {

return ((com.dyq.aidlservice.IAdd)iin);

} r

eturn new com.dyq.aidlservice.IAdd.Stub.Proxy(obj);

}

相关文章

网友评论

      本文标题:AIDL机制是如何应对本地客户端和远程客户端分别进行处理?

      本文链接:https://www.haomeiwen.com/subject/hevayftx.html