您的位置:首页 > 汽车 > 时评 > 平面设计素材网址_桂林技术交流站_云搜索神器_3d建模培训班一般多少钱

平面设计素材网址_桂林技术交流站_云搜索神器_3d建模培训班一般多少钱

2025/4/29 0:17:36 来源:https://blog.csdn.net/ygn918042354/article/details/142789424  浏览:    关键词:平面设计素材网址_桂林技术交流站_云搜索神器_3d建模培训班一般多少钱
平面设计素材网址_桂林技术交流站_云搜索神器_3d建模培训班一般多少钱

1上层做了那么多封装是否是过度了,难度增加就在于上层的一层层的封装。


    最底层直接ioctl和binder驱动交互(单纯c语言实现binder交互)
    第一层:IPCThreadState.transatct封装了对驱动的请求和接受
    第二层封装用IBinder.h里面的 transatct一个方法是最直接和容易理解的
    第三层封装: 服务端bbinder在 transatct里面抽象出了一个 模板方法onTransatct
    第四层封装:引入通信协议接口 ,以及bpbinder bbinder 对象,这样客户端和服务端就可以调用对象来执行传输,而不是简单的根据参数来一一对应
    至于如何封装的,这块应该是binder里面最难的了,当成盲盒吧,因为即使看明白了也会很快就忘,和后期的问题跟踪或解决关系也不大,基本永不上
    第五层封装:就是用aidl进行封装,主要是对协议接口的parcel数据自动打包和解包的封装以及自动生成bpbinder,bbinder对象
    每一层都对使用者来说都会变得更方便,但也隐藏了背后的原理。


    2 parcel的作用,传个值不是直接就可以吗

跨进程传递数据为什么要用parcel封装一层? parcel在flatten和unflaten里面会加入handler或binder的值,意思是类似与给快递加上了地址


    3 代理端是真的代理设计模式吗

其实就是代理端拿到了服务端的地址(handler),交给了驱动,驱动根据地址将数据放到服务端那里,并通知服务端
    之所以要设计出代理的这个概念,完全是上层封装虚拟出来的一个概念,其实并不是代理模式,代理类里并没有被代理对象的引用,只是一个简单的映射关系

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com