AIDL通信初步使用

1.因为是多进程通信,所以需要在AS中建立两个Module,一个服务端,一个客户端,项目结构如下
这里写图片描述

1.服务端module,其中主要包含了AIDL文件和Service文件,MainActivity文件默认不需要任何代码

2.服务端的AIDL文件,当用户床架项目完成后在app出右键新建AIDL文件,会自动生成(2)的目录结构,在IMyAidlInterface.aidl中,编写客户端需要调用服务端的方法(这里只演示向List中添加字符串,所以没有用到bean类,如果是对象数据的话需要实现Parcelable,序列化操作可自行百度),该步骤完成后需要执行Build-Make Project,用于在\app\build\generated\source\aidl\debug\com\example\ysg\aidldemo文件夹下生成服务端IMyAidlInterface.java文件,该文件是用来保证客户端与服务端进行通信的

3.新建MyService继承Service,新建IMyAidlInterface.Stub对象,重写IMyAidlInterface.aidl中的方法,并进行相应的操作,然后在onBind方法中返回IMyAidlInterface.Stub对象即可
4.在服务端的AndroidManifest.xml文件中注册服务
<service android:name=".MyService">
<intent-filter>
<action android:name="com.example.myservice"></action>
<category android:name="android.intent.category.DEFAULT"></category>
</intent-filter>
</service>

服务端到此完成了,已经可以点击运行了,不过因为MainActivity中什么都没有,所以页面空白,不过服务端已经启动了,接下来进行客户端的编写

5.在项目上新建module,生成appclient客户端

6.将服务端的(2)步骤的整个aidl文件复制到application对应的main文件夹下,然后再次执行Build-Make Project生成客户端IMyAidlInterface.java文件

7.在客户端的Activity中编写与服务器通信的代码

此时可以运行客户端,连接服务端,然后执行添加字符串和显示的操作了

以上步骤中各个文件代码如下

一、服务端步骤2用到的aidl文件

这里写图片描述

二、服务端步骤3用到的Service文件

这里写图片描述

三、客户端步骤7用到的MainActivity文件

这里写图片描述
这里写图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章