2011年Android Binder机制学习笔记之一

简介: 2011年Android Binder机制学习笔记之一 一.Bn是什么缩写? Binder Native 二.Bp是什么缩写? Binder Proxy 三.Binder两个方面? 从应用程序的角度看Binder一共有两个方面: ■Native 本地:例如BnABC,这是一个需要被继承和实现的类。

2011Android Binder机制学习笔记之一

一.Bn是什么缩写?

Binder Native

二.Bp是什么缩写?

Binder Proxy

三.Binder两个方面?

从应用程序的角度看Binder一共有两个方面:

Native 本地:例如BnABC,这是一个需要被继承和实现的类。

Proxy 代理:例如BpABC,这是一个在接口框架中被实现,但是在接口中没有体现的类。

客户端:例如客户端得到一个接口ABC,在调用的时候实际上被调用的是BpABC

四.Binder的驱动程序在哪个目录?

kernel/include/linux/binder.h

kernel/drivers/android/binder.c

五.Binder驱动是一个什么设备?

是一个miscdevice,主设备号为10

六.Binder设备节点,或者说文件路径是什么?

/dev/binder

七.Binder驱动程序在proc文件系统建立的信息,包含什么信息?

proc目录:调用Binder各个进程的内容

state文件:使用函数binder_read_proc_state

stats文件:使用函数binder_read_proc_stats

transactions文件:使用函数binder_read_proc_transactions

transaction_log文件:使用函数binder_read_proc_transaction_log,其参数为binder_transaction_log (类型为struct binder_transaction_log)

failed_transaction_log文件:使用函数binder_read_proc_transaction_log 其参数为

binder_transaction_log_failed (类型为struct binder_transaction_log)

八.Binderproc文件夹位置:

/proc/binder

九.BRBC的含义

BR_XXX等宏为BinderDriverReturnProtocol,表示Binder驱动返回协议。

BC_XXX等宏为BinderDriverCommandProtocol,表示Binder驱动命令协议。

十.binder_thread数据结构是怎么样的?

struct binder_thread {

      struct binder_proc *proc;

     struct rb_node rb_node;

     int pid;

     int looper;

     struct binder_transaction *transaction_stack;

     struct list_head todo;

     uint32_t return_error;

     uint32_t return_error2;

     wait_queue_head_t wait;

     struct binder_stats stats;

};

十一binder_write_read是怎么样的?

struct binder_write_read {

     signed long write_size;

     signed long write_consumed;

     unsigned long write_buffer;

     signed long read_size;

     signed long read_consumed;

     unsigned long read_buffer;

};

十二binder_thread 的各个成员信息是从哪里获得的?

rb_node

十三Servicemanager的作用

servicemanager是一个守护进程,用该进程和/dev/binder进行通讯。

十四servicemanager可执行程序的路径

/system/bin/servicemanager

十五BnInterfaceBpInterface是两个重要的模版在哪个文件中定义的

IInterface.h文件中

十六.BnInterfaceBpInterface是如何定义的?

BnInterface模版的定义如下所示:

template class BnInterface : public INTERFACE, public BBinder

{

public:

    virtual sp  queryLocalInterface(const String16& _descriptor);

    virtual String16        getInterfaceDescriptor() const;

protected:

    virtual IBinder*        onAsBinder();

};

 

BpInterface模版的定义如下所示

template class BpInterface : public INTERFACE, public BpRefBase

{

public:

                            BpInterface(const sp& remote);

protected:

    virtual IBinder*    onAsBinder();

};

十七IsericeManager相关的两个文件是什么

ISericeManager.h

ISericeManager.cpp

十八.ISericeManager是系统最先被启动的服务

十九.IserviceManager知识要点:

1ISericeManager本地功能并没有使现,

2.它实际上由ServiceManager守护进程执行,

3.用户程序通过调用BpServiceManager来获得其他的服务

二十.如何得到默认的或者缺省的ISericeManager

ISericeManager.h中定义了一个接口,用于得到默认的ISericeManager

sp_defaultServiceManager();此时得到的ISericeManager实际上是一个全局的ISericeManager

相关文章
|
2天前
|
存储 缓存 Android开发
Android RecyclerView 缓存机制深度解析与面试题
本文首发于公众号“AntDream”,详细解析了 `RecyclerView` 的缓存机制,包括多级缓存的原理与流程,并提供了常见面试题及答案。通过本文,你将深入了解 `RecyclerView` 的高性能秘诀,提升列表和网格的开发技能。
18 8
|
1月前
|
消息中间件 存储 Java
Android面试高频知识点(2) 详解Android消息处理机制(Handler)
Android 消息处理机制估计都被写烂了,但是依然还是要写一下,因为Android应用程序是通过消息来驱动的,Android某种意义上也可以说成是一个以消息驱动的系统,UI、事件、生命周期都和消息处理机制息息相关,并且消息处理机制在整个Android知识体系中也是尤其重要,在太多的源码分析的文章讲得比较繁琐,很多人对整个消息处理机制依然是懵懵懂懂,这篇文章通过一些问答的模式结合Android主线程(UI线程)的工作原理来讲解,源码注释很全,还有结合流程图,如果你对Android 消息处理机制还不是很理解,我相信只要你静下心来耐心的看,肯定会有不少的收获的。
105 3
Android面试高频知识点(2) 详解Android消息处理机制(Handler)
|
2月前
|
缓存 安全 Java
Android深入Binder拦截问题分析
【7月更文挑战第1天】Android Binder 拦截可实现虚拟化、测试、SDK检测、逆向分析及ROM扩展。通过Java层aidl代理,利用IBinder接口规范来拦截通信。拦截步骤包括:替换Binder服务缓存对象,如ActivityManagerService;代理ServiceManager以控制服务获取。此操作需系统权限,可能涉及安全风险和版本差异,非必要时应谨慎。
|
3月前
|
安全 算法 数据安全/隐私保护
探索iOS与Android的隐私保护机制
【6月更文挑战第5天】在数字时代,隐私保护已成为用户最关心的问题之一。iOS和Android作为两大主流操作系统,各自发展出了独特的隐私保护技术。本文将深入探讨这两个平台在隐私保护方面的策略、技术和挑战。
84 3
|
3月前
|
Android开发
38. 【Android教程】Handler 消息传递机制
38. 【Android教程】Handler 消息传递机制
42 2
|
3月前
|
XML Android开发 数据格式
37. 【Android教程】基于监听的事件处理机制
37. 【Android教程】基于监听的事件处理机制
59 2
|
4月前
|
数据采集 Python SQL
2024年校花转学到我们班,于是我用Python把她空间给爬了个遍!(1),binder机制面试题
2024年校花转学到我们班,于是我用Python把她空间给爬了个遍!(1),binder机制面试题
2024年校花转学到我们班,于是我用Python把她空间给爬了个遍!(1),binder机制面试题
|
4月前
|
架构师 网络协议 算法
Android高级架构师整理面试经历发现?(大厂面经+学习笔记(1)
Android高级架构师整理面试经历发现?(大厂面经+学习笔记(1)
|
3月前
|
Android开发 虚拟化 异构计算
一文搞定Android VSync机制来龙去脉
一文搞定Android VSync机制来龙去脉
132 0
|
4月前
|
存储 API Android开发
Android 11 中的存储机制更新,面试心得体会
Android 11 中的存储机制更新,面试心得体会