binder分析
ljt326053002
这个作者很懒,什么都没留下…
展开
-
binder源码分析(五)
本篇从ServiceManager.addService()作为例子分析。 addService 前几篇分析过,getIServiceManager()拿到的是ServiceManagerProxy,调用其对应的addService。而addService也是向Parcel写入参数,然后调用transact,和getService差不多,值得注意的是写入参数时,有writeStrongBinder...原创 2020-04-09 21:21:40 · 295 阅读 · 0 评论 -
binder源码分析(四)
发送方线程被唤醒 talkWithDriver waitForResponse原创 2020-04-06 17:09:18 · 278 阅读 · 0 评论 -
binder源码分析(三)
binder_transaction binder_transaction比较长,首先要有一些结构体的认识: binder_node 可以理解为binder实体的节点 binder_work binder驱动中的事务 binder_proc 进程所持有的binder信息,值得注意的是,binder_proc有四棵红黑树,分别是threads,nodes,refs_by_desc和refs_by_...原创 2020-04-05 22:05:57 · 451 阅读 · 0 评论 -
binder源码分析(二)
Service获取 ServiceManager getService(),先从cache里面查找服务是否已注册,没有就getIServiceManager().getService()。 getIServiceManager()中返回ServiceManagerNative.asInterface(Binder.allowBlocking(BinderInternal.getContextOb...原创 2020-04-02 00:00:45 · 358 阅读 · 0 评论 -
binder源码分析(一)
前言 接触Android的时候就对binder有所耳闻,作为进程间通信的工具,binder驱动,拷贝数据的次数少,使用起来,前段时间看来了些源码,自己尝试分析了之后还是受益匪浅,写下来,日后也可以看看回顾一下。 servicemanager int main(int argc, char** argv) { struct binder_state *bs; union seli...原创 2020-02-18 22:03:38 · 584 阅读 · 0 评论