android Service使用AIDL来操作服务

  上一篇博客,简单介绍了Service的使用和生命周期 点击此处前往 此篇简单介绍AIDL操作Service,比如想在Activity中操作Service的start和stop方法

1.在此,我不在重复上一篇所讲的Service的使用,在main上右键,选择New/AIDL/AIDL File

这里写图片描述

  点击AIDL File出现一下界面

这里写图片描述

  在interface Name 可以随便命名,点击完成,会看到在main,多出了一个目录和文件,如下图,当然此文件也可以手动创建,这里不在讲述

这里写图片描述

  点击IMyAidlInterface.aidl文件,可以看到实际上里面就定义了一个接口,有一个方法,直接删除里面的方法,写入自己想实现的方法,比如也创建跟Service同名void start(), void stop()等

这里写图片描述

  先build一下功能,生成对应的文件,内部类,可以调用外部类的所有方法和属性,在Service类中创建一个IMyAidlInterface的内部实现类,并实现该接口的所有的方法,在内部类中,获取外部类的实例,可以调用Service类所有的方法和属性了

这里写图片描述

  在Service中的onBind方法,返回当前的IMyAidlInterface的实例

这里写图片描述

  在启动者的ServiceConnection的实现类的onServiceConnected回调方法中获取IMyAidlInterface的实例

这里写图片描述

  在此就可以操作Service了

这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android 12 中,C++ ServiceAIDL 和 HAL 仍然是 Android 系统中重要的组成部分。 1. C++ Service C++ ServiceAndroid 系统中的一种基于 Binder 机制实现的服务。它可以在 Android 系统启动时启动,并提供某些系统级别的服务,例如音频服务、电源管理服务等等。 C++ Service 主要的实现语言是 C++,开发者可以使用 C++ 语言来编写自己的 C++ Service。要编写一个 C++ Service,开发者需要实现一个继承自 IInterface 的接口类,并在其中实现自己的服务逻辑。然后,开发者需要通过 ServiceManager 将自己的服务注册到系统中。 2. AIDL AIDLAndroid Interface Definition Language)是 Android 系统中的一种 RPC(Remote Procedure Call)框架,它可以用于在不同的进程之间进行通信。开发者可以使用 AIDL 来定义自己的接口,并通过 Binder 机制将接口暴露给客户端。 AIDL 语言是一种类似于 Java 的语言,开发者可以使用 AIDL 来定义自己的接口、数据类型和异常。在使用 AIDL 时,开发者需要编写一个 AIDL 文件,然后通过 AIDL 工具来生成对应的 Java 接口文件和 C++ 接口文件。在编写服务端和客户端时,开发者需要分别实现 Java 接口和 C++ 接口。 3. HAL HAL(Hardware Abstraction Layer)是 Android 系统中的一种硬件抽象层。它可以将硬件接口和实现分离,使得不同厂商可以实现自己的硬件适配层。开发者可以使用 HAL 来访问硬件设备,例如摄像头、传感器等等。 HAL 主要的实现语言是 C++,开发者可以使用 C++ 语言来编写自己的 HAL。要编写一个 HAL,开发者需要实现自己的 HAL 接口,并在其中实现自己的硬件逻辑。然后,开发者需要将自己的 HAL 注册到系统中,使得其他应用程序可以使用它。 以上就是 Android 12 中 C++ ServiceAIDL 和 HAL 的一些基本介绍。这些技术都是 Android 系统中非常重要的组成部分,开发者需要深入了解它们的使用方法和原理。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值