Android 进程间通讯之 AIDL基本用法(一)

本文介绍了AIDL在Android进程间通讯中的基本用法,包括AIDL中in、out、inout的概念,创建时的注意事项,如数据类型限制,以及AIDL接口定义、服务端接口实现和Bean实现Parcelable的步骤。通过学习,读者将能够掌握AIDL的基础操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

AIDL

     AIDL(Android 接口定义语言)与您可能使用过的其他 IDL 类似。 您可以利用它定义客户端与服务使用进程间通信 (IPC) 进行相互通信时都认可的编程接口。 在 Android 上,一个进程通常无法访问另一个进程的内存。 尽管如此,进程需要将其对象分解成操作系统能够识别的原语,并将对象编组成跨越边界的对象。 编写执行这一编组操作的代码是一项繁琐的工作,因此 Android 会使用 AIDL 来处理。AIDL 官方文档

1. AIDL 中需要了解的基本知识点;

    一. 你真的了解 AIDL 中的 in out inout 吗?

    二. 创建时的注意事项
    三. aidl 中支持的数据类型

        1).基本数据类型(int,long,char,boolean)。

        2). String。

        3). CharSequence

        4). List 

            List 中的所有元素都必须是以上列表中支持的数据类型、其他 AIDL 生成的接口或您声明的可打包类型。 可选择将 List 用作“通用”类    (例如,List<String>)。另一端实际接收的具体类始终是 ArrayList,但生成的方法使用的是 List 接口。

        5). Map

       Map 中的所有元素都必须是以上列表中支持的数据类型、其他 AIDL 生成的接口或您声明的可打包类型。 不支持通用 Map(如 Map<String,Integer>形式的 Map)。 另一端实际接收的具体类始终是 HashMap,但生成的方法使用的是 Map 接口。

2. AIDL 创建的基本步骤;

    一.  定义 AIDL 接口 

        1). 编写 AIDL 文件。

                在 Server 端 src/main 与 java 同级目录下创建 一个包并创建 aidl 文件,如下图。

                 

                注意: 传递的数据 Bean 必须实现 Parcelable 并在 java 目录下创建与 aidl 文件的包名一样的目录。

        2 ).  服务端实现该接口并返回 IBinder 对象。

                

               

        3).  Copy Server 端 aidl 文件和数据 bean 。

                客服端的包结构

                

                服务端的包结构

                

3. 结果

            


4. 结束语:

    现在到这里相信小伙伴们已经能够使用 aidl 进行进程间通信了,下一篇将未大家带来 aidl 中的高级使用。

    点击查看 Demo

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值