AIDL(1)

AIDL(Android接口定义语言)

说明

让Android系统应用之间可以跨进程访问。使用AIDL技术就意味着系统的其他应用可以访问到自己应用的服务组件。Android跨进程访问有两种方式:一种是使用AIDL技术,另一种是使用Messenger技术。两者的区别就是前者可以处理多线程,后者只能处理单线程。所以使用AIDL时必须保证线程安全。

定义远程服务接口

1.Create the .aidl file(创建AIDL文件)

在工程src目录下创建AIDL文件,在文件内定义接口。

2.Implement the interface(实现接口)

在服务类中实现AIDL接口

3.Expose the interface to clients(暴露接口给客户端)

绑定远程接口对象方法

1.复制AIDL接口文件

2.绑定远程服务

3.获取远程服务接口对象实例

4.调用程服务接口方法

实例工程下载链接http://download.csdn.net/detail/u010739551/7705575

更多信息在AIDL(2)博客中。

AIDL(1)

时间: 2025-01-02 15:16:27

AIDL(1)的相关文章

【翻译】Android Interface Definition Language (AIDL)

参考地址:https://developer.android.com/guide/components/aidl.html Android Interface Definition Language (AIDL) AIDL (Android Interface Definition Language) is similar to other IDLs you might have worked with. It allows you to define the programming inter

android 远程Service以及AIDL的跨进程通信

在Android中,Service是运行在主线程中的,如果在Service中处理一些耗时的操作,就会导致程序出现ANR. 但如果将本地的Service转换成一个远程的Service,就不会出现这样的问题了. 转换成远程Service非常简单,只需要在注册Service的时候将他的android:process的属性制定成 :remote就可以了. 重新运行项目,你会发现,不会出现ANR了. 为什么将MyService转换成远程Service后就不会导致程序ANR了呢?这是由于,使用了远程Serv

AIDL初识

AIDL是一个缩写,全称是Android Interface Definition Language,也就是Android接口定义语言. AIDL的设计是为了实现进程间通信,如同两个进程的桥梁,传输一些特定规格的数据. Android中实现进程通信的几种方式: 1.Activity (借助Intent调用其他APP的Activity实现跨进程通信) 2.广播接收者(BroadcastReceiver) 3.内容提供者(ContentProvider) 4.AIDL(Android Interfa

Android 使用AIDL实现进程间的通信

在Android中,如果我们需要在不同进程间实现通信,就需要用到AIDL技术去完成. AIDL(android Interface Definition Language)是一种接口定义语言,编译器通过*.aidl文件的描述信息生成符合通信协议的Java代码,我们无需自己去写这段繁杂的代码,只需要在需要的时候调用即可,通过这种方式我们就可以完成进程间的通信工作.关于AIDL的编写规则我在这里就不多介绍了,读者可以到网上查找一下相关资料. 接下来,我就演示一个操作AIDL的最基本的流程. 首先,我

Android开发——进程间通信之AIDL(二)

0.  前言 不论是Android还是其他操作系统,都会有自己的IPC机制,所谓IPC(Inter-Process Communication)即进程间通信.首先线程和进程是很不同的概念,线程是CPU调用的最小单元,进程一般在PC和移动设备上指一个程序或者一个应用,一个进程可以包含多个线程. IPC方式有很多,在Android中常用的IPC方式包括Bundle.文件.Messenger.AIDL.ContentProvider和Socket等方式. Android开发--进程间通信之AIDL(一

Android:远程服务Service(含AIDL & IPC讲解)

前言 Service作为Android四大组件之一,应用非常广泛 本文将介绍Service其中一种常见用法:远程Service 如果你对Service还未了解,建议先阅读我写的另外一篇文章: Android四大组件:Service史上最全面解析 目录 1. 远程服务与本地服务的区别 远程服务与本地服务最大的区别是:远程Service与调用者不在同一个进程里(即远程Service是运行在另外一个进程):而本地服务则是与调用者运行在同一个进程里 二者区别的详细区别如下图: 2. 使用场景 多个应用程

android-----关于通过AIDL注册监听之后无法解除监听的探索

我们在平常使用AIDL时可能会有这样的场景,客户端并不想一直查看服务端有没有有关我的消息,而是想让服务端在有消息的时候能够通知我,随后客户端再去服务端拿消息,这样相对来说比较节省资源,通常我们可以利用观察者模式将客户端注册到服务端,接着有消息的时候服务端相应的通知各个客户端就可以了,这种方式在客户端和服务端处于同一进程的时候使用是没有问题的,因为同一进程内部是可以直接传递对象的,并不会出现注册绑定到服务端和解注册的对象不同的情况,但是如果放到不同进程间的话,因为通信过程中涉及到了序列化反序列化过

对Binder的浅显分析及AIDL的使用

通常情况下,作为一个android开发者不会直接接触到Binder,但Binder作为ipc机制最关键的一个环节,我们很有必要去了解他.其实在不知不觉中,大家肯定和Binder打过交道,比如我们bindService的时候,客户端会获取到一个远程服务器发送回来的Binder对象,通过操作这个对象我们可以获取服务端的数据或者执行某些服务端的操作.再比如,我么在获取各种系统服务的时候,Binder是作为serviceManager连接各种manager(windowManager.....)的桥梁.

Android-使用AIDL挂断电话

1.AIDL简单操作 package org.zrf.demo; import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method; import android.app.Service;import android.content.Context;import android.content.Intent;import android.media.AudioManager;import andr

Android(java)学习笔记232: 远程服务之 ipc和aidl (面试常问)

一.IPC inter process communication  进程间通讯 二.aidl android  interface  defination  language  安卓接口定义语言 满足两个进程之间  接口数据的交换(ipc) 首先我们搞清楚两个概念  远程服务和本地服务 ?            本地服务:服务的代码在应用程序工程的内部            远程服务:服务的代码在另一个应用程序的里面 三.下面通过案例说明aidl 和 ipc  在远程服务中使用 1.首先创建一