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

相关文章
|
1月前
|
消息中间件 存储 Java
Android消息处理机制(Handler+Looper+Message+MessageQueue)
Android消息处理机制(Handler+Looper+Message+MessageQueue)
38 2
|
1天前
|
存储 安全 Android开发
探索Android与iOS的隐私保护机制
在数字化时代,移动设备已成为我们生活的一部分,而隐私安全是用户最为关注的问题之一。本文将深入探讨Android和iOS两大主流操作系统在隐私保护方面的策略和实现方式,分析它们各自的优势和不足,以及如何更好地保护用户的隐私。
|
20天前
|
消息中间件 存储 Java
Android面试高频知识点(2) 详解Android消息处理机制(Handler)
Android面试高频知识点(2) 详解Android消息处理机制(Handler)
|
24天前
|
消息中间件 存储 Java
Android面试高频知识点(2) 详解Android消息处理机制(Handler)
Android面试高频知识点(2) 详解Android消息处理机制(Handler)
43 1
|
25天前
|
存储 安全 数据安全/隐私保护
探索安卓与iOS的隐私保护机制####
【10月更文挑战第15天】 本文深入剖析了安卓和iOS两大操作系统在隐私保护方面的策略与技术实现,旨在揭示两者如何通过不同的技术手段来保障用户数据的安全与隐私。文章将逐一探讨各自的隐私控制功能、加密措施以及用户权限管理,为读者提供一个全面而深入的理解。 ####
44 1
|
27天前
|
消息中间件 存储 Java
Android消息处理机制(Handler+Looper+Message+MessageQueue)
Android消息处理机制(Handler+Looper+Message+MessageQueue)
43 2
|
1月前
|
存储 Linux Android开发
Android底层:通熟易懂分析binder:1.binder准备工作
本文详细介绍了Android Binder机制的准备工作,包括打开Binder驱动、内存映射(mmap)、启动Binder主线程等内容。通过分析系统调用和进程与驱动层的通信,解释了Binder如何实现进程间通信。文章还探讨了Binder主线程的启动流程及其在进程通信中的作用,最后总结了Binder准备工作的调用时机和重要性。
Android底层:通熟易懂分析binder:1.binder准备工作
|
2月前
|
存储 缓存 Android开发
Android RecyclerView 缓存机制深度解析与面试题
本文首发于公众号“AntDream”,详细解析了 `RecyclerView` 的缓存机制,包括多级缓存的原理与流程,并提供了常见面试题及答案。通过本文,你将深入了解 `RecyclerView` 的高性能秘诀,提升列表和网格的开发技能。
66 8
|
3月前
|
消息中间件 存储 Java
Android面试高频知识点(2) 详解Android消息处理机制(Handler)
Android 消息处理机制估计都被写烂了,但是依然还是要写一下,因为Android应用程序是通过消息来驱动的,Android某种意义上也可以说成是一个以消息驱动的系统,UI、事件、生命周期都和消息处理机制息息相关,并且消息处理机制在整个Android知识体系中也是尤其重要,在太多的源码分析的文章讲得比较繁琐,很多人对整个消息处理机制依然是懵懵懂懂,这篇文章通过一些问答的模式结合Android主线程(UI线程)的工作原理来讲解,源码注释很全,还有结合流程图,如果你对Android 消息处理机制还不是很理解,我相信只要你静下心来耐心的看,肯定会有不少的收获的。
195 3
Android面试高频知识点(2) 详解Android消息处理机制(Handler)
|
4月前
|
缓存 安全 Java
Android深入Binder拦截问题分析
【7月更文挑战第1天】Android Binder 拦截可实现虚拟化、测试、SDK检测、逆向分析及ROM扩展。通过Java层aidl代理,利用IBinder接口规范来拦截通信。拦截步骤包括:替换Binder服务缓存对象,如ActivityManagerService;代理ServiceManager以控制服务获取。此操作需系统权限,可能涉及安全风险和版本差异,非必要时应谨慎。