建立自定義型別
宣告自定義型別
定義與自定義型別相關的業務
重寫業務實體類
遠端呼叫
驗證 aidl
1. 建立自定義型別
自定義型別傳輸的就是乙個實體物件,這個實體類必須實現 parcelable 介面,具體如下:
2. 宣告自定義型別// 自定義型別
public class work implements parcelable
建立乙個 .aidl 檔案宣告剛才定義的型別,注意與具體業務 .aidl 檔案的不同,宣告具體如下:
3. 定義與自定義型別相關的業務// 在.aidl檔案中宣告自定義型別
package com.manu.aidldemo;
parcelable work;
注意:匯入自定義型別,否則不識別。// declare any non-default types here with import statements
import com.manu.aidldemo.work; //注意
inte***ce ipersonaidlinte***ce
4. 重寫業務實體類
由於新增了具體業務,也就是 getworkinfo() ,需要具體業務類裡面實現具體的業務,具體如下:
5. 遠端呼叫//新增自定義型別相關的業務
@override
public work getworkinfo() throws remoteexception
繫結 service 成功之後會得到 ibinder 物件,然後通過 asinte***ce() 獲取到 ipersonaidlinte***ce 物件就可以呼叫了,具體如下:
6. 驗證 aidlpublic void callremoteclick(view view) catch (remoteexception e)
}
日誌執行截圖如下:
使用流程實際上在上篇文章中已經闡述清楚了,這篇貌似有點多餘,不過算是對過去知識的總結吧!
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...