考察内容:
- 了解binder是用来干什么的?
(binder是用来跨进程通信的) - 应用里面哪些地方用到了binder机制?
- 应用的大致启动流程是怎样的?
- 一个进程是怎么启动binder机制的?
应用启动流程

什么时候支持binder机制的?
boolean runOnce(){
String[] args = readArgumentList();
int pid = Zygote.forkAndrSpecialize(...);
if(pid == 0){
handleChildProc(...); //将调用zygoteInit()
return true;
}
......
}
static void zygoteInit(){
//常规初始化
commonInit();
//启动binder机制:打开binder驱动、映射内存,分配缓冲区,注册线程、进入binder loop
nativeZygoteInit();
applicationInit(..);
}
怎么启动binder机制
回归:应用是怎么启动binder机制的?
- 了解binder是用来干什么的?
a)binder是用来跨进程通信的 - 应用里面哪些地方用到了binder机制?
a)调用系统服务
b)启动activity
c)发广播
d)只要涉及应用组件,都要需要跟AMS交互,就都涉及binder机制 - 应用的大致启动流程是怎样的?
(通过应用启动流程解释应用是什么时候启动binder机制的) - 一个进程是怎么启动binder机制的?
a)打开binder驱动
b)映射内存,分配缓冲区
c)注册binder线程
d)进入binder loop
Binder机制解析
本文深入探讨了Binder机制在Android系统中的作用及其在跨进程通信中的应用。详细介绍了Binder如何被用于调用系统服务、启动Activity、发送广播等场景,并概述了应用启动流程中Binder机制的启动过程。
1082

被折叠的 条评论
为什么被折叠?



