基于Android 6.0的源码剖析, Binder所涉及的源码目录 1. Binder概述 从IPC角度来说:Binder是Android中的一种跨进程通信方式,该通信方式在linux中没有,是Android独有; 从…
标签:Gityuan
Binder系列8—如何使用Binder
自定义binder架构的 client/ server组件 一、Native层Binder 源码结构: ClientDemo.cpp: 客户端程序 ServerDemo.cpp:服务端程序 IMyService.h:自定…
Binder系列7—framework层分析
主要分析Binder在java framework层的框架,相关源码: framework/base/core/java/android/os/ - IInterface.java - IServiceManager.j…
Binder系列5—注册服务(addService)
基于Android 6.0的源码剖析, 本文讲解如何向ServiceManager注册Native层的服务的过程。 framework/native/libs/binder/ - Binder.cpp - BpBinde…
Binder系列6—获取服务(getService)
基于Android 6.0的源码剖析, 本文Client如何向Server获取服务的过程。 一、 获取服务 在Native层的服务注册,我们选择以media为例来展开讲解,先来看看media的类关系图。 1.1 类图 点…
Binder系列2—Binder Driver再探
基于Android 6.0的源码剖析,在讲解Binder原理之前,先从kernel的角度来讲解Binder Driver. 一、Binder通信简述 上一篇文章Binder Driver初探介绍了Binder驱动的ini…
Binder系列4—获取ServiceManager
基于Android 6.0的源码剖析, 本文详细地讲解defaultServiceManager流程 framework/native/libs/binder/ - ProcessState.cpp - BpBinder…
Binder系列3—启动ServiceManager
基于Android 6.0的源码剖析, 本文详细地讲解了ServiceManager启动流程 framework/native/cmds/servicemanager/ - service_manager.c - bin…
Binder系列1—Binder Driver初探
基于Android 6.0的源码剖析,在讲解Binder原理之前,先从kernel的角度来讲解Binder Driver. kernel/drivers/ (不同Linux分支路径略有不同) - staging/andr…
Linux内存管理
关于Linux的内存管理,本文分别从内核空间和用户空间两个视角来阐述 一、内核空间 1.1 页 页(page)是内核的内存管理基本单位。 ==> linux/mm_types.h struct page { pag…
Jvm系列5—执行子系统
字节码执行引擎 概述 执行引擎是Java虚拟机非常最核心的部分,对于物理级的执行引擎是直接建立在处理器、硬件、指令集合操作系统层面,而虚拟机执行引擎则是由自行定制的指令集与执行引擎的结构体系。执行引擎在执行Java会有解…
Jvm系列3—字节码指令
介绍java虚拟机的指令功能,至少能阅读java代码生成的字节码指令含义 一、概述 Java虚拟机采用基于栈的架构,其指令由操作码和操作数组成。 操作码:一个字节长度(0~255),意味着指令集的操作码个数不能操作256…