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

相关文章
|
存储 安全 Android开发
探索Android与iOS的隐私保护机制
在数字化时代,移动设备已成为我们生活的一部分,而隐私安全是用户最为关注的问题之一。本文将深入探讨Android和iOS两大主流操作系统在隐私保护方面的策略和实现方式,分析它们各自的优势和不足,以及如何更好地保护用户的隐私。
|
消息中间件 存储 Java
Android消息处理机制(Handler+Looper+Message+MessageQueue)
Android消息处理机制(Handler+Looper+Message+MessageQueue)
320 2
|
消息中间件 Android开发
Android Handler的使用方式以及其机制的简单介绍
Handler 是 Android 中实现线程间通信的重要机制,可传递任意两线程数据。常用场景包括子线程向主线程(UI 线程)传递结果,以及主线程向子线程发送消息。其核心涉及四个类:Handler(发送/接收消息)、Message(消息载体)、MessageQueue(消息队列)和 Looper(消息循环泵)。基本流程为:Handler 发送 Message 至 MessageQueue,Looper 从队列中按 FIFO 取出并处理。
407 0
|
存储 Linux Android开发
Android底层:通熟易懂分析binder:1.binder准备工作
本文详细介绍了Android Binder机制的准备工作,包括打开Binder驱动、内存映射(mmap)、启动Binder主线程等内容。通过分析系统调用和进程与驱动层的通信,解释了Binder如何实现进程间通信。文章还探讨了Binder主线程的启动流程及其在进程通信中的作用,最后总结了Binder准备工作的调用时机和重要性。
Android底层:通熟易懂分析binder:1.binder准备工作
|
Linux Android开发 iOS开发
深入探索Android与iOS的多任务处理机制
在移动操作系统领域,Android和iOS各有千秋,尤其在多任务处理上展现出不同的设计理念和技术实现。本文将深入剖析两大平台在后台管理、资源分配及用户体验方面的策略差异,揭示它们如何平衡性能与电池寿命,为用户带来流畅而高效的操作体验。通过对比分析,我们不仅能够更好地理解各自系统的工作机制,还能为开发者优化应用提供参考。
|
算法 Linux 调度
深入探索安卓系统的多任务处理机制
【10月更文挑战第21天】 本文旨在为读者提供一个关于Android系统多任务处理机制的全面解析。我们将从Android操作系统的核心架构出发,探讨其如何管理多个应用程序的同时运行,包括进程调度、内存管理和电量优化等方面。通过深入分析,本文揭示了Android在处理多任务时所面临的挑战以及它如何通过创新的解决方案来提高用户体验和设备性能。
997 1
|
消息中间件 存储 Java
Android面试高频知识点(2) 详解Android消息处理机制(Handler)
Android面试高频知识点(2) 详解Android消息处理机制(Handler)
|
消息中间件 存储 Java
Android面试高频知识点(2) 详解Android消息处理机制(Handler)
Android面试高频知识点(2) 详解Android消息处理机制(Handler)
450 1
|
消息中间件 存储 Java
Android消息处理机制(Handler+Looper+Message+MessageQueue)
Android消息处理机制(Handler+Looper+Message+MessageQueue)
582 2
|
存储 安全 数据安全/隐私保护
探索安卓与iOS的隐私保护机制####
【10月更文挑战第15天】 本文深入剖析了安卓和iOS两大操作系统在隐私保护方面的策略与技术实现,旨在揭示两者如何通过不同的技术手段来保障用户数据的安全与隐私。文章将逐一探讨各自的隐私控制功能、加密措施以及用户权限管理,为读者提供一个全面而深入的理解。 ####
1115 1