关闭

binder机制

188人阅读 评论(0) 收藏 举报

http://www.cnblogs.com/innost/archive/2011/01/09/1931456.html

第一个调用的函数是ProcessState::self(),然后赋值给了proc变量,程序运行完,proc会自动delete内部的内容,所以就自动释放了先前分配的资源。


IServiceManager


 哇塞,asInterface是这么搞的啊,赶紧分析下吧,还是不知道interface_cast怎么把BpBinder*转成了IServiceManager

我们刚才解析过的interface_cast<IServiceManager>(new BpBinder(0)),

原来就是调用asInterface(new BpBinder(0))


addService是调用的BpServiceManager的函数。前面略去没讲,现在我们看看。



至此,Binder就算分析完了,大家看完后,应该能做到以下几点:

<!--[if !supportLists]-->l         <!--[endif]-->如果需要写自己的Service的话,总得知道系统是怎么个调用你的函数,恩。对。有2个线程在那不停得从binder设备中收取命令,然后调用你的函数呢。恩,这是个多线程问题。

<!--[if !supportLists]-->l         <!--[endif]-->如果需要跟踪bug的话,得知道从Client端调用的函数,是怎么最终传到到远端的Service。这样,对于一些函数调用,Client端跟踪完了,我就知道转到Service去看对应函数调用了。反正是同步方式。也就是Client一个函数调用会一直等待到Service返回为止




















0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:6566次
    • 积分:252
    • 等级:
    • 排名:千里之外
    • 原创:17篇
    • 转载:8篇
    • 译文:0篇
    • 评论:4条
    文章分类
    最新评论