stub是為了方便client,service交互而生成出來的代碼。
交互過程client<-->proxy<-->stub<-->service
stub和proxy是為了方便client/service交互而生成出來的代碼,這樣client/service的代碼就會比較干凈,不會嵌入很多很難懂的與業務無關的代碼?
AIDL(android 接口描述語言)是一個IDL語言,它可以生成一段代碼,可以使在一個android設備上運行的兩個進程使用內部通信進程進行交互。如果你需要在一個進程中(例如:在一個Activity中)訪問另一個進程中(例如:一個Service)某個對象的方法,你就可以使用AIDL來生成這樣的代碼來偽裝傳遞各種參數。
要使用AIDL,Service需要以aidl文件的方式提供服務接口,AIDL工具將生成一個相應的java接口,并且在生成的服務接口中包含一個功能調用的stub服務樁類。Service的實現類需要去繼承這個stub服務樁類。Service的onBind方法會返回實現類的對象,之后你就可以使用它了。交互過程client<-->proxy<-->stub<-->service
stub和proxy是為了方便client/service交互而生成出來的代碼,這樣client/service的代碼就會比較干凈,不會嵌入很多很難懂的與業務無關的代碼?