Binder之bindService

2019-10-17
阅读 14 分钟
4k
其中,getServiceDispatcher()返回一个IServiceConnection对象,它为一个Binder实体,将负责与ServiceConnection通信。

Binder驱动之死亡通知

2019-09-30
阅读 12 分钟
6.4k
在Binder通信建立后,Client端可能需要知道Server端的存活状态。当Server端挂掉时,Client端需要清理与通信相关的数据和行为,这个清理过程就是通过Binder死亡通知机制实现的。

Binder之Service Manager

2019-09-30
阅读 11 分钟
2.6k
Service Manager是整个Binder机制的守护进程,用来管理开发者创建的各种Server,并且向Client提供查询Server远程接口的功能。Service Manager在init.rc中作为service启动,运行在一个独立的进程中。而Client和Server也运行在独立的进程中。这样,如果Client和Server需要和Service Manager进行通信,就需要使用进程中通信...

Binder驱动之最简单的通信

2019-09-29
阅读 24 分钟
5.6k
在Android系统中可以所是无处不Binder,Binder传输在每时每刻都发生着。很多情况下,一个进程中都不会只存在一个独立的Binder传输,经常是并发多个Binder传输,而且会存在Binder嵌套。尤其像system_server这种重要的进程Binder传输会更多。在系统发生问题时,如果追踪到system_server,会发现大部分情况都是在Binder传输...

Binder之简单实例

2019-09-26
阅读 14 分钟
6.5k
Binder是Android中使用的进程间通信机制(IPC)。在Android系统中,应用程序是由Activity、Service、Broadcast Receiver和Content Provider四种类型的组件构成的,它们有可能运行在同一进程中,也有可能运行在不同的进程中。此外,各种系统组件也运行在独立的进程中。这些运行在不同进程中的应用程序组件和系统组件之间...

Android MediaPlayer Playback流程分析

2019-09-26
阅读 12 分钟
4.7k
可以看到,MediaPlayer通过静态初始化的方式对native层进行初始化。MediaPlayer对媒体控制的动作都是在底层实现的,所以必须在MediaPlayer创建时优先初始化底层。

Binder驱动之Buffer Size

2019-09-26
阅读 3 分钟
6.6k
Android中,由Zygote孵化的进程是通过ProcessState来创建Binder实体的。实体创建过程中会映射一段内存空间用于数据传输,其大小设置为 ((1*1024*1024) - (4096*2))。

Binder驱动之设备初始化

2019-09-26
阅读 17 分钟
5.6k
Binder是Android使用的进程间通信工具。Android本身是一个复杂的操作系统,运行着众多的应用和服务,它们之间的通信就显得尤为重要。应用程序在使用Binder进行进程间通信时,实现方法非常简单,只需要编写AIDL文件,系统在编译时就会生成IPC通信代码。这种简单的方式也使得应用开发者可以不用了解Binder底层的传输机制。...