(1)
(1)
分类: 嵌入式
2019-07-10 20:03:57
原文地址: 作者:
接触过android的人都知道binder服务调用是android系统的基础。它担负是跨进程或进程内调用和数据传递的任务。理解它是理解android众多services的基础。binder服务的层次图如下:
一个新的服务实体类bnxxxservice一般用下面的方式定义:
1028行调用bbinder::tranact()。bbinder::tranact()是:
107行调用的ontransact(),其实就是bnxxxservice::ontransact()。这样就可以在bnxxxservice::ontransact()中通过switch语句完成各种各样的服务。有关类的关系如图:
如代码所示:先通过defaultservicemanager()得到iservicemanager的客户代理,然后这个iservicemanager对象查询"ixxxservice.name"服务,servicemanager::getservice()返回对应服务的ibinder。最后,interface_cast把这个ibinder转换成服务的客户端代理类bpxxxservice。interface_cast的定义如下,
上一篇:没有了
下一篇:没有了