
android binder
RationalGo
这个作者很懒,什么都没留下…
展开
-
Binder基本概念流程学习
一 Media Service进程启动Init.rc中描述的service对应linux 的进程:Media进程定义:service media /system/bin/mediaserver class main user media group audio camera inet net_bt net_bt_admin net_bw_acct d转载 2014-03-17 15:39:26 · 776 阅读 · 0 评论 -
ANDROID jni 中的事件回调机制JNIenv的使用
android framework 里java调用native,使用JNI机制,java如何调用native,在framework里面的例子很多,有很多参考,可以方便的使用。但是在一些native中如果涉及到了事件回调,需要在native里调用java对象,在framework 框架里也有这样的例子。在项目里用到了这一机制。在native 注册的时候首先保存java的调用方法:st转载 2014-04-18 00:35:36 · 807 阅读 · 0 评论 -
Service与Android系统设计(5)-- libbinder
特别声明:本系列文章LiAnLab.org著作权所有,转载请注明出处。作者系LiAnLab.org资深Android技术顾问吴赫老师。本系列文章交流与讨论:@宋宝华Barry libbinder – Binder的Native实现出于性能和代码统一性的角度考虑,Binder IPC并不Java和Native环境里各实现一次,而只是分别在不同的执行环境里提供使用的接口。使用B转载 2014-04-16 23:57:29 · 1104 阅读 · 0 评论 -
Service与Android系统设计(6)--- Native Service
特别声明:本系列文章LiAnLab.org著作权所有,转载请注明出处。作者系LiAnLab.org资深Android技术顾问吴赫老师。本系列文章交流与讨论:@宋宝华BarryNative ServiceNative Service,这是Android系统里的一种特色,就是通过C++或是C代码写出来的,供Java进行远程调用的Remote Service,因为C/C++代码生成的是N转载 2014-04-17 00:00:44 · 740 阅读 · 0 评论 -
Android的MediaPlayer架构介绍 补充
一 、类图扩充图1 Binder代理,本地接口 类图中加入了Bp的代理类:BpMediaPlayer,BpMediaPlayerService。这些类和相应的Bn互相配对,Bp客户端代理接口,而Bn实现服务端本地接口。拿BxMediaPlayer来举例:BpMediaPlayer继承BpInterface,并重载实现IMediaPlayer接口的转载 2014-04-01 00:04:01 · 1026 阅读 · 0 评论 -
android IPC通信机制中BBinder与BpBinder的区别
刚开始看android的IPC通信机制,BBinder与BpBinder这两者容易混淆。其实这两者是很好区分,对于service来说继承了BBinder(BnInterface)因为BBinder有onTransact消息处理函数,而对于与service通信的client来说需要继承BpBinder(BpInterface),因为BpBinder有消息传递函数transcat。以camer转载 2014-04-16 14:36:24 · 4438 阅读 · 0 评论 -
Android深入浅出之Binder机制
Android深入浅出之Binder机制一 说明 Android系统最常见也是初学者最难搞明白的就是Binder了,很多很多的Service就是通过Binder机制来和客户端通讯交互的。所以搞明白Binder的话,在很大程度上就能理解程序运行的流程。我们这里将以MediaService的例子来分析Binder的使用:l ServiceManager,这是Androi转载 2014-04-01 00:30:37 · 619 阅读 · 0 评论 -
分析IBinder体系中getService的流程
IBinder体系中得到一个服务的过程分析:ServiceManager是管理所有服务(如音频,相机)的一个进程,它的handle是0一、总的来说:得到一个service很简单,分成两步,1,得到一个默认的serviceManager;2,然后使用serviceManger->getService(service名称)得到具体的service二、详细分析参照网上一些资料转载 2014-04-16 14:23:22 · 729 阅读 · 0 评论 -
深入了解mediaserver-2
4.2 BnServiceManager 上面说了,defaultServiceManager返回的是一个BpServiceManager,通过它可以把命令请求发送到binder设备,而且handle的值为0。那么,系统的另外一端肯定有个接收命令的,那又是谁呢? 很可惜啊,BnServiceManager不存在,但确实有一个程序完成了BnServiceMan转载 2014-03-18 13:51:53 · 795 阅读 · 0 评论 -
深入了解mediaserver-3
6. MediaPlayer如何与MediaPlayerService交互6.1 MeidaPlayerService根据MediaPlayer的请求,创建对应的MeidaPlayer[html] view plaincopy//MediaPlayerService.cpp static spMediaPlayerBase> cr转载 2014-03-18 13:53:16 · 833 阅读 · 0 评论 -
深入了解MediaServer-1
1.mediaserver位于main_mediaserver.cpp,其源码如下:[html] view plaincopyint main(int argc, char** argv) { spProcessState> proc(ProcessState::self()); spIServiceManager>转载 2014-03-18 13:49:40 · 675 阅读 · 0 评论 -
从应用程序的角度看Binder
从应用程序的角度看Binder一共有三个方面:Native 本地:例如BnABC,这是一个需要被继承和实现的类。Proxy 代理:例如BpABC,这是一个在接口框架中被实现,但是在接口中没有体现的类。客户端:例如客户端得到一个接口ABC,在调用的时候实际上被调用的是BpABC1. 本地功能(Bn)部分做的:实现BnABC:: OnTransact()注册服务:I转载 2014-03-18 13:44:44 · 647 阅读 · 0 评论 -
Android Media Player回调事件传递
Android Media Player回调事件传递 --- 比如:节目播放完成事件如何回馈到Java应用空间 通过分析回调事件的传递,有助于进一步理解Android Media Player 框架。 (1) setOnCompletionListener(): 应用程序注册回调对象[MediaPlayer.java]------------------------转载 2014-04-18 00:38:32 · 2455 阅读 · 0 评论