android aidl进程间通信封装通用实现-用法说明

这篇具有很好参考价值的文章主要介绍了android aidl进程间通信封装通用实现-用法说明。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

接上一篇:android aidl进程间通信封装通用实现-CSDN博客

该aar包的使用还是比较方便的

一先看客户端

1 初始化

JsonProtocolManager.getInstance().init(mContext, "com.autoaidl.jsonprotocol");
//客户端监听事件实现
JsonProtocolManager.getInstance().setJsonProtocolReceive(new IJsonReceive() {
    @Override
    public String received(String jsonParams, Bundle bundle) {
        LogUtils.d(TAG, "OnReceive --> jsonParams:" + jsonParams);
        return JsonSdkController.getInstance().onReceive(jsonParams);
    }
});

2 发送事件:

 就是通过json的形式将参数包裹进来,另一端统一解析

 唯一标志位:KEY_CLIENT_REQUEST_AUTHOR 是必须要加的,不然区分不出来是那个客户端

JSONObject jsonObject = new JSONObject();
jsonObject.put("protocolId", ProtocolID.PROTOCOL_SEARCH);
jsonObject.put("versionName", "v0.0.1");
JSONObject jsonData = new JSONObject();
jsonData.put("say","hello- which pid are you ?");
jsonObject.put("data", jsonData);
jsonObject.put(SDKConstants.KEY_CLIENT_REQUEST_AUTHOR, "yangtestt");
JsonProtocolManager.getInstance().request(jsonObject.toString(),null);

二再看服务端

1 初始化

JsonProtocolManager.getInstance().init(mContext, "com.autoaidl.jsonprotocol");

2 发送事件

JSONObject jsonObject = new JSONObject(); jsonObject.put("protocolId", ProtocolID.PROTOCOL_SEARCH); jsonObject.put("versionName", "v0.0.1"); JSONObject jsonData = new JSONObject(); jsonData.put("say","hello- which pid are you ?"); jsonObject.put("data", jsonData); //jsonObject.put(SDKConstants.KEY_CLIENT_REQUEST_AUTHOR, "yangtestt"); JsonProtocolManager.getInstance().request(jsonObject.toString(),null);

服务端和客户端相互发送比较类似,只是服务端不需要传唯一id值

也不需要监听回调

我项目里的demo更简单,直接将客户端和服务端的代码 放到一起公用了(代码虽然冗余,但能用),demo中的服务端和客户端唯一的区别就是gradle里面动态改了包名。

实际项目中可以直接将lib库编译成aar包集成进去,然后客户但android 11的版本需要

增加两部

1 增加权限

<queries>
    <package android:name="com.autoaidl.jsonprotocol" />
    <intent>
        <action android:name="com.auto.aidl.AidlService" />
    </intent>
</queries>

2 init的时候要传入服务端的包名

服务器端只需引入aar包就行了,init的时候包名也可以传空。文章来源地址https://www.toymoban.com/news/detail-829209.html

到了这里,关于android aidl进程间通信封装通用实现-用法说明的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android Binder——APP中AIDL实现(十九)

            AIDL(Android Interface Definition Language)其实就是对 Binder 通信的一个封装,方便在开发中对 Binder 通信的使用,这里我们就从头开始来看一下 AIDL 通信的创建过程。         通过 Android Studio 的 File -New - AIDL 的方式就会生成对应包名的 aidl 文件。即 aidl 文件要与应用

    2024年04月28日
    浏览(20)
  • Android进程间通信

            在操作系统中,每个进程都有一块独立的内存空间。为了保证程序的的安全性,操作系统都会有一套严格的安全机制来禁止进程间的非法访问,但是,很多情况下进程间也是需要相互通信的 进程间通信(Inter-process communication,简称IPC):是指运行在不同进程中的若

    2023年04月21日
    浏览(21)
  • 带你深入了解Android进程间通信

    Android进程通信是指多个进程之间共享信息和完成任务的过程。由于Android系统是基于Linux内核的操作系统,采用了一种面向进程的架构模式,进程间通信是其应用开发中重要的一环,也是保证多进程之间信息交流与任务协作的基石。 Android进程通信主要由两种方式,即:基于

    2024年02月06日
    浏览(32)
  • [Android AIDL] --- AIDL原理简析

    上一篇文章已经讲述了如何在Android studio中搭建基于aidl的cs模型框架,只是用起来了,这次对aidl及cs端如何调用的原理进行简单分析 AIDL 文件可以分为两类。 一类是用来定义接口方法,声明要暴露哪些接口给客户端调用; 一类用来声明实现了 Parcelable 接口的数据类型,以供其

    2024年02月10日
    浏览(30)
  • [Android AIDL] --- AIDL工程搭建

    AIDL(Android Interface Definition Language)是一种 IDL 语言,用于生成可以在 Android 设备上两个进程之间进行进程间通信(IPC)的代码。 通过 AIDL,可以在一个进程中获取另一个进程的数据和调用其暴露出来的方法,从而满足进程间通信的需求。通常,暴露方法给其他应用进行调用的

    2024年02月10日
    浏览(40)
  • Android进程间大数据通信:LocalSocket

    作者:BennuCTech 说起Android进行间通信,大家第一时间会想到AIDL,但是由于Binder机制的限制,AIDL无法传输超大数据。 那么我们如何在进程间传输大数据呢? Android中给我们提供了另外一个机制:LocalSocket 它会在本地创建一个socket通道来进行数据传输。 那么它怎么使用? 首先我

    2023年04月11日
    浏览(23)
  • 详谈Android进程间的大数据通信机制:LocalSocket

    说起Android进行间通信,大家第一时间会想到AIDL,但是由于Binder机制的限制,AIDL无法传输超大数据。 比如我们在之前文章《WebRtc中是如何处理视频数据的?》提到的我们可以得到WebRtc的视频数据,这时候我们如果有一个需求,希望将这些视频数据传送给另外一个APP呢?这个数

    2024年02月01日
    浏览(59)
  • 【unity之IMGUI实践】通用API实现抽象行为封装【五】

    👨‍💻个人主页 :@元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏 : unityUI专题篇 🅰️ 😶‍🌫️:步骤 1.添加道具预制体(随机生成武器) 2.封装道具基类 3.封装武器道具逻辑 1.封装道具基类 封装武器道具

    2024年02月15日
    浏览(30)
  • 基于VUE3+Layui从头搭建通用后台管理系统(前端篇)十一:通用表单组件封装实现

      本章实现通用表单组件,根据实体配置识别实体属性,并自动生成编辑组件,实现对应数据填充、校验及保存等逻辑。 1. 详细课程地址: https://edu.csdn.net/course/detail/38183 2. 源码下载地址: 点击下载

    2024年02月10日
    浏览(38)
  • Android组件间的交互和进程间IPC通信(1),【吐血整理】

    openSomeDiagIntent.setAction(“edwin.demo.fooActivity”); this.startActivity(openSomeDiagIntent); 上面的隐式消息不包含具体的目的地,而是仅包含一个名位“Action”的特征字符串,Action就是上文所说的Intent特征的一种。从字面上来理解,可以理解为这个消息所代表的是完成某一个动作的含义,由

    2024年04月26日
    浏览(26)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包