joshuayingwhat IT Engineer

十:匿名binder

2024-07-08

匿名binder是要依托于实名binder而存在的。 当服务端通过实名binder向客户端传输一个匿名binder,客户端端会接收到一个匿名binder的引用然后可以向位于匿名binder进程发送数据。 在内核层匿名binder通过实名binder发送给驱动后,驱动会检查当前的flat_binder_obj是否在当前进程有binder_node。

……

如果没有binder就创建一个binder_node指向当前进程,同时也会在clinet进程创建一个binder_ref。 这个binder_ref指向刚才创建的binder_node。这样client通过binder_ref就可以获取到刚才的匿名binder的引用。

android系统中启动ActvityThread中的ApplicationThread。这个ApplicationThread就是一个匿名binder。


其中mgr就是ams在app client端的代理。通过这个实名binder把我们的匿名binder传给ams中。

参考连接:
https://skytoby.github.io/2020/深入理解Binder机制4-bindService过程分析/

https://www.jianshu.com/p/45563980bf61

https://blog.csdn.net/tkwxty/article/details/108343847

https://www.jianshu.com/p/0de4c4017052

https://yuandaimaahao.github.io/AndroidFrameworkTutorialPages/003.学穿Binder篇/030.Binder 匿名服务源码分析.html


Similar Posts

Content