不管是客户端还是服务端,头部都要先调用 defaultServiceManager()都干了什么,它返回的是什么实例呢? 该函数定义在frameworks/native/libs/binder/IserviceManager.cpp:33 关键步骤可以分解为几步:1、ProcessState::se ...
分类:
其他好文 时间:
2016-05-07 16:17:23
阅读次数:
159
创建一个Bound Service想要创建一个提供binding的service,必须提供一个IBinder给client与service进行交互。有三种方式可以定义接口:
继承Binder类
如果service只给自己的应用使用并且不会做跨进程的操作,我们可以继承Binder类并且通过onBind()返回一个它的实例。client接收到这个Binder可以直接使用它开调用service提供的方法...
分类:
其他好文 时间:
2016-05-07 08:04:13
阅读次数:
189
APK程序的运行过程首先,ActivityThread从main()函数中开始执行,调用prepareMainLooper()为UI线程创建一个消息队列(MessageQueue)。然后创建一个ActivityThread对象,在ActivityThread的初始化代码中会创建一个H(Handler)对象和一个ApplicationThread(Binder)对象。其中Binder负责接收远程AmS...
分类:
其他好文 时间:
2016-05-07 07:56:18
阅读次数:
121
在aidl中也可以自定义类型。
写两个aidl文件:
IBookManager.aidlinterface IBookManager {
void add(in Book book);
List getBookList();
}在aidl中声明Book,Book.aidlparcelable Book;在服务端,通过Binder返回远程服务对象Stub。而这个Stub...
分类:
其他好文 时间:
2016-05-06 12:37:20
阅读次数:
121
Android是基于Linux的操作系统,底层是Linux内核层(Linux2.6, Linux3.4等),android使用了Linux操作系统的内核和驱动,其中驱动部分除了Linux的设备驱动,android还增加了专用驱动(例如Binder实现进程间通信)。学习驱动之前,必须先了解linux内 ...
分类:
移动开发 时间:
2016-05-04 01:16:22
阅读次数:
180
Binder是Android的进程间通信核心,如果看过Android源码,你会发现源码中Android的各种核心服务都是通过Binder机制进行相互通信的。在Binder的client部分就是通过代理模式来访问Server端的。这里想通过代理模式来详细介绍Java层Binder(源码基于6.0.1)。文中会简单介绍代理模式,详细介绍Binder机制。代理模式意图对其他对象提供一种代理以控制对这个对象的访问。...
分类:
移动开发 时间:
2016-04-29 20:08:40
阅读次数:
215
好吧,终于要开始讲解Activity的启动流程了,Activity的启动流程相对复杂一下,涉及到了Activity中的生命周期方法,涉及到了Android体系的CS模式,涉及到了Android中进程通讯Binder机制等等,首先介绍一下Activity,这里引用一下Android guide中对Activity的介绍:
An activity represents a single screen...
分类:
移动开发 时间:
2016-04-29 19:50:42
阅读次数:
224
最近在阅读源码时屡屡被Binder给绕进去了,感觉这玩意好像特别的重要,所以就单独的抽出来仔细的研究下,本文主要是从java层面来分析,对于底层内核的Binder驱动就不做深入探讨了,由于本文是以AIDL的使用情景来分析的,所以对于不会使用AIDL的童鞋先看另一篇文章http://blog.csdn.net/u012481172/article/details/50925381。废话不多说。...
分类:
其他好文 时间:
2016-04-29 17:13:29
阅读次数:
206
Binder是Android的进程间通信核心,如果看过Android源码,你会发现源码中Android的各种核心服务都是通过Binder机制进行相互通信的。在Binder的client部分就是通过代理模式来访问Server端的。这里想通过代理模式来详细介绍Java层Binder(源码基于6.0.1)。文中会简单介绍代理模式,详细介绍Binder机制。代理模式意图对其他对象提供一种代理以控制对这个对象的访问。...
分类:
移动开发 时间:
2016-04-26 22:00:11
阅读次数:
298