先看这几个大厂招聘需要 …
这份笔记足以撑持你面试过程中所有的「Binder 原理」问题!!!
笔记介绍
该笔记汇合了 **「Linux、C/ S 架构、ServiceManager、ProcessState、零碎服务的注册过程、ServiceManager 的启
动过程、零碎服务的获取过程、MediaPlayerService、JNI、Binder 类的注册、AMS、JavaBBinder」** 等 N 多技术点。目录:
一、学习 Binder 前必须要理解的知识点
二、ServiceManager 中的 Binder 机制
三、零碎服务的注册过程
四、ServiceManager 的启动过程
五、零碎服务的获取过程
六、Java Binder 的初始化
七、Java Binder 中零碎服务的注册过程
能无效帮你串联起来,疾速加深对 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 机制原理
- ……..
Binder 学习笔记
379 页 BAT Android 开发面试宝典
这一系列下来,置信你想学不会都难! 好了,到这里,整个笔记介绍的差不多了,感兴趣的敌人能够点击这里支付一波!!!