別人問你AIDL,我來給你回答

什麼是AIDL以及如何使用?

aidl是Android interface definition Language 的英文縮寫,意思Android 接口定義語言

作用
使用aidl可以幫助我們發佈以及調用遠程服務,實現跨進程通信。
使用
將服務的aidl放到對應的src目錄,工程的gen目錄會生成相應的接口類

我們通過 bindService(Intent,ServiceConnect,int)方法綁定遠程服務,在 bindService 中有一個ServiceConnec 接口,我們需要覆寫類的onServiceConnected(ComponentName,IBinder)方法,這個方法的第二個參數*IBinde**r對象其實就是已經在aidl中定義的接口,因此我們可以將Binder對象強制轉換爲aidl中的接口類
我們通過IBinder獲取到的對象(也就是aidl文件生成的接口)其實是系統產生的代理對象,該代理對象既可以跟我們的進程通信,又可以跟遠程進程通信,作爲一箇中間的角色實現了進程間通信。

這個就是我的理解是不是比較清晰呢?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章