Android面试官:说说你对 Binder 驱动的了解?

目录:

一、学习Binder前必须要了解的知识点

二、ServiceManager中的Binder机制

三、系统服务的注册过程

四、ServiceManager的启动过程

五、系统服务的获取过程

六、Java Binder的初始化

七、Java Binder中系统服务的注册过程

  • 由于篇幅原因,为了避免影响到大家的阅读体验,在此只以截图展示部分内容,有需要的小伙伴【点击我】免费领取。

部分笔记截图

一、学习Binder前必须要了解的知识点

1.Linux和Android的IPC机制种类

2.Linux和Binder的IPC通信原理

3.为什么要使用Binder

4.为什么要学习Binder?

二、ServiceManager中的Binder机制

1.基于Binder通信的C/S架构

2.MediaServer的main函数

3.每个进程唯一的ProcessState

4.ServiceManager中的Binder机制

三、系统服务的注册过程

1.从调用链角度说明MediaPlayerService是如何注册的

2.从进程角度说明MediaPlayerService是如何注册的

四、ServiceManager的启动过程

1.ServiceManager的入口函数

1.1 打开binder设备

1.2 注册成为Binder机制的上下文管理者

1.3 循环等待和处理client端发来的请求

  • 由于篇幅原因,为了避免影响到大家的阅读体验,在此只以截图展示部分内容,有需要的小伙伴【点击我】免费领取。

五、系统服务的获取过程

1.客户端MediaPlayerService请求获取服务

2.服务端ServiceManager处理请求

六、Java Binder的初始化

1.Java Binder的JNI注册

1.1 Binder类的注册

1.2 BinderInternal类的注册

七、Java Binder中系统服务的注册过程

1.将AMS注册到ServiceManager

1.1 BinderInternal.getContextObject()

1.2 ServiceManagerNative.asInterface()

1.3 getIServiceManager().addService()

2.引出JavaBBinder

3.解析JavaBBinder

4.Java Binder架构

深入解析Binder源码

只要是程序员,不管是Java还是Android,如果不去阅读源码,只看API文档,那就只是浮于表象,这对我们的知识体系的建立和完备以及实战技术的提升都是不利的。

真正最能锻炼能力的便是直接去阅读源码,不仅限于阅读Android系统源码,还包括各种优秀的开源库。

阅读源码永远是学习最快的方式。

所以这里为大家整理了Android开发相关源码精编解析,其中关于Binder的源码解析内容:

第一节 Binder 系列—开篇

第二节 Binder Driver 初探

第三节 Binder Driver 再探

第四节 Binder 启动 ServiceManager

第五节 获取 ServiceManager

大厂关于Binder的面试题

一线企业的app都是多线程和多进程的,而Android进程间通信机制就是Binder,原生的线程间通信则是Handler,Binder和Handler是了解安卓运行机制必须要掌握的一个知识点,更是一线企业面试必问的知识点!

以下几道就是大厂关于和Binder常见的面试真题:

  • Binder有什么优势?(字节跳动)

  • Binder是如何做到一次拷贝的?(腾讯)

  • MMAP的原理讲解;(腾讯)

  • 为什么Intent不能传递大数据?(阿里)

  • 描述AIDL生成的java类细节;(字节跳动)

  • 四大组件底层的通信机制;(字节跳动)

  • 为什么Intent不能传递大数据?(阿里)

  • Binder机制是如何跨进程的?

  • Binder机制原理

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级安卓工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Android移动开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Android)
img

文末

那么对于想坚持程序员这行的真的就一点希望都没有吗?
其实不然,在互联网的大浪淘沙之下,留下的永远是最优秀的,我们考虑的不是哪个行业差哪个行业难,就逃避掉这些,无论哪个行业,都会有他的问题,但是无论哪个行业都会有站在最顶端的那群人。我们要做的就是努力提升自己,让自己站在最顶端,学历不够那就去读,知识不够那就去学。人之所以为人,不就是有解决问题的能力吗?挡住自己的由于只有自己。点击我的GitHub下述资料免费领取
Android希望=技能+面试

  • 技能

  • 面试技巧+面试题
    哪个行业都会有站在最顶端的那群人。我们要做的就是努力提升自己,让自己站在最顶端,学历不够那就去读,知识不够那就去学。人之所以为人,不就是有解决问题的能力吗?挡住自己的由于只有自己。点击我的GitHub下述资料免费领取
    Android希望=技能+面试

  • 技能
    [外链图片转存中…(img-Nd5pZ54Z-1710573897405)]

  • 面试技巧+面试题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值