AIDL:Android Interface Definition Language,即Android接口定義語言。
1. AIDL寫法
❤ 寫法跟Java代碼類似,但是這裏有一點值得注意的就是它可以引用其它aidl文件中定義的接口,但是不能夠引用你的java類文件中定義的接口。
❤ 編譯aidl文件,會生成java文件,即AIDLService.java,文件內容如下:
❤ 編譯生成的.java文件、Stub、Proxy之間的結構關係圖
2. 實現AIDL接口方法
❤ Stub是Binder類型,並且實現了IMyAidlInterface AIDL中聲明的basicTypes()方法
3. 綁定服務
❤ 在客戶端通過mIMyService = IMyAidlInterface.Stub.asInterface(service)得到的就是Proxy對象,可以通過這個對象間接的調用服務端的各個方法,而具體調用過程就是經過mRemote.transact傳輸給真正的Service。