一、Messenger类 作用:类似Message类,但是是跨进程使用的。 解析:它的底层是由AIDL实现的,从构造方法可以看出 //Service使用 public Messenger(Handler target){ mTarget = target.getIMessenger(); } //C ...
分类:
其他好文 时间:
2016-04-04 17:50:25
阅读次数:
133
一、Binder类 1.作用:Binder是客户端与服务器端的通信的媒介(连接各种Manager的桥梁),客户端通过Binder对象获取服务器端提供的数据 (为什么要用Binder来提供数据呢,服务器不能自己传给客户端数据么?) 因为服务器端通过Binder创建接口暴露自身数据,能够防止其他黑客入侵 ...
分类:
系统相关 时间:
2016-04-04 16:29:52
阅读次数:
166
实现客户端添加Book,Service接收并打印出书籍信息 一、创建Book类 1.创建文件夹(本文命名为aidl) 2.创建Book类并继承Parcelable接口(原因:AIDL只能传送继承Parcelable接口的类) 详见:第二章——Parcelable接口的使用(跨进程,Intent传输) ...
分类:
移动开发 时间:
2016-04-04 16:29:41
阅读次数:
280
aidl:android interface definition language 安卓接口定义语言 在两个不同的应用程序里面使用同一个接口 使用场景:调用支付宝服务进行支付 先写远程服务端Serivice 新建一个AlipayService继承系统Service 在清单文件里面,添加一个<ser ...
分类:
移动开发 时间:
2016-03-31 21:39:05
阅读次数:
144
服务端: 首先是编写一个aidl文件,注意AIDL只支持方法,不能定义静态成员,并且方法也不能有类似public等的修饰符;AIDL运行方法有任何类型的参数和返回值,在java的类型中,以下的类型使用时不需要导入包(import),基本数据类型、String、Map、List.当然为了避免出错,建议 ...
分类:
移动开发 时间:
2016-03-31 18:39:04
阅读次数:
174
上一篇文章Android 中的 Service 全面总结详解【下】 介绍了Service的一些知识以及本地Service的使用,如果对Service还不太了解的建议先看下上篇文章;本文主要接着上一篇讲下远程服务的使用;在说到远程服务的时候,我们需要先了解一些预备的知识:首先来了解一下AIDL机制:
AIDL的作用
由于每个应用程序都运行在自己的进程空间,并且可以从应用程序UI运行另一个服务进程,...
分类:
移动开发 时间:
2016-03-30 13:06:24
阅读次数:
277
之前记录了一个客户端如何跨进程地与一个服务端通信。如果只有一个客户端需要它,那么跨进程的意义也显得不那么大了。所以,我在此再建立了一个客端共同使用这个服务端。 客户端的代码与之前的代码几乎一模一样。在此不贴代码了。唯一不同的是,文件结构不同。由于服务端写在之前的工程中,我们需要一套共同的aidl接口 ...
分类:
系统相关 时间:
2016-03-30 01:35:58
阅读次数:
242
什么是AIDL
aidl是 Android Interface definition language的缩写,也就是安卓接口定义语言
为什么要有AIDL
AIDL允许你定义客户端与服务端达成一致的程序接口使用进程间通信相互交流。 在Android上面,一个进程不能正常的访问另一个进程的内存。 所以说,他们需要分解他们的对象为操作系统可以理解的基本单位,然后为你把这些对象按次序跨越进程边界 ,书...
分类:
移动开发 时间:
2016-03-28 15:36:20
阅读次数:
518
IPC是Inter-Process Communication的缩写,即跨进程通信。Android中跨进程通信有多种方式,如文件共享、使用ContentProvider、Broadcast、和Socket等。比较复杂的情况下,常用的两种方式为Messenger和AIDL,而Messenger的底层实现又是AIDL。首先不看别的,先来看一下AIDL是如何使用的。假设我们现在有一个两数相加的任务,客户端...
分类:
移动开发 时间:
2016-03-27 11:13:13
阅读次数:
258
近期有需求要实现两个apk之间的通信,想到用AIDL来实现,现写一个demo学习下AIDL怎样使用。 这里我要实现一个apk(client端)调用还有一个apk(server端)的方法. 先实现server端。代码结构例如以下 AIDL文件内容例如以下: package com.example.te ...
分类:
其他好文 时间:
2016-03-26 18:41:17
阅读次数:
201