什么是AIDL
AIDL (Android Interface Definition Language, Android接口定義語言)
在不同的進程(應用)之間進行數(shù)據(jù)交換,就要約定 之間的通信接口。
從面向對象的角度來看,接口設計要考慮狀態(tài)和行為。一般來說,接口定義的內容分為:
1.方法操作(描述行為)
2.參數(shù)(描述狀態(tài),數(shù)據(jù)的類型,數(shù)據(jù)的載體/實體)
AIDL是一種IDL,它有特有的語法描述。我們需要編寫一個AIDL文件作為約定。它的語法非常類似java語法。
它支持基礎數(shù)據(jù)類型,比如 int,String,float等。
它支持實體類,必須是實現(xiàn)了Parcelable接口,支持序列化。
AIDL通過服務綁定的方式來使用。你需要定義一個service,傳遞一個 IBinder對象。這個 IBinder對象具有我們需要的方法。
拿到這個對象后執(zhí)行具體方法。
AIDL分為 服務端和客戶端
服務端即服務提供著,提供可操作的方法和數(shù)據(jù)。
客戶端即調用者,使用方法和數(shù)據(jù)。
什么時候適合使用AIDL:
官方文檔建議只有你允許客戶端從不同的應用程序為了進程間的通信而去訪問你的service,以及想在你的service處理多線程。