在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

鴻蒙開發Ability Kit程序框架服務:FA模型切換Stage模型指導 配置文件差異

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-06-27 09:50 ? 次閱讀

配置文件的差異

FA模型應用在[config.json文件]中描述應用的基本信息,一個應用工程中可以創建多個Module,每個Module中都有一份config.json文件。config.json由app、deviceConfig和module三部分組成,app標簽用于配置應用級別的屬性,如果一個應用有多個Module,需要由開發者保證各個config.json文件中app標簽配置的一致性。

Stage模型應用在[app.json5]和[module.json]文件中描述應用的基本信息,和FA模型應用類似,一個Stage模型應用工程中同樣可以創建多個Module,但是一個應用工程中僅存在一份app.json5,用于配置應用級別的屬性,對每個Module都生效;每個Module中都有一份module.json5配置文件,用于配置Module級別的屬性,僅對當前Module生效。 開發前請熟悉鴻蒙開發指導文檔gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md點擊或者復制轉到。

圖1 配置文件差異
comparison-of-configuration-file

app.json5配置文件

配置文件示例

先通過一個示例,整體認識一下app.json5配置文件。

{
  "app": {
    "bundleName": "com.application.myapplication",
    "vendor": "example",
    "versionCode": 1000000,
    "versionName": "1.0.0",
    "icon": "$media:app_icon",
    "label": "$string:app_name",
    "description": "$string:description_application",
    "minAPIVersion": 9,
    "targetAPIVersion": 9,
    "apiReleaseType": "Release",
    "debug": false,
    "car": {
      "minAPIVersion": 8
    },
    "targetBundleName": "com.application.test",
    "targetPriority": 50,
    "appEnvironments": [
      {
        "name":"name1",
        "value": "value1"
      }
    ],
    "maxChildProcess": 5,
    "multiAppMode": {
      "multiAppModeType": "multiInstance",
      "maxCount": 5
    }
  },
}

配置文件標簽

app.json5配置文件包含以下標簽。

表1 app.json5配置文件標簽說明

屬性名稱含義數據類型是否可缺省
bundleName標識應用的Bundle名稱,用于標識應用的唯一性。命名規則如下 : - 由字母、數字、下劃線和符號“.”組成,且必須以字母開頭。 - 字符串最小長度為7字節,最大長度128字節。 - 推薦采用反域名形式命名(如“com.example.demo”,建議第一級為域名后綴com,第二級為廠商/個人名,第三級為應用名,也可以多級)。 對于隨系統源碼編譯的應用,建議命名為“com.ohos.demo”形式,其中的ohos標識系統應用。字符串該標簽不可缺省。
bundleType標識應用的Bundle類型,用于區分應用或者原子化服務。支持的取值如下: - app:當前Bundle為應用。 - atomicService:當前Bundle為原子化服務。 - shared:當前Bundle為共享庫應用,預留字段。 - appService:當前Bundle為系統級共享庫應用,僅供系統應用使用。字符串該標簽可缺省,缺省值為app。
debug標識應用是否可調試。 - true:可以進行斷點調試。 - false:不可以進行斷點調試。布爾值由IDE編譯構建時生成。該標簽可缺省,缺省值為false。
icon標識[應用的圖標],取值為圖標資源文件的索引字符串該標簽不可缺省。
label標識[應用的名稱],取值為字符串資源的索引,字符串長度不超過63字節。字符串該標簽不可缺省。
description標識應用的描述信息。取值為長度不超過255字節的字符串,內容為描述信息的字符串資源索引。字符串該標簽可缺省,缺省值為空。
vendor標識對應用開發廠商的描述,取值為長度不超過255字節的字符串。字符串該標簽可缺省,缺省值為空。
versionCode標識應用的版本號,取值為小于2^31次方的正整數。此數字僅用于確定某個版本是否比另一個版本更新,數值越大表示版本越高。 開發者可以將該值設置為任何正整數,但是必須確保應用的新版本都使用比舊版本更大的值。數值該標簽不可缺省。
versionName標識向用戶展示的應用版本號。 取值為長度不超過127字節的字符串,僅由數字和點構成,推薦采用“A.B.C.D”四段式的形式。四段式推薦的含義如下所示。 第一段:主版本號/Major,范圍099,重大修改的版本,如實現新的大功能或重大變化。 第二段:次版本號/Minor,范圍099,表示實現較突出的特點,如新功能添加或大問題修復。 第三段:特性版本號/Feature,范圍099,標識規劃的新版本特性。 第四段:修訂版本號/Patch,范圍0999,表示維護版本,如修復bug。字符串該標簽不可缺省。
minCompatibleVersionCode標識應用能夠兼容的最低歷史版本號,用于應用跨設備兼容性判斷。取值范圍為0~2147483647。數值該標簽可缺省,缺省值等于versionCode標簽值。
minAPIVersion標識應用運行需要的SDK的API最小版本。取值范圍為0~2147483647。數值應用編譯構建時由build-profile.json5中的compatibleSdkVersion自動生成。
targetAPIVersion標識應用運行需要的API目標版本。取值范圍為0~2147483647。數值應用編譯構建時由build-profile.json5中的compileSdkVersion自動生成。
apiReleaseType標識應用運行需要的API目標版本的類型,采用字符串類型表示。取值為“CanaryN”、“BetaN”或者“Release”,其中,N代表大于零的整數。 - Canary:受限發布的版本。 - Beta:公開發布的Beta版本。 - Release:公開發布的正式版本。字符串應用編譯構建時根據當前使用的SDK的Stage自動生成。即便手動配置了取值,編譯構建時也會被覆蓋。
accessible標識應用是否能訪問應用的安裝目錄,僅針對Stage模型的系統應用和預置應用生效。布爾值該標簽可缺省,缺省值為false。
multiProjects標識當前工程是否支持多個工程的聯合開發。 - true:當前工程支持多個工程的聯合開發。多工程開發可參考[多工程構建]。 - false:當前工程不支持多個工程的聯合開發。布爾值該標簽可缺省,缺省值為false。
asanEnabled標識應用程序是否開啟asan檢測,用于輔助定位buffer越界造成的crash問題。 - true:當前工程開啟asan檢測。 - false:當前工程不開啟asan檢測。布爾值該標簽可缺省,缺省值為false。
tablet標識對tablet設備做的特殊配置,可以配置的屬性字段有上文提到的:minAPIVersion。 如果使用該屬性對tablet設備做了特殊配置,則應用在tablet設備中會采用此處配置的屬性值,并忽略在app.json5公共區域配置的屬性值。對象該標簽可缺省,缺省時tablet設備使用app.json5公共區域配置的屬性值。
tv標識對tv設備做的特殊配置,可以配置的屬性字段有上文提到的:minAPIVersion。 如果使用該屬性對tv設備做了特殊配置,則應用在tv設備中會采用此處配置的屬性值,并忽略在app.json5公共區域配置的屬性值。對象該標簽可缺省,缺省時tv設備使用app.json5公共區域配置的屬性值。
wearable標識對wearable設備做的特殊配置,可以配置的屬性字段有上文提到的:minAPIVersion。 如果使用該屬性對wearable設備做了特殊配置,則應用在wearable設備中會采用此處配置的屬性值,并忽略在app.json5公共區域配置的屬性值。對象該標簽可缺省,缺省時wearable設備使用app.json5公共區域配置的屬性值。
car標識對car設備做的特殊配置,可以配置的屬性字段有上文提到的:minAPIVersion。 如果使用該屬性對car設備做了特殊配置,則應用在car設備中會采用此處配置的屬性值,并忽略在app.json5公共區域配置的屬性值。對象該標簽可缺省,缺省時car設備使用app.json5公共區域配置的屬性值。
default標識對default設備做的特殊配置,可以配置的屬性字段有上文提到的:minAPIVersion。 如果使用該屬性對default設備做了特殊配置,則應用在default設備中會采用此處配置的屬性值,并忽略在app.json5公共區域配置的屬性值。對象該標簽可缺省,缺省時default設備使用app.json5公共區域配置的屬性值。
targetBundleName標識當前包所指定的目標應用, 標簽值的取值規則和范圍與bundleName標簽一致。配置該字段的應用為具有overlay特征的應用。字符串該標簽可缺省,缺省值為空。
targetPriority標識當前應用的優先級,取值范圍為1~100。配置targetBundleName字段之后,才支持配置該字段。數值該標簽可缺省, 缺省值為1。
generateBuildHash標識當前應用的所有HAP和HSP是否由打包工具生成哈希值。 該字段配置為true時,該應用下的所有HAP和HSP都會由打包工具生成對應的哈希值。系統OTA升級時,若應用的versionCode保持不變,可根據哈希值判斷應用是否需要升級。**說明:**該字段僅對預置應用生效。布爾值該標簽可缺省, 缺省值為false。
GWPAsanEnabled標識應用程序是否開啟GWP-asan堆內存檢測工具,用于對內存越界、內存釋放后使用等內存破壞問題進行分析。 - true:當前工程開啟GWP-asan檢測。 - false:當前工程不開啟GWP-asan檢測。布爾值該標簽可缺省, 缺省值為false。
[appEnvironments]標識當前模塊配置的應用環境變量。對象數組該標簽可缺省,缺省值為空。
maxChildProcess標識當前應用自身可創建的子進程的最大個數,取值范圍為0到512,0表示不限制,當應用有多個模塊時,以entry模塊的配置為準。數值該標簽可缺省,缺省時使用系統配置的默認值。
[multiAppMode]標識當前應用配置的多開模式。僅bundleType為app的應用的entry或feature模塊配置有效,存在多個模塊時,以entry模塊的配置為準。對象該標簽可缺省,缺省值為空。

appEnvironments標簽

此標簽標識應用配置的環境變量。

表1 appEnvironments標簽說明

屬性名稱含義數據類型是否可缺省
name標識環境變量的變量名稱。取值為長度不超過4096字節的字符串。字符串該標簽可缺省,缺省值為空。
value標識環境變量的值。取值為長度不超過4096字節的字符串。字符串該標簽可缺省,缺省值為空。

appEnvironments標簽示例:

{
  "app": {
    "appEnvironments": [
      {
        "name":"name1",
        "value": "value1"
      }
    ]
  }
}

multiAppMode標簽

應用多開模式。

表1 multiAppMode標簽說明

屬性名稱含義數據類型是否可缺省
multiAppModeType標識應用多開模式類型,支持的取值如下: - multiInstance:多實例模式。 - appClone:應用分身模式。字符串該標簽可缺省,缺省值為空。
maxCount標識最大允許的應用多開個數,支持的取值如下: - multiInstance模式:取值范圍110。 - appClone模式:取值范圍15。 注意:在appClone模式下,maxCount在應用更新時不允許減小。數值該標簽可缺省,缺省值為0。

multiAppMode標簽示例:

{
  "app": {
    "multiAppMode": {
      "multiAppModeType": "appClone",
      "maxCount": 5
    }
  }
}

module.json5配置文件

配置文件示例

先通過一個示例,整體認識一下module.json5配置文件。

{
  "module": {
    "name": "entry",
    "type": "entry",
    "description": "$string:module_desc",
    "mainElement": "EntryAbility",
    "deviceTypes": [
      "default",
      "tablet"
    ],
    "deliveryWithInstall": true,
    "installationFree": false,
    "pages": "$profile:main_pages",
    "virtualMachine": "ark",
    "appStartup": "$profile:app_startup_config",
    "metadata": [
      {
        "name": "string",
        "value": "string",
        "resource": "$profile:distributionFilter_config"
      }
    ],
    "abilities": [
      {
        "name": "EntryAbility",
        "srcEntry": "./ets/entryability/EntryAbility.ets",
        "description": "$string:EntryAbility_desc",
        "icon": "$media:icon",
        "label": "$string:EntryAbility_label",
        "startWindowIcon": "$media:icon",
        "startWindowBackground": "$color:start_window_background",
        "exported": true,
        "skills": [
          {
            "entities": [
              "entity.system.home"
            ],
            "actions": [
              "ohos.want.action.home"
            ]
          }
        ],
        "continueType": [
          "continueType1"
        ]
      }
    ],
    "definePermissions": [
      {
        "name": "ohos.abilitydemo.permission.PROVIDER",
        "grantMode": "system_grant",
        "availableLevel": "system_core",
        "provisionEnable": true,
        "distributedSceneEnable": false,
        "label": "$string:EntryAbility_label"
      }
    ],
    "requestPermissions": [
      {
        "name": "ohos.abilitydemo.permission.PROVIDER",
        "reason": "$string:reason",
        "usedScene": {
          "abilities": [
            "FormAbility"
          ],
          "when": "inuse"
        }
      }
    ],
    "targetModuleName": "feature",
    "targetPriority": 50,
    "querySchemes": [
      "app1Scheme",
      "app2Scheme"
    ],
    "routerMap": "$profile:router_map",
    "appEnvironments": [
      {
        "name": "name1",
        "value": "value1"
      }
    ],
    "hnpPackages": [
      {
        "package": "hnpsample.hnp",
        "type": "public"
      }
    ]
  }
}

配置文件標簽

module.json5配置文件包含以下標簽。

表1 module.json5配置文件標簽說明

屬性名稱含義數據類型是否可缺省
name標識當前Module的名稱,確保該名稱在整個應用中唯一。取值為長度不超過31字節的字符串,不支持中文。 應用升級時允許修改該名稱,但需要應用適配Module相關數據目錄的遷移,詳見[文件管理接口]。字符串該標簽不可缺省。
type標識當前Module的類型。支持的取值如下: - entry:應用的主模塊。 - feature:應用的動態特性模塊。 - har:靜態共享包模塊。 - shared:動態共享包模塊。字符串該標簽不可缺省。
srcEntry標識當前Module所對應的代碼路徑,取值為長度不超過127字節的字符串。字符串該標簽可缺省,缺省值為空。
description標識當前Module的描述信息,取值為長度不超過255字節的字符串,可以采用字符串資源索引格式。字符串該標簽可缺省,缺省值為空。
process標識當前Module的進程名,取值為長度不超過31字節的字符串。如果在HAP標簽下配置了process,則該應用的所有UIAbility、DataShareExtensionAbility、ServiceExtensionAbility都運行在該進程中。**說明:**僅支持系統應用配置,三方應用配置不生效。字符串該標簽可缺省,缺省為app.json5文件下app標簽下的bundleName。
mainElement標識當前Module的入口UIAbility名稱或者ExtensionAbility名稱,取值為長度不超過255字節的字符串。字符串該標簽可缺省,缺省值為空。
[deviceTypes]標識當前Module可以運行在哪類設備上。字符串數組該標簽不可缺省。
deliveryWithInstall標識當前Module是否在用戶主動安裝的時候安裝,即該Module對應的HAP是否跟隨應用一起安裝。 - true:主動安裝時安裝。 - false:主動安裝時不安裝。布爾值該標簽不可缺省。
installationFree標識當前Module是否支持免安裝特性。 - true:表示支持免安裝特性,且符合免安裝約束。 - false:表示不支持免安裝特性。**說明:**當[bundleType]為原子化服務時,該字段需要配置為true。反之,該字段需要配置為false。布爾值該標簽不可缺省。
virtualMachine標識當前Module運行的目標虛擬機類型,供云端分發使用,如應用市場和分發中心。如果目標虛擬機類型為ArkTS引擎,則其值為“ark+版本號”。字符串該標簽由IDE構建HAP的時候自動插入。
[pages](標識當前Module的profile資源,用于列舉每個頁面信息,取值為長度不超過255字節的字符串。字符串在有UIAbility的場景下,該標簽不可缺省。
[metadata]標識當前Module的自定義元信息,可通過資源引用的方式配置[distributionFilter]、[shortcuts]等信息。只對當前Module、UIAbility、ExtensionAbility生效。對象數組該標簽可缺省,缺省值為空。
[abilities]標識當前Module中UIAbility的配置信息,只對當前UIAbility生效。對象數組該標簽可缺省,缺省值為空。
[extensionAbilities](標識當前Module中ExtensionAbility的配置信息,只對當前ExtensionAbility生效。對象數組該標簽可缺省,缺省值為空。
[definePermissions](標識系統資源hap定義的權限,不支持應用自定義權限。對象數組該標簽可缺省,缺省值為空。
[requestPermissions]標識當前應用運行時需向系統申請的權限集合。對象數組該標簽可缺省,缺省值為空。
[testRunner]標識用于測試當前Module的測試框架的配置。對象該標簽可缺省,缺省值為空。
[atomicService]標識當前應用是原子化服務時,有關原子化服務的相關配置。對象該標簽可缺省,缺省值為空。
[dependencies]標識當前模塊運行時依賴的共享庫列表。對象數組該標簽可缺省,缺省值為空。
targetModuleName標識當前包所指定的目標module,確保該名稱在整個應用中唯一。取值為長度不超過31字節的字符串,不支持中文。配置該字段的Module具有overlay特性。僅在動態共享包(HSP)中適用。字符串該標簽可缺省,缺省值為空。
targetPriority標識當前Module的優先級,取值范圍為1~100。配置targetModuleName字段之后,才需要配置該字段。僅在動態共享包(HSP)中適用。整型數值該標簽可缺省,缺省值為1。
[proxyData]標識當前Module提供的數據代理列表。對象數組該標簽可缺省,缺省值為空。
isolationMode標識當前Module的多進程配置項。支持的取值如下: - nonisolationFirst:優先在非獨立進程中運行。 - isolationFirst:優先在獨立進程中運行。 - isolationOnly:只在獨立進程中運行。 - nonisolationOnly:只在非獨立進程中運行。字符串該標簽可缺省,缺省值為nonisolationFirst。
generateBuildHash標識當前HAP/HSP是否由打包工具生成哈希值。當配置為true時,如果系統OTA升級時應用versionCode保持不變,可根據哈希值判斷應用是否需要升級。 該字段僅在[app.json5文件]中的generateBuildHash字段為false時使能。**說明:**該字段僅對預置應用生效。布爾值該標簽可缺省,缺省值為false。
compressNativeLibs標識libs庫是否以壓縮存儲的方式打包到HAP。 - true:libs庫以壓縮方式存儲。 - false:libs庫以不壓縮方式存儲。布爾值該標簽可缺省,缺省值為false。
libIsolation用于區分同應用不同HAP下的.so文件,以防止.so沖突。 - true:當前HAP的.so文件會儲存在libs目錄中以Module名命名的路徑下。 - false:當前HAP的.so文件會直接儲存在libs目錄中。布爾值該標簽可缺省,缺省值為false。
fileContextMenu標識當前HAP的右鍵菜單配置項。取值為長度不超過255字節的字符串。字符串該標簽可缺省,缺省值為空。
querySchemes標識允許當前應用進行跳轉查詢的URL schemes,只允許entry類型模塊配置,最多50個,每個字符串取值不超過128字節。字符串數組該標簽可缺省,缺省值為空。
[routerMap](標識當前模塊配置的路由表路徑。取值為長度不超過255字節的字符串。字符串該標簽可缺省,缺省值為空。
[appEnvironments](標識當前模塊配置的應用環境變量,只允許entry和feature模塊配置。對象數組該標簽可缺省,缺省值為空。
appStartup標識當前Module啟動框架配置路徑,僅在Entry中生效。字符串該標簽可缺省,缺省值為空。
[hnpPackages]標識當前應用包含的Native軟件包信息。只允許entry類型模塊配置。對象數組該標簽可缺省,缺省值為空。

deviceTypes標簽

表2 deviceTypes標簽說明

設備類型枚舉值說明
平板tablet-
智慧屏tv-
智能手表wearable系統能力較豐富的手表,具備電話功能。
車機car-
默認設備default能夠使用全部系統能力的設備。

deviceTypes示例:

{
  "module": {
    "name": "myHapName",
    "type": "feature",
    "deviceTypes" : [
       "tablet"
    ]
  }
}

pages標簽

該標簽是一個profile文件資源,用于指定描述頁面信息的配置文件。

{
  "module": {
    // ...
    "pages": "$profile:main_pages", // 通過profile下的資源文件配置
  }
}

在開發視圖的resources/base/profile下面定義配置文件main_pages.json,其中文件名"main_pages"可自定義,需要和pages標簽指定的信息對應。配置文件中列舉了當前應用組件中的頁面信息,包含頁面的路由信息和顯示窗口相關的配置。

表3 pages標簽說明

屬性名稱含義數據類型是否可缺省
src標識當前Module中所有頁面的路由信息,包括頁面路徑和頁面名稱。其中,頁面路徑是以當前Module的src/main/ets為基準。該標簽取值為一個字符串數組,其中每個元素表示一個頁面。字符串數組該標簽不可缺省。
window標識用于定義與顯示窗口相關的配置。對象該標簽可缺省,缺省值為空。

表4 window標簽說明

屬性名稱含義數據類型是否可缺省
designWidth標識頁面設計基準寬度。以此為基準,根據實際設備寬度來縮放元素大小。數值可缺省,缺省值為720px。
autoDesignWidth標識頁面設計基準寬度是否自動計算。當配置為true時,designWidth將會被忽略,設計基準寬度由設備寬度與屏幕密度計算得出。布爾值可缺省,缺省值為false。
{
  "src": [
    "pages/index/mainPage",
    "pages/second/payment",
    "pages/third/shopping_cart",
    "pages/four/owner"
  ],
  "window": {
    "designWidth": 720,
    "autoDesignWidth": false
  }
}

metadata標簽

該標簽標識HAP的自定義元信息,標簽值為數組類型,包含name、value、resource三個子標簽。

表5 metadata標簽說明

屬性名稱含義數據類型是否可缺省
name標識數據項的名稱,取值為長度不超過255字節的字符串。字符串該標簽可缺省,缺省值為空。
value標識數據項的值,取值為長度不超過255字節的字符串。字符串該標簽可缺省,缺省值為空。
resource標識定義用戶自定義數據格式,取值為長度不超過255字節的字符串,內容為標識該數據的資源索引。字符串該標簽可缺省,缺省值為空。

resource屬性值使用“profile:文件名”的方式指定文件所在位置,profile:文件名”的方式指定文件所在位置,profile表示資源的路徑為工程中的/resources/base/profile目錄下。例如$profile:shortcuts_config指定了/resources/base/profile/shortcuts_config.json文件。

{
  "module": {
    "metadata": [{
      "name": "module_metadata",
      "value": "a test demo for module metadata",
      "resource": "$profile:shortcuts_config"
    }],

    "abilities": [{
      "metadata": [{
        "name": "ability_metadata",
        "value": "a test demo for ability",
        "resource": "$profile:config_file"
      },
      {
        "name": "ability_metadata_2",
        "value": "a string test",
        "resource": "$profile:config_file"
      }],
    }],

    "extensionAbilities": [{
      "metadata": [{
        "name": "extensionAbility_metadata",
        "value": "a test for extensionAbility",
        "resource": "$profile:config_file"
      },
      {
        "name": "extensionAbility_metadata_2",
        "value": "a string test",
        "resource": "$profile:config_file"
      }],
    }]
  }
}

abilities標簽

abilities標簽描述UIAbility組件的配置信息,標簽值為數組類型,該標簽下的配置只對當前UIAbility生效。

表6 abilities標簽說明

屬性名稱含義數據類型是否可缺省
name標識當前UIAbility組件的名稱,確保該名稱在整個應用中唯一。取值為長度不超過127字節的字符串,不支持中文。字符串該標簽不可缺省。
srcEntry標識入口UIAbility的代碼路徑,取值為長度不超過127字節的字符串。字符串該標簽不可缺省。
[launchType]標識當前UIAbility組件的啟動模式,支持的取值如下: - multiton:多實例模式,每次啟動創建一個新實例。 - singleton:單實例模式,僅第一次啟動創建新實例。 - specified:指定實例模式,運行時由開發者決定是否創建新實例。字符串該標簽可缺省,該標簽缺省為“singleton”。
description標識當前UIAbility組件的描述信息,取值為長度不超過255字節的字符串。要求采用描述信息的資源索引,以支持多語言。字符串該標簽可缺省,缺省值為空。
icon標識當前UIAbility組件的圖標,取值為圖標資源文件的索引。字符串該標簽可缺省,缺省值為空。 如果UIAbility被配置為MainElement,該標簽必須配置。
label標識當前UIAbility組件對用戶顯示的名稱,要求采用該名稱的資源索引,以支持多語言。取值為長度不超過255字節的字符串。字符串該標簽可缺省,缺省值為空。 如果UIAbility被配置為MainElement,該標簽必須配置。
permissions標識當前UIAbility組件自定義的權限信息。當其他應用訪問該UIAbility時,需要申請相應的權限信息。 一個數組元素為一個權限名稱。通常采用反向域名格式(不超過255字節),取值為系統預定義的權限。字符串數組該標簽可缺省,缺省值為空。
[metadata]標識當前UIAbility組件的元信息。對象數組該標簽可缺省,缺省值為空。
exported標識當前UIAbility組件是否可以被其他應用調用。 - true:表示可以被其他應用調用。 - false:表示不可以被其他應用調用,包括無法被aa工具命令拉起應用。布爾值該標簽可缺省,缺省值為false。
continuable標識當前UIAbility組件是否支持跨端遷移。 - true:表示支持遷移。 - false:表示不支持遷移。布爾值該標簽可缺省,缺省值為false。
skills標識當前UIAbility組件或ExtensionAbility組件能夠接收的Want特征集,為數組格式。 配置規則: - 對于Entry類型的HAP,應用可以配置多個具有入口能力的skills標簽(即配置了ohos.want.action.home和entity.system.home)。 - 對于Feature類型的HAP,只有應用可以配置具有入口能力的skills標簽,服務不允許配置。對象數組該標簽可缺省,缺省值為空。
backgroundModes標識當前UIAbility組件的長時任務集合,指定用于滿足特定類型的長時任務。 長時任務類型有如下: - dataTransfer:通過網絡/對端設備進行數據下載、備份、分享、傳輸等。 - audioPlayback:音頻播放。 - audioRecording:錄音。 - location:定位、導航。 - bluetoothInteraction:藍牙掃描、連接、傳輸(穿戴)。 - multiDeviceConnection:多設備互聯。 - wifiInteraction:Wi-Fi掃描、連接、傳輸(克隆多屏)。 - voip:音視頻電話、VoIP。 - taskKeeping:計算。字符串數組該標簽可缺省,缺省值為空。
startWindowIcon標識當前UIAbility組件啟動頁面圖標資源文件的索引,取值為長度不超過255字節的字符串。字符串該標簽不可缺省。
startWindowBackground標識當前UIAbility組件啟動頁面背景顏色資源文件的索引,取值為長度不超過255字節的字符串。 取值示例:$color:red。字符串該標簽不可缺省。
removeMissionAfterTerminate標識當前UIAbility組件銷毀后,是否從任務列表中移除任務。 - true表示銷毀后移除任務。 - false表示銷毀后不移除任務。布爾值該標簽可缺省,缺省值為false。
orientation標識當前UIAbility組件啟動時的方向。支持的取值如下: - unspecified:未指定方向,由系統自動判斷顯示方向。 - landscape:橫屏。 - portrait:豎屏。 - follow_recent:跟隨背景窗口的旋轉模式。 - landscape_inverted:反向橫屏。 - portrait_inverted:反向豎屏。 - auto_rotation:隨傳感器旋轉。 - auto_rotation_landscape:傳感器橫屏旋轉,包括橫屏和反向橫屏。 - auto_rotation_portrait:傳感器豎屏旋轉,包括豎屏和反向豎屏。 - auto_rotation_restricted:傳感器開關打開,方向可隨傳感器旋轉。 - auto_rotation_landscape_restricted:傳感器開關打開,方向可隨傳感器旋轉為橫屏, 包括橫屏和反向橫屏。 - auto_rotation_portrait_restricted:傳感器開關打開,方向隨可傳感器旋轉為豎屏, 包括豎屏和反向豎屏。 - locked:傳感器開關關閉,方向鎖定。 - auto_rotation_unspecified:受開關控制和由系統判定的自動旋轉模式。 - follow_desktop:跟隨桌面的旋轉模式。字符串該標簽可缺省,缺省值為unspecified。
supportWindowMode標識當前UIAbility組件所支持的窗口模式。支持的取值如下: - fullscreen:全屏模式。 - split:分屏模式。 - floating:懸浮窗模式。字符串數組該標簽可缺省,缺省值為 ["fullscreen", "split", "floating"]。
priority標識當前UIAbility組件的優先級。[隱式查詢]時,優先級越高,UIAbility在返回列表越靠前。取值范圍0~10,數值越大,優先級越高。**說明:**僅支持系統應用配置,三方應用配置不生效。整型數值該標簽可缺省,缺省值為0。
maxWindowRatio標識當前UIAbility組件支持的最大的寬高比。該標簽最小取值為0。數值該標簽可缺省,缺省值為平臺支持的最大的寬高比。
minWindowRatio標識當前UIAbility組件支持的最小的寬高比。該標簽最小取值為0。數值該標簽可缺省,缺省值為平臺支持的最小的寬高比。
maxWindowWidth標識當前UIAbility組件支持的最大的窗口寬度,寬度單位為vp。 最小取值為minWindowWidth,最大取值為平臺支持的最大窗口寬度。窗口尺寸可以參考[窗口大小限制]。數值該標簽可缺省,缺省值為平臺支持的最大的窗口寬度。
minWindowWidth標識當前UIAbility組件支持的最小的窗口寬度, 寬度單位為vp。 最小取值為平臺支持的最小窗口寬度,最大取值為maxWindowWidth。窗口尺寸可以參考[窗口大小限制]。數值該標簽可缺省,缺省值為平臺支持的最小的窗口寬度。
maxWindowHeight標識當前UIAbility組件支持的最大的窗口高度, 高度單位為vp。 最小取值為minWindowHeight,最大取值為平臺支持的最大窗口高度。 窗口尺寸可以參考[窗口大小限制]。數值該標簽可缺省,缺省值為平臺支持的最大的窗口高度。
minWindowHeight標識當前UIAbility組件支持的最小的窗口高度, 高度單位為vp。 最小取值為平臺支持的最小窗口高度,最大取值為maxWindowHeight。窗口尺寸可以參考[窗口大小限制]。數值該標簽可缺省,缺省值為平臺支持的最小的窗口高度。
excludeFromMissions標識當前UIAbility組件是否在最近任務列表中顯示。 - true:表示不在任務列表中顯示。 - false:表示在任務列表中顯示。**說明:**僅支持系統應用配置,且需申請應用特權AllowAbilityExcludeFromMissions,三方應用配置不生效,布爾值該標簽可缺省,缺省值為false。
recoverable標識當前UIAbility組件是否支持在檢測到應用故障后,恢復到應用原界面。 - true:支持檢測到出現故障后,恢復到原界面。 - false:不支持檢測到出現故障后,恢復到原界面。布爾值該標簽可缺省,缺省值為false。
unclearableMission標識當前UIAbility組件是否支持從最近任務列表中移除。 - true:表示在任務列表中不可移除。 - false:表示在任務列表中可以移除。**說明:**單獨配置該字段不可生效,需要申請對應的[AllowMissionNotCleared]特權之后,該字段才能生效。布爾值該標簽可缺省,缺省值為false。
isolationProcess標識組件能否運行在獨立的進程中。 - true:表示能運行在獨立的進程中。 - false:表示不能運行在獨立的進程中。布爾值該標簽可缺省,缺省值為false。
excludeFromDock標識當前UIAbility組件是否支持從dock區域隱藏圖標。 - true:表示在dock區域隱藏。 - false:表示不能在dock區域隱藏。布爾值該標簽可缺省,缺省值為false。
preferMultiWindowOrientation標識當前UIAbility組件多窗布局方向: - default:缺省值,參數不配置默認值,建議其他應用類配置。 - portrait:多窗布局方向為豎向,建議豎向游戲類應用配置。 - landscape:多窗布局方向為橫向,配置后支持橫屏懸浮窗和上下分屏,建議橫向游戲類應用配置。 - landscape_auto:多窗布局動態可變為橫向,需要配合API enableLandScapeMultiWindow/disableLandScapeMultiWindow使用,建議視頻類應用配置。字符串該標簽可缺省,缺省值為default。
continueType標識當前UIAbility組件的跨端遷移類型。字符串數組該標簽可缺省,缺省值為當前組件的名稱。

abilities示例:

{
  "abilities": [{
    "name": "EntryAbility",
    "srcEntry": "./ets/entryability/EntryAbility.ets",
    "launchType":"singleton",
    "description": "$string:description_main_ability",
    "icon": "$media:icon",
    "label": "Login",
    "permissions": [],
    "metadata": [],
    "exported": true,
    "continuable": true,
    "skills": [{
      "actions": ["ohos.want.action.home"],
      "entities": ["entity.system.home"],
      "uris": []
    }],
    "backgroundModes": [
      "dataTransfer",
      "audioPlayback",
      "audioRecording",
      "location",
      "bluetoothInteraction",
      "multiDeviceConnection",
      "wifiInteraction",
      "voip",
      "taskKeeping"
    ],
    "startWindowIcon": "$media:icon",
    "startWindowBackground": "$color:red",
    "removeMissionAfterTerminate": true,
    "orientation": " ",
    "supportWindowMode": ["fullscreen", "split", "floating"],
    "maxWindowRatio": 3.5,
    "minWindowRatio": 0.5,
    "maxWindowWidth": 2560,
    "minWindowWidth": 1400,
    "maxWindowHeight": 300,
    "minWindowHeight": 200,
    "excludeFromMissions": false,
    "unclearableMission": false,
    "excludeFromDock": false,
    "preferMultiWindowOrientation": "default",
    "isolationProcess": false,
    "continueType": [
      "continueType1",
      "continueType2"
    ]
  }]
}

skills標簽

該標簽標識UIAbility組件或者ExtensionAbility組件能夠接收的[Want]的特征。

表7 skills標簽說明

屬性名稱含義數據類型是否可缺省
actions標識能夠接收的Action值集合,取值通常為系統預定義的action值,也允許自定義。字符串數組該標簽可缺省,缺省值為空。
entities標識能夠接收的Entity值的集合。字符串數組該標簽可缺省,缺省值為空。
uris標識與Want中URI(Uniform Resource Identifier)相匹配的集合。對象數組該標簽可缺省,缺省值為空。
permissions標識當前UIAbility組件自定義的權限信息。當其他應用訪問該UIAbility時,需要申請相應的權限信息。 一個數組元素為一個權限名稱。通常采用反向域名格式(不超過255字節),取值為系統預定義的權限。字符串數組該標簽可缺省,缺省值為空。
domainVerify標識是否開啟域名校驗。布爾值該標簽可缺省,缺省值為false。

表8 uris標簽說明

屬性名稱含義數據類型是否可缺省
scheme標識URI的協議名部分,常見的有http、https、file、ftp等。字符串uris中僅配置type時可以缺省,缺省值為空,否則不可缺省。
host標識URI的主機地址部分,該字段在scheme存在時才有意義。常見的方式: - 域名方式,如example.com。 - IP地址方式,如10.10.10.1。字符串該標簽可缺省,缺省值為空。
port標識URI的端口部分。如http默認端口為80,https默認端口是443,ftp默認端口是21。該字段在scheme和host都存在時才有意義。字符串該標簽可缺省,缺省值為空。
pathpathStartWithpathRegex標識URI的路徑部分,path、pathStartWith和pathRegex配置時三選一。path標識URI與want中的路徑部分全匹配,pathStartWith標識URI與want中的路徑部分允許前綴匹配,pathRegex標識URI與want中的路徑部分允許正則匹配。該字段在scheme和host都存在時才有意義。
type標識與Want相匹配的數據類型,使用MIME(Multipurpose Internet Mail Extensions)類型規范和[UniformDataType]類型規范。可與scheme同時配置,也可以單獨配置。字符串該標簽可缺省,缺省值為空。
utd標識與Want相匹配的[標準化數據類型],適用于分享等場景。字符串該標簽可缺省,缺省值為空。
maxFileSupported對于指定類型的文件,標識一次能接收或打開的最大數量,適用于分享等場景,需要與utd配合使用。整數該標簽可缺省,缺省值為0。
linkFeature標識URI提供的功能類型(如文件打開、分享、導航等),用于實現應用間跳轉。取值為長度不超過127字節的字符串,不支持中文。字符串該標簽可缺省,缺省值為空。

skills示例:

{
  "abilities": [
    {
      "skills": [
        {
          "actions": [
            "ohos.want.action.home"
          ],
          "entities": [
            "entity.system.home"
          ],
          "uris": [
            {
              "scheme":"http",
              "host":"example.com",
              "port":"80",
              "path":"path",
              "type": "text/*",
              "linkFeature": "login"
            }
          ],
          "permissions": [],
          "domainVerify": false
        }
      ]
    }
  ]
}

extensionAbilities標簽

描述extensionAbilities的配置信息,標簽值為數組類型,該標簽下的配置只對當前extensionAbilities生效。

表9 extensionAbilities標簽說明

屬性名稱含義數據類型是否可缺省
name標識當前ExtensionAbility組件的名稱,確保該名稱在整個應用中唯一,取值為長度不超過127字節的字符串。字符串該標簽不可缺省。
srcEntry標識當前ExtensionAbility組件所對應的代碼路徑,取值為長度不超過127字節的字符串。字符串該標簽不可缺省。
description標識當前ExtensionAbility組件的描述,取值為長度不超過255字節的字符串,可以是對描述內容的資源索引,用于支持多語言。字符串該標簽可缺省,缺省值為空。
icon標識當前ExtensionAbility組件的圖標,取值為資源文件的索引。如果ExtensionAbility組件被配置為MainElement,該標簽必須配置。字符串該標簽可缺省,缺省值為空。
label標識當前ExtensionAbility組件對用戶顯示的名稱,取值為該名稱的資源索引,以支持多語言,字符串長度不超過255字節。如果ExtensionAbility被配置當前Module的mainElement時,該標簽必須配置,且要確保應用內唯一。字符串該標簽可缺省,缺省值為空。
type標識當前ExtensionAbility組件的類型,支持的取值如下: - form:卡片的ExtensionAbility。 - workScheduler:延時任務的ExtensionAbility。 - inputMethod:輸入法的ExtensionAbility。 - service:后臺運行的service組件。 - accessibility:輔助能力的ExtensionAbility。 - fileAccess:公共數據訪問的ExtensionAbility,允許應用程序提供文件和文件夾給文件管理類應用展示。 - dataShare:數據共享的ExtensionAbility。 - staticSubscriber:靜態廣播的ExtensionAbility。 - wallpaper:壁紙的ExtensionAbility。 - backup:數據備份的ExtensionAbility。 - window:該ExtensionAbility會在啟動過程中創建一個window,為開發者提供界面開發。開發者開發出來的界面將通過UIExtensionComponent控件組合到其他應用的窗口中。 - thumbnail:獲取文件縮略圖的ExtensionAbility,開發者可以對自定義文件類型的文件提供縮略。 - preview:該ExtensionAbility會將文件解析后在一個窗口中顯示,開發者可以通過將此窗口組合到其他應用窗口中。 - print:打印框架的ExtensionAbility。 - push:推送的ExtensionAbility。 - driver:驅動框架的ExtensionAbility。 - remoteNotification:遠程通知的ExtensionAbility。 - remoteLocation:遠程定位的ExtensionAbility。 - voip:網絡音視頻通話的ExtensionAbility。 - action:自定義操作業務模板的ExtensionAbility,為開發者提供基于UIExtension的自定義操作業務模板 - adsService:廣告業務的ExtensionAbility,提供廣告業務框架。 - embeddedUI:嵌入式UI擴展能力,提供跨進程界面嵌入的能力。 - insightIntentUI:為開發者提供能被小藝意圖調用,以窗口形態呈現內容的擴展能力。 - ads:廣告業務的ExtensionAbility,與AdComponent控件組合使用,將廣告頁面展示到其他應用中。僅支持設備廠商使用。 - photoEditor:圖片編輯業務的ExtensionAbility,為開發者提供基于UIExtension的圖片編輯業務模版。 - appAccountAuthorization:應用帳號授權擴展能力的ExtensionAbility,用于處理帳號授權請求,比如帳號登錄授權。 - autoFill/password:用于賬號和密碼自動填充業務的ExtensionAbility,支持數據的保存、填充能力。 - hms/account:應用帳號管理能力的ExtensionAbility。 - sysDialog/atomicServicePanel:提供構建原子化服務服務面板的基礎能力的ExtensionAbility,使用時基于UIExtensionAbility實現。 - sysDialog/userAuth:本地用戶鑒權的ExtensionAbility。 - sysDialog/common:通用彈窗的ExtensionAbility。 - sysDialog/power:關機重啟彈窗的ExtensionAbility。 - sysDialog/print:打印模態彈窗的ExtensionAbility。 - sysDialog/meetimeCall:暢連通話的ExtensionAbility。 - sysDialog/meetimeContact:暢連聯系人的ExtensionAbility。 - sysPicker/meetimeMessage:暢連消息的ExtensionAbility。 - sysPicker/meetimeContact:暢連聯系人列表的ExtensionAbility。 - sysPicker/meetimeCallLog:暢連通話記錄列表的ExtensionAbility。 - sysPicker/share:系統分享的ExtensionAbility。 - sysPicker/mediaControl:投播組件的ExtensionAbility。 - sysPicker/photoPicker:三方應用通過對應的UIExtensionType拉起圖庫picker界面。 - sysPicker/filePicker:文件下載彈窗的ExtensionAbility。 - sysPicker/audioPicker:音頻管理彈窗的ExtensionAbility。 - sysPicker/photoEditor:圖片編輯彈窗的ExtensionAbility。 - sys/commonUI:非通用的ExtensionAbility,提供業務屬性強相關的嵌入式顯示或彈框。 - autoFill/smart:用于情景化場景自動填充業務的ExtensionAbility,支持數據的保存、填充能力。**說明:**其中service、adsService、sys/commonUI、fileAccess、sysDialog類型、sysPicker類型和dataShare類型,僅支持系統應用配置,三方應用配置不生效。字符串該標簽不可缺省。
permissions標識當前ExtensionAbility組件自定義的權限信息。當其他應用訪問該ExtensionAbility時,需要申請相應的權限信息。 一個數組元素為一個權限名稱。通常采用反向域名格式(最大255字節),取值為[系統預定義的權限]。字符串數組該標簽可缺省,缺省值為空。
readPermission標識讀取當前ExtensionAbility組件數據所需的權限,取值為長度不超過255字節的字符串。僅當ExtensionAbility組件的type為dataShare時支持配置該標簽。字符串該標簽可缺省,缺省值為空。
writePermission標識向當前ExtensionAbility組件寫數據所需的權限,取值為長度不超過255字節的字符串。僅當ExtensionAbility組件的type為dataShare時支持配置該標簽。字符串該標簽可缺省,缺省值為空。
uri標識當前ExtensionAbility組件提供的數據URI,取值為長度不超過255字節的字符數組,用反向域名的格式表示。**說明:**該標簽在type為dataShare類型的ExtensionAbility時,不可缺省。字符串該標簽可缺省,缺省值為空。
skills標識當前ExtensionAbility組件能夠接收的[Want]的特征集。 配置規則:entry包可以配置多個具有入口能力的skills標簽(配置了ohos.want.action.home和entity.system.home)的ExtensionAbility,其中第一個配置了skills標簽的ExtensionAbility中的label和icon作為服務或應用的label和icon。**說明:**服務的Feature包不能配置具有入口能力的skills標簽。 應用的Feature包可以配置具有入口能力的skills標簽。數組該標簽可缺省,缺省值為空。
[metadata]標識當前ExtensionAbility組件的元信息。對象該標簽可缺省,缺省值為空。
exported標識當前ExtensionAbility組件是否可以被其他應用調用。 - true:表示可以被其他應用調用。 - false:表示不可以被其他應用調用,包括無法被aa工具命令拉起應用。布爾值該標簽可缺省,缺省值為false。
extensionProcessMode標識當前ExtensionAbility組件的多進程實例模型,當前只對UIExtensionAbility以及從UIExtensionAbility擴展的ExtensionAbility生效。 - instance:表示該ExtensionAbility每個實例一個進程。 - type:表示該ExtensionAbility實例都運行在同一個進程里,與其他ExtensionAbility分離進程。 - bundle:表示該ExtensionAbility實例都運行在應用統一進程里,與其他配置了bundle模型的ExtensionAbility共進程。字符串該標簽可缺省,缺省值為空。
dataGroupIds標識當前ExtensionAbility組件的dataGroupId集合。如果當前ExtensionAbility組件所在的應用在[HarmonyAppProvision配置文件]的data-group-ids字段中也聲明了某個dataGroupId,那么當前ExtensionAbility組件可以和應用共享這一個dataGroupId生成的目錄,所以ExtensionAbility組件的dataGroupId需要是應用的HarmonyAppProvision配置文件的data-group-ids字段里配置的才能生效。 且該字段僅在當前ExtensionAbility組件存在獨立的沙箱目錄時生效。字符串數組該標簽可缺省,缺省值為空。

extensionAbilities示例:

{
  "extensionAbilities": [
    {
      "name": "FormName",
      "srcEntry": "./form/MyForm.ts",
      "icon": "$media:icon",
      "label" : "$string:extension_name",
      "description": "$string:form_description",
      "type": "form",
      "permissions": ["ohos.abilitydemo.permission.PROVIDER"],
      "readPermission": "",
      "writePermission": "",
      "exported": true,
      "uri":"scheme://authority/path/query",
      "skills": [{
        "actions": [],
        "entities": [],
        "uris": [],
        "permissions": []
      }],
      "metadata": [
        {
          "name": "ohos.extension.form",
          "resource": "$profile:form_config",
        }
      ],
      "extensionProcessMode": "instance",
      "dataGroupIds": [
        "testGroupId1"
      ]
    }
  ]
}

requestPermissions標簽

該標簽標識應用運行時需向系統申請的權限集合

說明:

  • 在requestPermissions標簽中配置的權限項將在應用級別生效,即該權限適用于整個應用程序。
  • 如果應用需要訂閱自己發布的事件,而且應用在extensionAbilities標簽中的permissions字段中設置了訪問該應用所需要的權限,那么應用也需要在requestPermissions標簽中注冊相關權限才能收到該事件。
  • 生態治理中,要求受限的權限必須要校驗usedScene,但是在HAR/HSP中沒有usedScene/ability,會影響構建出包,所以HAR/HSP包中不再校驗這個邏輯。

表10 requestPermissions標簽說明

屬性名稱含義數據類型是否可缺省
name標識需要使用的權限名稱。字符串該標簽不可缺省。
reason標識申請權限的原因,取值需要采用資源引用格式,以適配多語種。字符串該標簽可缺省,缺省值為空。**說明:**當申請的權限為user_grant權限時,該字段必填,否則不允許在應用市場上架。
usedScene標識權限使用的場景,包含abilities和when兩個子標簽。 - abilities:可以配置為多個UIAbility或者ExtensionAbility名稱的字符串數組。 - when:表示調用時機,支持的取值包括inuse(使用時)和always(始終)。對象該標簽可缺省,缺省值為空。**說明:**HAR/HSP的場景下對于受限的權限不再校驗usedScene權限。當申請的權限為user_grant權限時,abilities標簽在hap中必填,when標簽可選。

requestPermissions示例:

{
  "module" : {
    "requestPermissions": [
      {
        "name": "ohos.abilitydemo.permission.PROVIDER",
        "reason": "$string:reason",
        "usedScene": {
          "abilities": [
            "EntryFormAbility"
          ],
          "when": "inuse"
        }
      }
    ]
  }
}

shortcuts標簽

shortcuts標識應用的快捷方式信息。標簽值為數組,包含四個子標簽shortcutId、label、icon、wants。

metadata中指定shortcut信息,其中:

  • name:指定shortcuts的名稱,使用ohos.ability.shortcuts作為shortcuts信息的標識。
  • resource:指定shortcuts信息的資源位置。

表11 shortcuts標簽說明

屬性名稱含義類型是否可缺省
shortcutId標識快捷方式的ID,取值為長度不超過63字節的字符串。字符串該標簽不可缺省。
label標識快捷方式的標簽信息,即快捷方式對外顯示的文字描述信息。取值為長度不超過255字節的字符串,可以是描述性內容,也可以是標識label的資源索引。字符串該標簽可缺省,缺省值為空。
icon標識快捷方式的圖標,取值為資源文件的索引。字符串該標簽可缺省,缺省值為空。
[wants]標識快捷方式內定義的目標wants信息集合,在調用launcherBundleManager的startShortcut接口時,會拉起wants標簽里的第一個目標組件,推薦只配置一個wants元素。對象該標簽可缺省,缺省為空。
  1. 在/resources/base/profile/目錄下配置shortcuts_config.json配置文件。
    {
      "shortcuts": [
        {
          "shortcutId": "id_test1",
          "label": "$string:shortcut",
          "icon": "$media:aa_icon",
          "wants": [
            {
              "bundleName": "com.ohos.hello",
              "moduleName": "entry",
              "abilityName": "EntryAbility",
              "parameters": {
                "testKey": "testValue"
              }
            }
          ]
        }
      ]
    }
    
  2. 在module.json5配置文件的abilities標簽中,針對需要添加快捷方式的UIAbility進行配置metadata標簽,使shortcut配置文件對該UIAbility生效。
    {
      "module": {
        // ...
        "abilities": [
          {
            "name": "EntryAbility",
            "srcEntry": "./ets/entryability/EntryAbility.ets",
            // ...
            "skills": [
              {
                "entities": [
                  "entity.system.home"
                ],
                "actions": [
                  "ohos.want.action.home"
                ]
              }
            ],
            "metadata": [
              {
                "name": "ohos.ability.shortcuts",
                "resource": "$profile:shortcuts_config"
              }
            ]
          }
        ]
      }
    }
    

wants標簽

此標簽用于標識快捷方式內定義的目標wants信息集合。

表11-1 wants標簽說明

屬性名稱含義類型是否可缺省
bundleName表示快捷方式的目標包名。字符串該標簽不可缺省。
moduleName表示快捷方式的目標模塊名。字符串該標簽不可缺省。
abilityName表示快捷方式的目標組件名。字符串該標簽不可缺省。
parameters表示拉起快捷方式時的自定義數據,僅支持配置字符串類型的數據。其中鍵值均最大支持1024長度的字符串。對象該標簽可缺省。

data標簽示例:

{
  "wants": [
    {
      "bundleName": "com.ohos.hello",
      "moduleName": "entry",
      "abilityName": "EntryAbility",
      "parameters": {
        "testKey": "testValue"
      }
    }
  ]
}

distributionFilter標簽

該標簽用于定義HAP對應的細分設備規格的分發策略,以便在應用市場進行云端分發應用包時做精準匹配。

說明: 該標簽從API10及以后版本開始生效,API9及以前版本使用distroFilter標簽。

  • 適用場景: 當一個工程中存在多個Entry,且多個Entry配置的deviceTypes存在交集時,則需要通過該標簽進行區分。比如下面的兩個Entry都支持tablet類型,就需要通過該標簽進行區分。

    // entry1支持的設備類型
    {
      "module": {
        "name": "entry1",
        "type": "entry",
        "deviceTypes" : [
          "tv",
          "tablet"
        ]
      }
    }
    
    // entry2支持的設備類型
    {
      "module": {
        "name": "entry2",
        "type": "entry",
        "deviceTypes" : [
          "car",
          "tablet"
        ]
      }
    }
    
  • 配置規則: 該標簽支持配置四個屬性,包括屏幕形狀([screenShape])、窗口分辨率([screenWindow])、屏幕像素密度([screenDensity] )、設備所在國家與地區([countryCode]),詳見下表。
    在分發應用包時,通過deviceTypes與這四個屬性的匹配關系,唯一確定一個用于分發到設備的HAP。

    • 如果需要配置該標簽,則至少包含一個屬性。
    • 如果一個Entry中配置了任意一個或多個屬性,則其他Entry也必須包含相同的屬性。
    • screenShape和screenWindow屬性僅用于輕量級智能穿戴設備。
  • 配置方式: 該標簽需要配置在/resources/base/profile資源目錄下,并在metadata的resource字段中引用。

表12 distributionFilter標簽配置說明

屬性名稱含義數據類型是否可缺省
[screenShape]標識屏幕形狀的支持策略。對象數組該標簽可缺省,缺省值為空。
[screenWindow]標識應用運行時的窗口分辨率的支持策略。對象數組該標簽可缺省,缺省值為空。
[screenDensity]標識屏幕的像素密度(dpi:Dot Per Inch)的支持策略。對象數組該標簽可缺省,缺省值為空。
[countryCode](標識國家與地區的支持策略,取值參考ISO-3166-1標準。支持多個國家和地區枚舉定義。對象數組該標簽可缺省,缺省值為空。

screenShape標簽

表13 screenShape標簽說明

屬性名稱含義數據類型是否可缺省
policy標識條件屬性的過濾規則。 - exclude:表示需要排除的value屬性。 - include:表示需要包含的value屬性。字符串該標簽不可缺省。
value支持的取值為circle(圓形)、rect(矩形)。例如,針對智能穿戴設備,可為圓形表盤和矩形表盤分別提供不同的HAP。字符串數組該標簽不可缺省。

screenWindow標簽

表14 screenWindow標簽說明

屬性名稱含義數據類型是否可缺省
policy標識條件屬性的過濾規則。當前取值僅支持“include”。 - include:表示需要包含的value屬性。字符串該標簽不可缺省。
value單個字符串的取值格式為“寬 * 高”,取值為整數像素值,例如“454 * 454”。字符串數組該標簽不可缺省。

screenDensity標簽

表15 screenDensity標簽說明

屬性名稱含義數據類型是否可缺省
policy標識條件屬性的過濾規則。 - exclude:表示需要排除的value屬性。 - include:表示需要包含的value屬性。字符串該標簽不可缺省。
value標識屏幕的像素密度(dpi :Dot Per Inch)。支持的取值如下: - sdpi:表示小規模的屏幕密度(Small-scale Dots per Inch),適用于dpi取值為(0,120]的設備。 - mdpi:表示中規模的屏幕密度(Medium-scale Dots Per Inch),適用于dpi取值為(120,160]的設備。 - ldpi:表示大規模的屏幕密度(Large-scale Dots Per Inch),適用于dpi取值為(160,240]的設備。 - xldpi:表示大規模的屏幕密度(Extra Large-scale Dots Per Inch),適用于dpi取值為(240,320]的設備。 - xxldpi:表示大規模的屏幕密度(Extra Extra Large-scale Dots Per Inch),適用于dpi取值為(320,480]的設備。 - xxxldpi:表示大規模的屏幕密度(Extra Extra Extra Large-scale Dots Per Inch),適用于dpi取值為(480, 640]的設備。字符串數組該標簽不可缺省。

countryCode標簽

表16 countryCode標簽說明

屬性名稱含義數據類型是否可缺省
policy標識條件屬性的過濾規則。 - exclude:表示需要排除的value屬性。 - include:表示需要包含的value屬性。字符串該標簽不可缺省。
value標識應用需要分發的國家地區碼。字符串數組該標簽不可缺省。

示例如下:

  1. 在開發視圖的resources/base/profile下面定義配置文件distributionFilter_config.json,文件名可以自定義。
    {
      "distributionFilter": {
        "screenShape": {
          "policy": "include",
          "value": [
            "circle",
            "rect"
          ]
        },
        "screenWindow": {
          "policy": "include",
          "value": [
            "454*454",
            "466*466"
          ]
        },
        "screenDensity": {
          "policy": "exclude",
          "value": [
            "ldpi",
            "xldpi"
          ]
        },
        "countryCode": { // 支持在中國分發
          "policy": "include",
          "value": [
            "CN"
          ]
        }
      }
    }
    
  2. 在module.json5配置文件的module標簽中定義metadata信息。
    {
      "module": {
        // ...
        "metadata": [
          {
            "name": "ohos.module.distribution",
            "resource": "$profile:distributionFilter_config",
          }
        ]
      }
    }
    

testRunner標簽

此標簽用于支持對測試框架的配置。

表17 testRunner標簽說明

屬性名稱含義數據類型是否可缺省
name標識測試框架對象名稱,取值為長度不超過255字節的字符串。字符串不可缺省。
srcPath標識測試框架代碼路徑,取值為長度不超過255字節的字符串。字符串不可缺省。

testRunner標簽示例:

{
  "module": {
    // ...
    "testRunner": {
      "name": "myTestRunnerName",
      "srcPath": "etc/test/TestRunner.ts"
    }
  }
}

atomicService標簽

此標簽用于支持對原子化服務的配置。此標簽僅在app.json中bundleType指定為atomicService時使能。

表18 atomicService標簽說明

屬性名稱含義數據類型是否可缺省
preloads標識原子化服務中預加載列表。對象數組該標簽可缺省,缺省值為空。

表19 preloads標簽說明

屬性名稱含義數據類型是否可缺省
moduleName標識原子化服務中當前模塊被加載時,需預加載的模塊名。不能配置自身modulename,且必須有對應的模塊,取值為長度不超過31字節的字符串。字符串該標簽不可缺省。

atomicService標簽示例:

{
  "module": {
    "atomicService": {
      "preloads":[
        {
          "moduleName":"feature"
        }
      ]
    }
  }
}

dependencies標簽

此標簽標識模塊運行時依賴的共享庫列表。

表20 dependencies標簽說明

屬性名稱含義數據類型是否可缺省
bundleName標識當前模塊依賴的共享包包名。取值為長度7~128字節的字符串。字符串該標簽可缺省,缺省值為空。
moduleName標識當前模塊依賴的共享包模塊名。取值為長度不超過31字節的字符串。字符串該標簽不可缺省。
versionCode標識當前共享包的版本號。取值范圍為0~2147483647。數值該標簽可缺省,缺省值為空。

dependencies標簽示例:

{
  "module": {
    "dependencies": [
      {
        "bundleName":"com.share.library",
        "moduleName": "library",
        "versionCode": 10001
      }
    ]
  }
}

proxyData標簽

此標簽標識模塊提供的數據代理列表,僅限entry和feature配置。

表21 proxyData標簽說明

屬性名稱含義數據類型是否可缺省
uri標識用于訪問該數據代理的URI,不同的數據代理配置的URI不可重復,且需要滿足datashareproxy://當前應用包名/xxx的格式。取值為長度不超過255字節的字符串。字符串該標簽不可缺省。
requiredReadPermission標識從該數據代理中讀取數據所需要的權限,若不配置,則其他應用無法使用該代理。非系統應用配置的權限的等級需為system_basic或system_core,系統應用配置的權限的等級沒有限制。取值為長度不超過255字節的字符串。字符串該標簽可缺省,缺省值為空。
requiredWritePermission標識向該數據代理中寫入數據所需要的權限,若不配置,則其他應用無法使用該代理。非系統應用配置的權限的等級需為system_basic或system_core,系統應用配置的權限的等級沒有限制。取值為長度不超過255字節的字符串。字符串該標簽可缺省,缺省值為空。
[metadata]標識該數據代理的元信息,只支持配置name和resource字段。對象該標簽可缺省,缺省值為空。

proxyData標簽示例:

{
  "module": {
    "proxyData": [
      {
        "uri":"datashareproxy://com.ohos.datashare/event/Meeting",
        "requiredReadPermission": "ohos.permission.GET_BUNDLE_INFO",
        "requiredWritePermission": "ohos.permission.GET_BUNDLE_INFO",
        "metadata": {
          "name": "datashare_metadata",
          "resource": "$profile:datashare"
        }
      }
    ]
  }
}

routerMap標簽

此標簽標識模塊配置的路由表的路徑。

routerMap配置文件描述模塊的路由表信息,routerMap標簽值為數組類型。

表22 routerMap標簽說明

屬性名稱含義數據類型是否可缺省
name標識跳轉頁面的名稱。取值為長度不超過1023字節的字符串。字符串該標簽不可缺省。
pageSourceFile標識頁面在模塊內的路徑。取值為長度不超過31字節的字符串。字符串該標簽不可缺省。
buildFunction標識被@Builder修飾的函數,該函數描述頁面的UI。取值為長度不超過1023字節的字符串。字符串該標簽不可缺省。
[data]標識自定義數據,總長度不超過4096。對象該標簽可缺省,缺省值為空。

示例如下:

  1. 在開發視圖的resources/base/profile下面定義配置文件,文件名可以自定義,例如:router_map.json。
    {
      "routerMap": [
        {
          "name": "DynamicPage1",
          "pageSourceFile": "src/main/ets/pages/pageOne.ets",
          "buildFunction": "myFunction"
        },
        {
          "name": "DynamicPage2",
          "pageSourceFile": "src/main/ets/pages/pageTwo.ets",
          "buildFunction": "myBuilder",
          "data": {
            "key1": "data1",
            "key2": "data2"
          }
        }
      ]
    }
    
  2. 在module.json5配置文件的module標簽中定義routerMap字段,指向定義的路由表配置文件,例如:"routerMap": "$profile:router_map"

data標簽

此標簽用于支持在路由表中配置自定義數據。 data對象內部,可以填入自定義數據。

data標簽示例:

{
  "routerMap": [
    {
      "name": "DynamicPage",
      "pageSourceFile": "src/main/ets/pages/pageOne.ets",
      "buildFunction": "myBuilder",
      "data": {
        "stringKey": "data1",
        "numberKey": 123,
        "booleanKey": true,
        "objectKey": {
          "name": "test"
        },
        "arrayKey": [
          {
            "id": 123
          }
        ]
      }
    }
  ]
}

appEnvironments標簽

此標簽標識模塊配置的應用環境變量。

表23 appEnvironments標簽說明

屬性名稱含義數據類型是否可缺省
name標識環境變量的變量名稱。取值為長度不超過4096字節的字符串。字符串該標簽可缺省,缺省值為空。
value標識環境變量的值。取值為長度不超過4096字節的字符串。字符串該標簽可缺省,缺省值為空。

appEnvironments標簽示例:

{
  "module": {
    "appEnvironments": [
      {
        "name":"name1",
        "value": "value1"
      }
    ]
  }
}

definePermissions標簽

該標簽僅支持系統資源hap定義權限,不支持應用自定義權限。

表24 definePermissions標簽說明

屬性名稱含義數據類型是否可缺省
name標識權限的名稱,該標簽最大長度為255字節。字符串不可缺省。
grantMode標識權限的授予方式,支持如下兩種授予模式如下: - system_grant:安裝后系統自動授予該權限。 - user_grant:使用時動態申請,用戶授權后才可使用。字符串可缺省,缺省值為system_grant。
availableLevel標識權限限制類別,可選值如下: - system_core:系統核心權限。 - system_basic:系統基礎權限。 - normal:普通權限。所有應用允許申請的權限。字符串可缺省,缺省值為normal。
provisionEnable標識權限是否支持證書方式申請權限,包括高級別的權限。配置為true標識開發者可以通過provision方式申請權限。布爾值可缺省,缺省值為true。
distributedSceneEnabled標識權限是否支持分布式場景下使用該權限。布爾值可缺省,缺省值為false。
label標識權限的簡短描述,配置為對描述內容的資源索引。字符串可缺省,缺省值為空。
description標識權限的詳細描述,可以是字符串,或者是對描述內容的資源索引。字符串可缺省,缺省值為空。

definePermissions標簽示例:

{
  "module" : {
    "definePermissions": [
    {
      {
        "name": "ohos.abilitydemo.permission.PROVIDER",
        "grantMode": "system_grant",
        "availableLevel": "system_core",
        "provisionEnable": true,
        "distributedSceneEnable": false,
        "label": "$string:EntryAbility_label"
        }
      }
    ]
  }
}

hnpPackages標簽

該標簽標識應用包含的Native軟件包信息。

表10 hnpPackages標簽說明

屬性名稱含義數據類型是否可缺省
package標識Native軟件包名稱。字符串該標簽不可缺省。
type標識Native軟件包類型。支持的取值如下: - public:公有類型。 - private:私有類型。字符串該標簽不可缺省。HarmonyOSOpenHarmony鴻蒙文檔籽料:mau123789是v直接拿

新文檔.png

hnpPackages示例:

{
  "module" : {
    "hnpPackages": [
      {
        "package": "hnpsample.hnp",
        "type": "public"
      }
    ]
  }
}

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 框架
    +關注

    關注

    0

    文章

    403

    瀏覽量

    17543
  • 模型
    +關注

    關注

    1

    文章

    3317

    瀏覽量

    49234
  • 鴻蒙
    +關注

    關注

    57

    文章

    2393

    瀏覽量

    43068
收藏 人收藏

    評論

    相關推薦

    鴻蒙服務萬能卡片開發-stage模型fa模型的卡片區別

    。 module.json5:Stage模型模塊配置文件。主要包含HAP包的配置信息、應用/服務在具體設備上的
    發表于 05-22 14:20

    鴻蒙應用模型:【Ability Kit】簡介

    Ability Kit程序框架服務)提供了應用程序開發
    的頭像 發表于 05-29 14:41 ?715次閱讀
    <b class='flag-5'>鴻蒙</b>應用<b class='flag-5'>模型</b>:【<b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b>】簡介

    鴻蒙開發Ability Kit程序框架服務FA模型應用配置文件

    應用配置文件中包含應用配置信息、應用組件信息、權限信息、開發者自定義信息等,這些信息在編譯構建、分發和運行解決分別提供給編譯工具、應用市場和操作系統使用。
    的頭像 發表于 06-24 14:49 ?413次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服務</b>:<b class='flag-5'>FA</b><b class='flag-5'>模型</b>應用<b class='flag-5'>配置文件</b>

    鴻蒙開發Ability Kit程序框架服務FA模型Stage模型應用組件互通綜述

    FA模型Stage模型是兩套不同的應用模型,他們擁有各自的組件。FA
    的頭像 發表于 06-24 16:43 ?581次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服務</b>:<b class='flag-5'>FA</b><b class='flag-5'>模型</b>與<b class='flag-5'>Stage</b><b class='flag-5'>模型</b>應用組件互通綜述

    鴻蒙開發Ability Kit程序框架服務FA模型啟動Stage模型UIAbility

    本文介紹FA模型的三種應用組件如何啟動Stage模型的UIAbility組件。
    的頭像 發表于 06-25 16:00 ?423次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服務</b>:<b class='flag-5'>FA</b><b class='flag-5'>模型</b>啟動<b class='flag-5'>Stage</b><b class='flag-5'>模型</b>UIAbility

    鴻蒙開發Ability Kit程序框架服務FA模型綁定Stage模型ServiceExtensionAbility

    本文介紹FA模型的三種應用組件如何綁定Stage模型的ServiceExtensionAbility組件。
    的頭像 發表于 06-25 10:43 ?347次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服務</b>:<b class='flag-5'>FA</b><b class='flag-5'>模型</b>綁定<b class='flag-5'>Stage</b><b class='flag-5'>模型</b>ServiceExtensionAbility

    鴻蒙開發Ability Kit程序框架服務FA模型訪問Stage模型DataShareExtensionAbility

    無論FA模型還是Stage模型,數據讀寫功能都包含客戶端和服務端兩部分。
    的頭像 發表于 06-25 14:30 ?447次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服務</b>:<b class='flag-5'>FA</b><b class='flag-5'>模型</b>訪問<b class='flag-5'>Stage</b><b class='flag-5'>模型</b>DataShareExtensionAbility

    鴻蒙開發Ability Kit程序框架服務Stage模型啟動FA模型PageAbility

    本小節介紹Stage模型的兩種應用組件如何啟動FA模型的PageAbility組件。
    的頭像 發表于 06-26 09:50 ?423次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服務</b>:<b class='flag-5'>Stage</b><b class='flag-5'>模型</b>啟動<b class='flag-5'>FA</b><b class='flag-5'>模型</b>PageAbility

    鴻蒙開發Ability Kit程序框架服務Stage模型綁定FA模型ServiceAbility

    本小節介紹Stage模型的兩種應用組件如何綁定FA模型ServiceAbility組件。
    的頭像 發表于 06-25 21:47 ?357次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服務</b>:<b class='flag-5'>Stage</b><b class='flag-5'>模型</b>綁定<b class='flag-5'>FA</b><b class='flag-5'>模型</b>ServiceAbility

    鴻蒙開發Ability Kit程序框架服務FA模型切換Stage模型概述

    本文介紹如何將一個FA模型開發的聲明式范式應用切換Stage模型
    的頭像 發表于 06-26 14:40 ?391次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服務</b>:<b class='flag-5'>FA</b><b class='flag-5'>模型</b><b class='flag-5'>切換</b><b class='flag-5'>Stage</b><b class='flag-5'>模型</b>概述

    鴻蒙開發Ability Kit程序框架服務FA模型切換Stage模型指導 app和deviceConfig的切換

    為了便于開發者維護應用級別的屬性配置Stage模型將config.json中的app和deviceConfig標簽提取到了app.json5中進行
    的頭像 發表于 06-27 10:01 ?410次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服務</b>:<b class='flag-5'>FA</b><b class='flag-5'>模型</b><b class='flag-5'>切換</b><b class='flag-5'>Stage</b><b class='flag-5'>模型</b><b class='flag-5'>指導</b> app和deviceConfig的<b class='flag-5'>切換</b>

    鴻蒙開發Ability Kit程序框架服務FA模型切換Stage模型指導 module的切換

    FA模型切換Stage模型時,開發者需要將config.json
    的頭像 發表于 06-27 14:16 ?534次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服務</b>:<b class='flag-5'>FA</b><b class='flag-5'>模型</b><b class='flag-5'>切換</b><b class='flag-5'>Stage</b><b class='flag-5'>模型</b><b class='flag-5'>指導</b> module的<b class='flag-5'>切換</b>

    鴻蒙開發Ability Kit程序框架服務:PageAbility切換 組件切換

    FA模型中PageAbility對應Stage模型中的UIAbility,PageAbility切換為UIAbility的方法如下。
    的頭像 發表于 06-28 11:38 ?399次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服務</b>:PageAbility<b class='flag-5'>切換</b> 組件<b class='flag-5'>切換</b>

    鴻蒙開發Ability Kit程序框架服務:ServiceAbility切換 組件切換

    FA模型中的ServiceAbility對應Stage模型中的ServiceExtensionAbility。Stage
    的頭像 發表于 06-28 10:24 ?377次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服務</b>:ServiceAbility<b class='flag-5'>切換</b> 組件<b class='flag-5'>切換</b>

    鴻蒙開發Ability Kit程序框架服務:API切換概述 API切換

    FA模型Stage模型由于線程模型和進程模型差異
    的頭像 發表于 06-28 16:23 ?391次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服務</b>:API<b class='flag-5'>切換</b>概述 API<b class='flag-5'>切換</b>
    主站蜘蛛池模板: 韩日精品 | 国产视频精品久久 | 天天操人人干 | 成人免费看黄页网址大全 | 天天做天天爱夜夜爽女人爽宅 | 一区二区三区在线播放 | 人人草97 | 456性欧美欧美在线视频 | 国产精品久久久久国产精品三级 | 色播在线永久免费视频网站 | 欧美特黄一免在线观看 | 黄色视网站 | 黑人干亚洲| 欧美一级别| 久久精品国产免费看久久精品 | 日本不卡免费新一区二区三区 | 大尺度视频在线观看 | 日本动漫天堂 | 91色蝌蚪| 男人一级片 | 精品久久久久久国产免费了 | 午夜在线播放视频在线观看视频 | 黄网站色视频免费观看 | 国内精品久久久久影院薰衣草 | 日本视频一区在线观看免费 | 午夜视频在线免费看 | 久久精品亚洲青青草原 | 欧美拍拍 | 人人看人人添人人爽 | 人人干操| 性欧美久久 | 色五月丁香五月综合五月 | 丁香六月啪 | 亚洲狠狠97婷婷综合久久久久 | 四虎精品久久 | 精品久久久久久午夜 | 高清一区二区三区 | 国内精品视频 | 福利一区二区在线观看 | 国产免费播放一区二区三区 | 伊人伊成久久人综合网777 |