本文主要包含分析三个文件: framework/base/cmds/ServiceManager/service_manager.c framework/base/cmds/ServiceManager/binder.c kernel/drivers/staging/android/binder.c...
分类:
其他好文 时间:
2014-06-28 12:49:46
阅读次数:
397
1.Binder(IPC)Linux进程之间要能够互相通信,从而共享资源和信息。所以,操作系统内核必须提供进程间的通信机制(IPC,Inter-Process Communication)。IPC机制种类:采用命名管道(name pipe),消息队列(message queue),信号(signal...
分类:
其他好文 时间:
2014-06-26 20:48:54
阅读次数:
329
一个Binder实例
我们Binder的学习将从下面的一个实例开始。根据Android文档中的描述,创建一个Binder服务主要包括如下3步:
下面具体看一下在eclipse中是如何开发一个Binder应用的。
第一步:在工程目录下定义aidl文件。
1
2
3
4
5
6
7
8...
分类:
其他好文 时间:
2014-06-24 23:37:06
阅读次数:
400
1.Binder通信机制介绍这篇文章会先对照Binder机制与Linux的通信机制的区别,了解为什么Android会另起炉灶,採用Binder。接着,会依据Binder的机制,去理解什么是Service Manager,在C/S模型中扮演什么角色。最后,会从一次完整的通信活动中,去理解Binder通...
分类:
其他好文 时间:
2014-06-24 11:09:22
阅读次数:
182
命题 当service经常被远程调用时,我们经常常使用到aidl来定一个接口供service和client来使用,这个事实上就是使用Binder机制的IPC通信。当client bind service成功之后,系统AM会调用回调函数onServiceConnected将service的IBind....
分类:
其他好文 时间:
2014-06-23 00:50:30
阅读次数:
211
服务类
中间人:service服务中的bind对象
创建中间人并通过onBinder方法的return暴露出去
在服务类创建一个服务
创建中间人继承Binder
MainActivity类
声明服务的中间人
private ServiceTese.MyBinder myBinder;
链接成功的时候赋值se...
分类:
其他好文 时间:
2014-06-22 21:36:21
阅读次数:
188
本文参考《Android系统源代码情景分析》,作者罗升阳
一、架构代码:
~/Android/frameworks/base/core/java/android/os
----IInterface.java (Interface)
----IServiceManager.java (IServiceManager)
-...
分类:
编程语言 时间:
2014-06-16 22:06:54
阅读次数:
281
一、Server和Service Manager进程间通信
Service Manager进程启动时,已经创建了Service Manager实体对象,没有Service Manager本地对象。
Server首先获取了Server代理对象,句柄值为0。没有Server引用对象。
Server----->Service Manager
...
分类:
其他好文 时间:
2014-06-16 14:14:26
阅读次数:
230
这一章我们通过MediaPlayerService的注冊来说明怎样在Native层通过binder向ServiceManager注冊一个service,以及client怎样通过binder向ServiceManager获得一个service,并调用这个Service的方法。Native Servic...
分类:
移动开发 时间:
2014-06-15 13:15:36
阅读次数:
345
先上图,根据图做一个简单介绍
我们讲一下MediaPlayer
应用层的播放器首先调用framework层的MediaPlayer的类,接着FrameWork层会继续调用Native层的MediaPlayer类,然后通过Binder调用MediaPlayerService,MediaPlayerService调用OpenVC库解码成原始的视频流和音频流,视频流通过UI一帧一帧的显示出来,Med...
分类:
移动开发 时间:
2014-06-10 14:31:35
阅读次数:
314