美文网首页
Android Framework学习之应用是如何启用Binde

Android Framework学习之应用是如何启用Binde

作者: 一只二凡子 | 来源:发表于2020-11-11 00:02 被阅读0次

1.了解binder是用来干什么的?

2.应用里面哪些地方用到了binder机制?

3.应用的大致启动流程是怎样的?

4.一个进程是怎么启用binder机制的?

binder是用来跨进程通信的,调用系统服务,启动组件,发广播都会用到binder机制,binder机制是在应用启动过程中启动的。

AMS和应用交互时就用到了binder机制,启用binder机制具体是什么时候呢?

Zygote启动进程时会执行runOnce函数,在子进程中会执行zygoteInit函数,nativeZygoteInit函数中就会启用binder机制。

nativte层

启动binder机制是在ProcessState里,也就是进程启动之后的初始化里做的。

打开binder驱动,映射内存,分配缓冲区,创建binder线程,进入binder Loop处理和返回binder请求。

PoolThread其实是执行线程单例IPCThreadState的joinThreadPool函数

IPCThreadState之前文章也提过,它里面有2个Parcel,一个是mIn,一个是mOut,写入binder驱动会先把数据放入mOut,返回的数据会放到mIn里,然后会循环的去读取和执行请求。

executeCommand函数会根据binder驱动发来的不同指令执行不同的操作。

相关文章

网友评论

      本文标题:Android Framework学习之应用是如何启用Binde

      本文链接:https://www.haomeiwen.com/subject/eiljbktx.html