目錄
- 1. 本地進程調用(同一進程內)
- 2. 遠程進程調用(跨進程)
- 3 `oneway` 關鍵字用于修改遠程調用的行為
Android 接口定義語言 (AIDL) 與其他 IDL 類似:
你可以利用它定義客戶端與服務均認可的編程接口,以便二者使用進程間通信 (IPC) 進行相互通信。
在 Android 上,一個進程通常無法訪問另一個進程的內存。
為了進行通信,它們需要將其對象分解為基元,操作系統可以為您理解并編組這些對象跨越該邊界。
編寫執行該編組操作的代碼較為繁瑣,因此 Android 會使用 AIDL 為您處理此問題。
注意:只有在需要不同應用的客戶端通過 IPC 方式訪問服務,并且希望在服務中進行多線程處理時,您才有必要使用 AIDL。
如果您無需跨不同應用執行并發 IPC,請通過實現 Binder 來創建接口。
如果您想執行 IPC,但不需要處理多線程處理,請使用 Messenger 實現接口。
無論如何,請務必先了解綁定服務,然后再實現 AIDL。
在開始設計 AIDL 接口之前,請注意,AIDL 接口的調用本質就是 直接函數調用。</