⑴ android怎麼與pc上的進程進行rpc通信
理解Android系統的進程間通信原理(二)----RPC機制
理解Android系統中的輕量級解決方案RPC的原理,需要先回顧一下JAVA中的RMI(Remote Method Invocation)這個易於使用的純JAVA方案(用來實現分布式應用)。有關RMI的相關知識,可以通過下圖來歸納:
RMI原理 (2)
Android中的RPC也是參考了JAVA中的RMI方案,這里我們再詳細了解一下RPC的實現過程。
Android中的RPC機制是為了實現一個進程使用另一個進程中的遠程對象,它使用了Android自己的AIDL(介面定義語言),使用戶很方便地定義出一個介面作為規范,通過一個遠程Service為代理 ,客戶端在綁定該遠程Service過程中獲取遠程對象,進而使用該對象。可參考下圖所示:
Android的RPC原理及應用 (2)
補充:RPC的另一個目的是對客戶端只聲明介面及方法,隱藏掉具體實現類,供客戶端直接獲取此介面實例。
實例代碼:
實例一:通過Service來遠程調用一個介面子類的函數方法
功能描述:在MainActivity中通過綁定MyService服務類,來遠程調用MyPlayer(實現了IPlayer介面)的方法過程。需要定義一個IPlayer.aidl文件,ADT工具會自動生成一個IPlayer介面類,然後再由MyPlayer繼承IPlayer介面類中的靜態內部抽象類,實現介面方法,進而供其它應用程序遠程調用。(在本例中為了方便,MainActivity與MyService類同處一個應用程序中,實現運用時,可以不在同一個應用程序中,只要有許可權訪問MyService服務,就能得到IPlayer介面,進而執行該介面實例方法)
程序清單:IPlayer.aidl