android进程间通信:aidl使用及原理

android中,应用与应用、应用内不同进程之间需要做数据传递时,就需要用到进程间通信,常用的进程间通信有7种,而使用最多的便是aidl,aidl是基于binder来实现的。

传统IPC对比

名称 性能 特点 安全性
Binder 需要拷贝一次 基于C/S架构,易用性高 为每个App分配UID,同时支持实名和匿名
共享内存 无需拷贝 控制复杂,易用性差 依赖上层协议,访问接入点是开放的不安全的
Socket 需要拷贝两次 基于C/S架构,作为一款通用接口,其传输效率低开销大 依赖上层协议,访问接入点是开放的不安全的

aidl使用

1. 定义一个AIDL文件

类似于定义接口类型,这个AIDL文件将在本地和远端都要使用到

interface IMyAidlInterface {
   
    void basicTypes(int anInt, long aLong, boolean aBoolean, float aFloat,
            double aDouble, String aString);
    int sendData(String data);
    String getData();
}

2. 定义远程服务

在远程服务中的onBind方法,实现AIDL接口的具体方法,并且返回Binder对象

public class 
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值