aidl

aidl

AIDL:Android Interface Definition Language,即Android接口定義語言。

什麼是AIDL

Android系統中的進程之間不能共享記憶體,因此,需要提供一些機制在不同進程之間進行數據通信。

為了使其他的應用程式也可以訪問本應用程式提供的服務,Android系統採用了遠程過程調用(Remote Procedure Call,RPC)方式來實現。與很多其他的基於RPC的解決方案一樣,Android使用一種接口定義語言(Interface Definition Language,IDL)來公開服務的接口。我們知道4個Android應用程式組件中的3個(Activity、BroadcastReceiver和ContentProvider)都可以進行跨進程訪問,另外一個Android應用程式組件Service同樣可以。因此,可以將這種可以跨進程訪問的服務稱為AIDL(Android Interface Definition Language)服務。

建立AIDL服務的步驟

建立AIDL服務要比建立普通的服務複雜一些,具體步驟如下:

(1)在Eclipse Android工程的Java包目錄中建立一個擴展名為aidl的檔案。該檔案的語法類似於Java代碼,但會稍有不同。

(2)如果aidl檔案的內容是正確的,ADT會自動生成一個Java接口檔案(*.java)。

(3)建立一個服務類(Service的子類)。

(4)實現由aidl檔案生成的Java接口。

(5)在AndroidManifest.xml檔案中配置AIDL服務,尤其要注意的是,<action>標籤中android:name的屬性值就是客戶端要引用該服務的ID,也就是Intent類的參數值。

實現AIDL接口的說明:

(1)AIDL接口只支持方法,不能聲明靜態成員;

(2)不會有返回給調用方的異常。

相關詞條

相關搜尋

熱門詞條

聯絡我們