鴻蒙OS 接口描述語言簡介

2020-09-17 16:16 更新

當(dāng)客戶端和服務(wù)器通信時,需要定義雙方都認(rèn)可的接口,以保障雙方可以成功通信,HarmonyOS IDL(HarmonyOS Interface Definition Language)則是一種定義此類接口的工具。HarmonyOS IDL先把需要傳遞的對象分解成操作系統(tǒng)能夠理解的基本類型,并根據(jù)開發(fā)者的需要封裝跨邊界的對象。在HarmonyOS中,HarmonyOS IDL接口包含面向應(yīng)用程序的北向接口和面向硬件設(shè)備的南向接口。

圖1 HarmonyOS IDL接口描述語言 img

HarmonyOS IDL接口描述語言主要用于:

  • 聲明系統(tǒng)服務(wù)對外提供的服務(wù)接口,根據(jù)接口聲明在編譯時生成跨進(jìn)程調(diào)用(IPC)或跨設(shè)備調(diào)用(RPC)的代理(Proxy)和樁(Stub)的C/C++代碼或Java代碼。

  • 聲明Ability對外提供的服務(wù)接口,根據(jù)接口聲明在編譯時生成跨進(jìn)程調(diào)用(IPC)或跨設(shè)備調(diào)用(RPC)的代理(Proxy)和樁(Stub)的C/C++代碼或Java代碼。

圖2 IPC/RPC通信模型 點擊放大

使用HarmonyOS IDL接口描述語言聲明接口具有以下優(yōu)點:

  • HarmonyOS IDL中是以接口的形式定義服務(wù),可以專注于定義而隱藏實現(xiàn)細(xì)節(jié)。
  • HarmonyOS IDL中定義的接口可以支持跨進(jìn)程調(diào)用或跨設(shè)備調(diào)用。根據(jù)HarmonyOS IDL中的定義生成的信息或代碼可以簡化跨進(jìn)程或跨設(shè)備調(diào)用接口的實現(xiàn)。

采用HarmonyOS IDL描述的接口代碼示例如下:

package ohos.app; import ohos.app.IAbilityConnection;import ohos.os.IBroker; sequenceable ohos.content.AbilityInfo;sequenceable ohos.content.Intent; interface ohos.app.IAbilityManager {    int StartAbility([in] Intent intent);     void SetAbilitySliceCallback([in] IBroke broker, [in] IAbilityConnection callback);     [oneway]    void ExitAbility([in] AbilityInfo abilityInfo);}

說明

  • HarmonyOS IDL接口描述文件是以“.idl”為擴(kuò)展名的文件。
  • HarmonyOS IDL接口描述文件目錄層級必須按照包名的層次進(jìn)行定義,例如:IAbilityManager類的IDL文件必須放在ohos/app/目錄下。
  • HarmonyOS IDL接口描述文件主要以接口類名命名,例如:IAbilityManager.idl。
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號