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文件

這裏寫圖片描述
這裏寫圖片描述

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