Android之AIDL跨进程通信

AIDL:实现进程之间的通信

https://blog.csdn.net/iispring/article/details/51815475

AIDL中定义的方法可以接受如下的参数类型作为形参:

所有的基本类型,例如int, long, char, boolean等等

String、CharSequence、List、Map

接口:是一个抽象的方法,里面定义了一些方法,但是具体的方法实现在其他的类中,但是实现了接口的类必须实现接口中的所有方法

如果要使用自定义类,需要对参数进行序列化

如果参数为Android标准的类怎么处理,直接import,但是Android的标准类必须是实现了序列化(Parcelable)如下:

	import android.net.wifi.WifiConfiguration;
	int addNetWork(in WifiConfiguration cfg);

AIDL文件通过编译器打包成进程间可以通信的代码(对应的java文件)

具体流程:
app应用中需要调用service应用中的方法

1.service应用新建AIDL文件,其实就是定义接口,并定义接口中的一些方法,这些方法就是允许客户端跨进程调用的方法

扫描二维码关注公众号,回复: 9405928 查看本文章
	// IMyAidlInterface.aidl
	package com.example.service;
	
	interface IMyAidlInterface {
	    String getString();
	}

2.编译步骤1定义的AIDL,Android Studio会自动编译成一个JAVA文件

在这里插入图片描述

3.定义一个Service类,实现一些具体接口,并需要在AndroidMainfest中进行声明

4.将步骤1中AIDL文件复制到app应用中,并注意文件名必须一致

5.最后在app应用中bindService绑定步骤3中的Service

发布了100 篇原创文章 · 获赞 42 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/Hh20161314/article/details/104269938