返回顶部
首页 > 资讯 > 操作系统 >[Android AIDL] --- AIDL工程搭建
  • 275
分享到

[Android AIDL] --- AIDL工程搭建

android 2023-08-30 15:08:24 275人浏览 安东尼
摘要

0 aiDL概念 AIDL(Android Interface Definition Language)是一种 IDL 语言,用于生成可以在 Android 设备上两个进程之间进行进程间通信(IPC)的代码。 通过 AIDL,可以在一个进程

0 aiDL概念

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

官方文档中对 AIDL 有这样一段介绍:

Using AIDL is necessary only if you allow clients from differentapplications to access your service for IPC and want to handlemultithreading in your service. If you do not need to perfORMconcurrent IPC across different applications, you should create yourinterface by implementing a Binder or, if you want to perform IPC, butdo not need to handle multithreading, implement your interface using aMessenger. Regardless, be sure that you understand Bound Servicesbefore implementing an AIDL.

第一句很重要,“只有当你允许来自不同的客户端访问你的服务并且需要处理多线程问题时你才必须使用AIDL”,其他情况下你都可以选择其他方法,如使用 Messenger,也能跨进程通信。可见 AIDL 是处理多线程、多客户端并发访问的,而 Messenger 是单线程处理。

上面的概念摘抄自https://juejin.cn/post/7125316537749241864#heading-0

1 如何在android studio中搭建使用aidi的cs框架

1> 新建工程
在这里插入图片描述

新建完成之后是这样的
在这里插入图片描述

2> 修改moudle name,将默认的app修改为aidl_client
在这里插入图片描述

改完之后是这样的
在这里插入图片描述

3> 新建aidl_server module, File->New->Phone & Table Module-> next
在这里插入图片描述

建立好之后整个工程是这样的
在这里插入图片描述

4> 修改编译的app name
默认是这样的
在这里插入图片描述

将app修改为aidl_client
在这里插入图片描述

5> 在server端新建aidl文件
在这里插入图片描述

建好之后如下
在这里插入图片描述

我们要实现的接口方法都在aidl文件中实现即可,写好aidl文件之后,我们直接编译,切换到project视图,可以看到build目录生成与aidl文件对应的java文件。
在这里插入图片描述

6> 有了aidl接口之后,需要在server端新建service
在这里插入图片描述

在service类中实现刚才aidl的接口

7> 直接在文件中找到aidl文件目录,从aidl_server端,将aidl文件拷贝到aidl_client 端
在这里插入图片描述

拷贝到这里
在这里插入图片描述

8> 在client端调用server端实现的aidl方法时候,需要主要两个参数
在client端的这2个设置

                    intent.setAction("com.example.aidl_server");                    intent.setPackage("com.example.aidl_server");

action和package的参数需要与server端的AndroidManifest.xml中的参数对应
在这里插入图片描述

9> client端的AndroidManifest.xml修改,主要是要添加

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="Http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    package="com.example.aidl_client">    <uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"        tools:ignore="QueryAllPackagesPermission" />    <queries>        <package android:name="com.example.aidl_service"/>    </queries>    <application        android:allowBackup="true"        android:icon="@mipmap/ic_launcher"        android:label="@string/app_name"        android:roundIcon="@mipmap/ic_launcher_round"        android:supportsRtl="true"        android:theme="@style/Theme.Aidl">        <activity android:name=".MainActivity">            <intent-filter>                <action android:name="android.intent.action.MAIN" />                <cateGory android:name="android.intent.category.LAUNCHER" />            </intent-filter>        </activity>    </application></manifest>

来源地址:https://blog.csdn.net/weixin_42445727/article/details/132422269

--结束END--

本文标题: [Android AIDL] --- AIDL工程搭建

本文链接: https://lsjlt.com/news/383100.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • [Android AIDL] --- AIDL工程搭建
    0 AIDL概念 AIDL(Android Interface Definition Language)是一种 IDL 语言,用于生成可以在 Android 设备上两个进程之间进行进程间通信(IPC)的代码。 通过 AIDL,可以在一个进程...
    99+
    2023-08-30
    android
  • Android 创建AIDL文件使用教程
    目录前言1 创建 AIDL 文件2 实现接口3 服务端公开接口4 客户端调用 IPC 方法5 通过 IPC 传递对象前言 AIDL(Android Interface Definit...
    99+
    2024-04-02
  • Android AIDL使用介绍(3) 浅说AIDL背后的Binder
    1.背景 在前面的博客中,我们已经学会了使用AIDL进行跨进程通信,AIDL的使用比较简单,可实际上跨进程通信是一个相当复杂的过程,例如进程A是...
    99+
    2022-06-06
    aidl binder Android
  • Android中AIDL怎么用
    这篇文章主要介绍Android中AIDL怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!AIDL,即Android Interface Definition Language,Android接口定义语言。这门语言...
    99+
    2023-06-20
  • Android AIDL 使用详解
    目录 一、概述 二、语法 一、概述 AIDL 意思即 Android Interface Definition Language,翻译过来就是Android接口定义语言,是用于定义服务器和客户端通信接口的一种描述语言,可以拿来生成用于I...
    99+
    2023-10-03
    android java android studio
  • Android AIDL基本使用
    AIDL是Android多进程通讯方式一种。 如要使用 AIDL 创建绑定服务,请执行以下步骤: 创建 .aidl 文件 此文件定义带有方法签名的编程接口。 实现接口 Android SDK 工具会基于您的 .aidl 文件,使用 Java...
    99+
    2023-09-04
    android
  • Android AIDL——进程通信机制详解
    Android  AIDL, Android进程机制通信机制,这里就整理下AIDL 的知识,帮助大家学习理解此部分知识! 什么是 AIDL AIDL 全称 Andr...
    99+
    2022-06-06
    进程 aidl 通信 Android
  • 详解Android跨进程通信之AIDL
    需求描述 进程A调起第三方进程B进行第三方登录 – 实现双向通信 代码(进程A) 1.目录结构 2.LoginActivity.java public class LoginA...
    99+
    2024-04-02
  • 浅谈Android Aidl 通讯机制
    服务端: 首先是编写一个aidl文件,注意AIDL只支持方法,不能定义静态成员,并且方法也不能有类似public等的修饰符;AIDL运行方法有任何类型的参数和返回值,在jav...
    99+
    2022-06-06
    aidl Android
  • 详解Android中AIDL的使用
    AIDL,即Android Interface Definition Language,Android接口定义语言。这门语言是为了实现进程间通信。每一个进程都有自己的一块独立的内存,...
    99+
    2024-04-02
  • Android AIDL实现进程间通信探索
    前言:       前面总结了程序间共享数据,可以使用ContentProvider也可以使用SharedPreferenc...
    99+
    2022-06-06
    进程 aidl 进程间通信 通信 Android
  • android中的AIDL进程间通信示例
    关于IPC应该不用多介绍了,Android系统中的进程之间不能共享内存,那么如果两个不同的应用程序之间需要通讯怎么办呢?比如公司的一个项目要更新,产品的需求是依附于当前项目开发...
    99+
    2022-06-06
    示例 aidl 通信 Android
  • Android程序设计之AIDL实例详解
    通常来说,AIDL这项技术在我们的应用开发过程中并不是很常用,虽然新浪微博提供了SSO登录,但是其原理就是使用AIDL。本文就以完整的实例形式讲述了AIDL的原理及实现方法。 ...
    99+
    2022-06-06
    aidl Android
  • AIDL文件怎么在Android Studio项目中创建
    AIDL文件怎么在Android Studio项目中创建?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。在Android系统中,跨进程通信是非常普遍的事情,它用到了Binde...
    99+
    2023-05-31
    android studio aidl
  • [Android AIDL系列 1] 手动编译aidl文件,生成Java、C++[android]、C++[ndk]、Rust接口
    AIDL文件在Android系统上应用广泛,和底层的Binder机制紧密关联。 在Android源码或者Android Studio中通常是自动编译aidl文件,生成对应语言的接口文件。 做应用层Java开发,aidl和binder封装的比...
    99+
    2023-08-22
    android java c++
  • 详解Android中Service AIDL的使用
    目录前言Service基本用法——本地服务远程服务 —— AIDL服务端客户端前言 有些朋友可能是从事开发工作的时间不是特别的长,所以觉得Service相对与另外两个组件activi...
    99+
    2024-04-02
  • Android AIDL和远程Service调用示例代码
    Android:AIDL和远程Service调用 本讲的内容,理解起来很难,也许你看了很多资料也看不明白,但是用起来缺简单的要命。所以我们干脆拿一个音乐播放器中进度条的实例来...
    99+
    2022-06-06
    service 示例 aidl Android
  • Android Studio创建AIDL文件并实现进程间通讯实例
    在Android系统中,跨进程通信是非常普遍的事情,它用到了Binder机制处理进程之间的交互。Binder机制会开放一些接口给Java层,供android开发工程师调用进程之...
    99+
    2022-06-06
    Android Studio studio 进程 aidl Android
  • Android使用AIDL共享Room数据库
    什么是AIDL: AIDL(Android Interface Definition Language),翻译成中文就是安卓接口定义语言的意思,...
    99+
    2022-06-06
    aidl Android
  • 解析Android AIDL的实例与原理
    目录一、概述二、创建 .aidl 文件三、生成 .java 文件四、传输复杂数据五、建立 service六、获取服务七、分析调用过程一、概述 简单来说,AIDL 就是定义一个接口,客...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作