`
Spiritualize_彭韬
  • 浏览: 25742 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

AIDL简单应用

 
阅读更多


AIDL(Android Interface Definition Language)

进程间的通信

1.创建一个.aidl文件,Eclipse自动编译,AndroidStudio手动去编译

package com.pt.aidl;

interface IMyAIDLTest{

int add(int num1,int num2);


}



2.创建一个Service,记得在AndroidManifest中声明且添加

            android:exported="true"

            android:process=":remote"

            android:name=".IRemoteService"


            android:label="@string/app_name"

属性。

public class IRemoteService extends Service {

/**

* 当客户端绑定到该服务会调用

*/

@Override

public IBinder onBind(Intent intent) {

return  iBinder;

}


private IBinder iBinder = new IMyAIDLTest.Stub() {


@Override

public int add(int num1, int num2) throws RemoteException {

Log.d("TAG","收到远程客户数据,参数是:num1 = " + num1 + ",num2 = " + num2);

return num1 + num2;

}

};

}



3.创建一个客户端程序

简单的加法:

复制服务端的.aidl文件

然后在客户端启动时绑定服务

private void bindService() {

//获取服务端

Intent intent = new Intent();

//新版本5.0 必须显示启动,绑定服务

intent.setComponent(new ComponentName("com.pt.aidltest",                            "com.pt.aidltest.IRemoteService"));           

//绑定了自动生成

bindService(intent, conn, Context.BIND_AUTO_CREATE);

}



4.conn作为成员变量

实现它的方法将service转为IMyAIDLTest接口

//拿到远程的服务iMyAIDLTest为成员变量,service为服务端返回的IBinder

iMyAIDLTest = IMyAIDLTest.Stub.asInterface(service);



5.调用iMyAIDLTest远程服务的方法,记得在OnDestroy()中释放资源unBindService(conn)



 除了short类型。

in List<String> aList;       //标记in,out,inout

List  是个接口,客户端接收转为实例ArrayList

 

自定义类型

1.Person implement Parcelable

 

//读入和写入的顺序相同

public Person(Parcel source){

 this.name = source.readString(),

this.age = source.readInt();

}

 2.创建一个Person.aidl文件,声明Person类

package com.pt.aidl;

parcelable Person;

3.在要应用的.aidl文件中

package com.pt.aidl;

import com.pt.aidl.Person;

 

interface IMyAIDL{
  List<Person> add(in Person person);

}

 

 

 

原理:



分享到:
评论

相关推荐

    安卓AIDL简单应用

    首先,让我们理解一下“安卓AIDL简单应用”的标题所包含的知识点。AIDL的基本作用是让服务(Service)和客户端(Client)能够共享数据或方法,即使它们在不同的进程空间中运行。这里的"简单应用"可能指的是一个基础...

    AIDL简单使用示例代码

    在本示例中,我们将探讨"AIDL简单使用"的代码实践。 首先,我们需要了解AIDL的基本结构。AIDL文件是`.aidl`格式,它定义了一个接口,该接口包含了服务和客户端之间可以调用的方法。下面是一个简单的AIDL接口示例: ...

    aidl简单案例

    综上所述,"aidl简单案例"主要展示了如何使用AIDL进行进程间通信,包括服务端的接口定义、实现和注册,以及客户端的连接、调用和服务解绑。这是一项重要的Android技能,有助于开发跨进程通信的应用场景,如后台服务...

    aidl简单实例

    在提供的"aidl简单实例"中,可能包含以下内容: - 一个简单的.aidl文件,定义了一个接口,比如`IMyService.aidl`,里面可能只有一个或多个方法。 - 服务端的实现,包括一个实现了`IMyService`接口的类,以及在服务...

    AIDL简单实例下载

    **Android AIDL(Android Interface Definition Language)简单实例详解** AIDL是Android系统提供的一...通过这个简单的实例,我们可以深入理解AIDL的工作原理和使用方法,为开发更复杂的Android应用打下坚实的基础。

    AIDL简单使用Demo

    在"AIDL简单使用Demo"中,我们通常会经历以下几个关键步骤: 1. **定义AIDL接口**:首先,我们需要创建一个.aidl文件,例如`IService.aidl`。在这个文件中,我们可以声明方法和参数类型。AIDL支持基本数据类型,...

    aidl简单示例

    本示例将通过"aidlclientdemo"和"aidlserverdemo"两个项目,详细介绍如何使用AIDL进行简单的IPC操作。 首先,我们来理解AIDL的基本概念。在AIDL文件中,我们可以定义服务端提供的接口以及接口中的方法,这些方法会...

    AIDL简单的示例代码

    本示例代码"AIDL简单的示例代码"旨在展示如何在Android项目中使用AIDL。首先,我们需要创建一个AIDL文件,它以`.aidl`为扩展名。例如,我们可能会创建一个名为`ICalculator.aidl`的文件,内容如下: ```aidl ...

    AIDL最简单的使用步骤

    AIDL:Android Interface Definition Language,即Android接口定义语言。 为了使其他的应用程序也可以访问本应用程序提供的服务,Android系统采用了远程过程调用(Remote Procedure Call,RPC)方式来实现。与很多其他...

    Aidl下的Binder简单例子

    本教程将通过一个简单的Binder服务器示例来解释AIDL和Binder机制的工作原理。 首先,我们来看"BinderServer"。在Android应用开发中,服务(Service)通常作为后台运行的任务,而当需要跨进程通信时,我们可以创建一...

    AndroidStudio使用AIDL简单完成IPC

    在Android系统中,进程间通信(IPC,Inter-Process Communication)是实现不同应用程序之间数据交换的关键技术。...在实际开发中,理解并熟练掌握AIDL对于提升Android应用的性能和稳定性至关重要。

    android aidl 简单例子

    总结来说,"android aidl简单例子"是一个基础的教程,演示了如何利用AIDL在Android应用中实现服务端和客户端的通信。通过学习这个例子,开发者可以理解AIDL的工作原理,并将其应用到实际项目的跨进程通信场景中。

    AIDL的简单例子

    AIDL(Android Interface Definition Language)是Android系统提供的一种接口定义语言,用于处理Android应用程序间的进程间通信(IPC, Inter-Process Communication)。通过AIDL,开发者可以定义服务(Service)与...

    AndroidAidlDemo(简单aidl的例子).rar

    这个"AndroidAidlDemo(简单aidl的例子)"压缩包提供了一个实例,帮助开发者理解并掌握如何在Android应用程序中使用AIDL。下面将详细介绍AIDL及其在实际开发中的应用。 **什么是AIDL?** AIDL是Android系统提供的一个...

    Android AIDL 简单case

    在"Android AIDL简单case"中,我们将深入探讨AIDL的基本概念、工作原理以及如何在实际项目中应用。 1. AIDL基础 AIDL类似于Java接口,它定义了一组方法,这些方法可以在服务端和客户端之间进行调用。AIDL文件的...

    AIDL实例应用程序

    本人亲手编写AIDL应用实例,简单易学,易上手

    android aidl简单实例

    这个“android aidl简单实例”提供了在Android 3.0 SDK平台上使用AIDL的基本步骤和示例代码。 首先,我们了解AIDL的基本概念。AIDL定义了一种服务端接口,客户端可以通过这个接口调用服务端的方法。它的工作原理是...

    android aidl 不同进程间通信

    例如,一个简单的Aidl接口定义如下: ```aidl package com.example.myapp; interface IMyService { void sendMessage(int code, string message); } ``` 这里定义了一个名为IMyService的接口,包含一个sendMessage...

    Android应用源码之AidlDemo(简单aidl的例子).zip

    **Android应用源码之AidlDemo(简单aidl的例子)** 在Android开发中,AIDL(Android Interface Definition Language)是一种非常重要的工具,用于处理进程间通信(IPC, Inter-Process Communication)。AidlDemo是一...

Global site tag (gtag.js) - Google Analytics