AIDL的demo

这篇博客介绍了如何使用AIDL在Android中实现跨进程通信。作者创建了一个名为aidlserver的服务端项目和一个aidlclient的客户端项目。在服务端,作者实现了AIDL接口并用单例模式存储客户端发送的消息。客户端通过发送消息到服务端,并接收返回的反馈。运行结果显示通信成功,验证了AIDL的跨进程通信功能。
摘要由CSDN通过智能技术生成

最近开始学安卓,接触到了跨进程通信,这里用AIDL来实现。我的demo很简单,client发送消息给server接受,server显示收到的消息,client的消息被接受以后也得到反馈。

准备工作

首先在AS创建一个project,我起名为aidlserver,显然这是个服务端,个人习惯将默认的模块名也改成aidlserver,然后创建一个新的模块aidlclient,aidlserver和aidlclient创建都选择Empty Activity。
在服务端创建AIDL文件SendInterface,然后实现这个接口,代码如下

// SendInterface.aidl
package com.example.aidlserver;

interface SendInterface {
   
    String messageTrans(String string);
}

显然这是com.example.aidlserver包下的一个接口,然后将其“整个”复制到客户端(注:包名也要一样),此时客户端的代码结构如下
特别注意aidl下的文件目录
如此两边的AIDL文件就准备完成了,点击Build->Rebuild Project对代码进行构建,会自动生成对应文件。

服务端

首先实现一个单例模式,后面用来存储客户端发来的字符串。

public class Singleton {
   

    String message;

    public String getMessage() {
   
        return message;
    }

    public void setMessage(String message) {
   
        this.message = message;
    }

    private static Singleton instance = new Singleton();

    private Singleton(){
   }

    public static Singleton getInstance(){
   
        return instance;
    }
}

服务端通过service来实现aidl的功能,在java文件中新建一个服务MessageService,代码如下

public class MessageService extends Service {
   
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值