面试常谈的Binder理解,每个人都不一样~

发布网友 发布时间:2024-10-23 17:03

我来回答

1个回答

热心网友 时间:2024-10-24 15:35

面试官提出问题,让我们看看三位同学如何解答。

第一位同学,自认为知识渊博,月薪10k。面试官问他对binder的理解,他回答binder是跨进程通信的,包括client、server、binder驱动以及service manager四部分。当面试官问及一次拷贝原理时,他表示不太清楚,对应用开发来说,没必要知道这些。

第二位同学,业余时间喜欢玩游戏、追剧、熬夜,月薪15k。面试官同样询问他对binder的理解,他回答说binder是一种IPC方式,相比Linux原有的管道、共享内存、Socket等,它通过mmap实现一次拷贝,比Socket和管道传输速度更快,比共享内存更安全可控,是Android系统中主要的IPC通信方式。面试官接着问Intent传参有大小*,这与binder有关系吗?他表示应该有关系,但具体如何*大小,他并不了解。

第三位同学,勤奋学习,不断提升自己,月薪30k。面试官询问他对binder的理解,他详细解释了binder在Android中是主要的跨进程通信方式,并基于mmap实现了一次拷贝。他还提到binder包括BinderProxy、BpBinder等实体,以及ProcessState、IPCThreadState封装等。他强调,要全面理解binder,需要从Java、Native层,用户态、内核态等多个角度去考虑。

面试官进一步询问基于mmap如何实现一次拷贝,第三位同学用示意图进行了详细解释。他还解释了页框和页的概念,并简单介绍了binder的整体架构。

最后,面试官推荐了《Android Framework核心知识点》一书,其中包含了Init、Zygote、SystemServer、Binder、Handler、AMS、PMS、Launcher等知识点记录。
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com