Binder和SurfaceFlinger以及SystemServer介绍-android学习之旅(79)
来源:互联网 发布:arm linux gcc 4.4.2 编辑:程序博客网 时间:2024/05/06 19:27
由于binder机制的存在,使得进程A可以访问进程B中的对象。
Android系统Binder机制中的四个组件Client、Server、Service Manager和Binder驱动程序:
1. Client、Server和Service Manager实现在用户空间中,Binder驱动程序实现在内核空间中
2. Binder驱动程序和Service Manager在Android平台中已经实现,开发者只需要在用户空间实现自己的Client和Server
3. Binder驱动程序提供设备文件/dev/binder与用户空间交互,Client、Server和Service Manager通过open和ioctl文件操作函数与Binder驱动程序进行通信
4. Client和Server之间的进程间通信通过Binder驱动程序间接实现
5. Service Manager是一个守护进程,用来管理Server,并向Client提供查询Server接口的能力
Binder在调用另一个进程的对象时,就像在自己的进程中一样
#
Binder实际上使用的共享内存的方式来进行通信,Binder作为一个中间这进行传递共享数据
Binder实际上使用的共享内存的方式来进行通信,Binder作为一个中间这进行传递共享数据
Native Service:系统初始化时建立
Android Service:系统二阶段初始化建立
systemserver介绍:
1.Zygote进程是Android Java世界的开创者,所有的Java应用程序进程都由Zygote进程创建。Zygote创建应用程序进程过程其实就是复制自身进程地址空间作为应用程序进程的地址空间。
#
2.Zygote进程是所有Android Java应用程序进程的父进程,是继承关系,应用程序进程继承Zygote进程的所有资源,Zygote进程在启动时加载所有应用程序进程运行所需的公共资源。普通应用程序在启动时,只需要加载自身特性资源就可以了。
surfaceFlinger介绍:
1.SurfaceFlinger服务运行在Android系统的System进程中,它负责管理Android系统的帧缓冲区(Frame Buffer)。每一个Android应用程序与SurfaceFlinger服务都有一个连接,这个连接都是通过一个类型为Client的Binder对象来描述的,来通知surfaceFlinger绘制自己的UI。 ##
2.Android应用程序在通知SurfaceFlinger服务来绘制自己的UI的时候,需要通过SharedClient将UI元数据传递给SurfaceFlinger服务,一个SharedClient对应一个Android应用程序,一个SharedClient至多包含SharedBufferStack(共享缓冲区堆栈),一个Shared-BufferStack对应一个surface。
0 0
- Binder和SurfaceFlinger以及SystemServer介绍-android学习之旅(79)
- Android SystemServer学习之二
- Android源码学习之浅析SystemServer脉络
- Android源码学习之接着浅析SystemServer
- 浅谈Android之SurfaceFlinger相关介绍(一)
- 浅谈Android之SurfaceFlinger相关介绍(二)
- 浅谈Android之SurfaceFlinger相关介绍(三)
- Android SystemServer学习
- Android SystemServer学习
- Android SystemServer学习
- android L 之 SystemServer
- android L 之SystemServer
- Android 之 ServiceManager与服务管理, 以及SystemServer核心进程
- Android Binder IPC详解-Android学习之旅(96)
- Android为什么使用Binder-android学习之旅(101)
- Android SurfaceFlinger 学习之路(二)----SurfaceFlinger概述
- Android SurfaceFlinger 学习之路(六)----SurfaceFlinger创建Surface
- Binder学习之——Android的MediaPlayer架构介绍
- html5动画基础(canvas,太阳系)
- Shape对象与VML坐标系 ---类似热区
- IOS页面布局 纯代码
- Redis学习笔记(三)类型之散列
- 正确使用JS中的正则
- Binder和SurfaceFlinger以及SystemServer介绍-android学习之旅(79)
- swift中的文件操作
- Java中的异常复习
- 企业软件,路在何方?
- Java中的常用异常处理方法
- Python基本语法_函数_参数的多类型传值
- centos 配置IP和解除自动待机休眠
- ReactJS ,是否言过其实?
- 数据复制