Android高階AIDL使用自定義型別

2021-09-13 12:51:44 字數 1235 閱讀 5651

建立自定義型別

宣告自定義型別

定義與自定義型別相關的業務

重寫業務實體類

遠端呼叫

驗證 aidl

1. 建立自定義型別

自定義型別傳輸的就是乙個實體物件,這個實體類必須實現 parcelable 介面,具體如下:

// 自定義型別

public class work implements parcelable

2. 宣告自定義型別

建立乙個 .aidl 檔案宣告剛才定義的型別,注意與具體業務 .aidl 檔案的不同,宣告具體如下:

// 在.aidl檔案中宣告自定義型別

package com.manu.aidldemo;

parcelable work;

3. 定義與自定義型別相關的業務
// declare any non-default types here with import statements

import com.manu.aidldemo.work; //注意

inte***ce ipersonaidlinte***ce

注意:匯入自定義型別,否則不識別。

4. 重寫業務實體類

由於新增了具體業務,也就是 getworkinfo() ,需要具體業務類裡面實現具體的業務,具體如下:

//新增自定義型別相關的業務

@override

public work getworkinfo() throws remoteexception

5. 遠端呼叫

繫結 service 成功之後會得到 ibinder 物件,然後通過 asinte***ce() 獲取到 ipersonaidlinte***ce 物件就可以呼叫了,具體如下:

public void callremoteclick(view view)  catch (remoteexception e) 

}

6. 驗證 aidl

日誌執行截圖如下:

使用流程實際上在上篇文章中已經闡述清楚了,這篇貌似有點多餘,不過算是對過去知識的總結吧!

Android 程序間通訊AIDL學習

aidl android inte cedefinition language,即安卓介面定義語言,它是一種android內部程序通訊介面的描述語言,通過它我們可以定義程序間的通訊介面 ipc inter processcommunication 內部程序通訊 首先實現aidl遠端服務 1,新建as...

Android 中的AIDL 和 binder機制

2.1 初識bindler android程序間的通訊基於binder機制,binder並非linux系統標準的通訊機制,android系統選定binder這種機制實現程序間通訊基於以下幾個考慮 1,效率高。相對於低效的socket,兩次複製的管道,使用了記憶體對映的binder效率高,只需一次複製...

aidl的使用簡介

客戶端 private isizeaidlinte ce sizeinte ce private serviceconnection connection new serviceconnection override public void onservicedisconnected compone...