鴻蒙開發config.json詳解【鴻蒙專題06】

      網友投稿 918 2025-03-31

      上一節我在webview的實現中,用到了幾個文件夾,這是單獨拎出來,做一個介紹,這樣的好處就是可以使你更加容易理解一個應用的開發流程。

      第一個就是config.json

      配置文件“config.json”采用JSON文件格式,其中包含了一系列配置項,每個配置項由屬性和值兩部分構成:

      屬性出現順序不分先后,但是每個屬性最多只允許出現一次。

      每個屬性的值為JSON的基本數據類型(數值、字符串、布爾值、數組、對象或者null類型)

      那我我們來看一下他的這個文件里都包含那些內容,按照我學習小程序的經驗,小程序里有app.json文件,我們就結合小程序來看看他的這里面的東西

      小程序啟動之后首先就是解析app.json,其實鴻蒙也一樣,應用啟動之后,先解析config.json文件。

      config.json分為三個部分:app 、deviceConfig 、module

      也可以通過這個截圖查看,我這里展示的三塊是縮放后的內容,也是為了方便觀察。

      app是整個項目的配置,包含了廠商信息、版本號等。

      deviceConfig:表示應用在設備上的配置信息。

      module:表示整個代碼的配置信息。

      接下來就詳細了解一下

      1.app

      鴻蒙開發config.json詳解【鴻蒙專題06】

      "app": { "package": "com.example.harmonyosdemo", //新建項目時指定的PackageName,而且IDE建議以 com.開頭 "name": ".MyApplication", "mainAbility": "com.example.harmonyosdemo.MainAbility", //根據新建項目時指定的PackageName 的第一個 . 之后的字符串 "version": { //版本 "code": 1, //版本號,目前測試看,系統并不會阻止降級安裝。 "name": "1.0" //版本名 }, "apiVersion": { //依賴的鴻蒙SDK版本 "compatible": 3, //兼容版本 "target": 3 //編譯版本 } },

      bundleName包名,你創建時候的

      vendor,是應用開發廠商的描述,也就是開發公司的名字。我這是這是一個demo,所以是example,后面正式開發的時候記得修改。

      version:版本號,包含:name、code。通常通過檢查code,進行版本升級。

      2.deviceConfig解析

      deviceConfig:應用在設備上配置信息,進程名等等,可以包含default、phone、tablet、tv、car、wearable、liteWearable和smartVision等屬性。default標簽內的配置是適用于所有設備通用,其他設備類型如果有特殊的需求,則需要在該設備類型的標簽下進行配置。

      比如我這里設置的是為了能在http下也可以請求成功,鴻蒙的默認是https訪問模式,如果您的請求網址是http開頭的,請在config.json文件中的deviceConfig下,添加如下設置

      "deviceConfig": { "default": { "network": { "cleartextTraffic": true } } },

      3.module解析

      "module": { //模塊列表,有三個必填的屬性 : package,deviceType,distro "package": "com.example.harmonyosdemo", //模塊的包名 "name": ".Learning", //模塊名稱 "reqCapabilities": [ "video_support" ], "deviceType": [ //目前看是有 "default","tv","wearable",smartVision 。 "tv" ], "distro": { //distro下面都是必填項 "deliveryWithInstall": true, //是否在應用安裝時,安裝此模塊的 hap "moduleName": "entry", "moduleType": "entry" //現在是有 entry,feature,har 三種。 }, "defPermissions": { //其它應用要訪問你的App時需要擁有的權限。 "name": "com.example.harmonyosdemo.DataAbilityShellProvider.PROVIDER", //權限名稱 "grantMode": "user_grant" //user_grant 或者 system_grant }, "reqPermissions": [ //你的應用需要的權限列表,這里寫明后,同樣需要運行時申請。 { "name": "ohos.permission.INTERNET" //舉例:網絡訪問權限。 } ], "abilities": [ //Ability列表 { "skills": [ { "entities": [ "entity.system.home" //在全部應用上面顯示此Ability ], "actions": [ "action.system.home" //默認啟動此Ability ] } ], "orientation": "landscape", //橫屏 "formEnabled": false, //是否支持AbilityForm。 "name": "com.aos.learning.MainAbility", //Ability名稱 "icon": "$media:icon", //Ability圖標 "description": "$string:mainability_description", //Ability描述 "label": "Learning", //Ability標題 "type": "page", //Ability類型 :PageAbility or ServiceAbility or DataAbility "launchType": "standard" //啟動模式,目前支持 standard模式和 singleton模式。 } ] } }

      參考表來自于

      package 包名

      name是hap包的名字,至于什么是HAP,我在后面介紹

      mainAbility表示HAP包的入口ability名稱,可自定義,這樣你后期調試也會簡單

      deviceType表示項目可以在哪些設備上運行。 因為可能有多個設備,所以有個方括號,表示這些值可以寫到一個數組中。如下,你能看懂是那些設備吧,其實這些你應該在創建項目的時候就觀察到。

      "deviceType": [ "phone", "tablet", "tv", "wearable", "car" ],

      distro表示HAP包的描述信息

      deliveryWithInstall 當前hap包是否可以支持隨應用安裝。一般都寫成true。

      moduleName:當前HAP的名稱

      moduleType:表示當前HAP的類型。entry也表示當前的hap是一個主要的模塊,可以單獨安裝并運行

      abilities:代碼中每一個頁面的配置信息。

      HarmonyOS的DevEco Studio支持兩種編輯config.json的方式,分別是代碼編輯視圖和可視化編輯視圖。

      1.代碼視圖

      { "app": { "bundleName": "com.example.harmonyosdemo", "vendor": "example", "version": { "code": 1000000, "name": "1.0.0" } }, "deviceConfig": { "default": { "network": { "cleartextTraffic": true } } }, "module": { "package": "com.example.harmonyosdemo", "name": ".MyApplication", "mainAbility": "com.example.harmonyosdemo.MainAbility", "deviceType": [ "phone", "tablet", "tv", "wearable", "car" ], "distro": { "deliveryWithInstall": true, "moduleName": "entry", "moduleType": "entry", "installationFree": false }, "abilities": [ { "skills": [ { "entities": [ "entity.system.home" ], "actions": [ "action.system.home" ] } ], "orientation": "unspecified", "visible": true, "name": "com.example.harmonyosdemo.MainAbility", "icon": "$media:icon", "description": "$string:mainability_description", "label": "$string:entry_MainAbility", "type": "page", "launchType": "standard" }, { "name": "com.example.harmonyosdemo.DataAbility", "icon": "$media:icon", "description": "$string:dataability_description", "type": "data", "uri": "dataability://com.example.harmonyosdemo.DataAbility" } ], "defPermissions": [ { "name": "com.example.harmonyosdemo.DataAbilityShellProvider.PROVIDER" } ], "reqPermissions": [ { "reason": "", "name": "ohos.permission.INTERNET" } ] } }

      2. 編輯視圖

      總結:

      這里了解了config.json的三個部分,app 、deviceConfig 、module,以及他的兩種編輯方式,大家可以按照自己的需求實現自己想要的。

      參考文檔:應用配置介紹

      HarmonyOS javaScript JSON

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:如何優先啟動空白文檔(啟動項空白)
      下一篇:智能制造的七種形式
      相關文章
      精品久久亚洲中文无码| 亚洲午夜精品一区二区公牛电影院| 亚洲av日韩av无码av| 亚洲av无码精品网站| 欧洲亚洲国产清在高| 国产亚洲精品美女久久久| 亚洲精品国产精品乱码不卡√| 亚洲女同成av人片在线观看| 国产AV无码专区亚洲AV漫画| 国产AV无码专区亚洲AV漫画 | 久久久久亚洲精品无码网址| 亚洲国产成人久久精品99| 亚洲AⅤ视频一区二区三区| 国产精品亚洲小说专区| 无码不卡亚洲成?人片| 亚洲а∨天堂久久精品| 亚洲男人天堂2020| 国产精品亚洲mnbav网站| 久久精品国产亚洲7777| 亚洲色婷婷六月亚洲婷婷6月| 亚洲伊人成无码综合网 | 色噜噜亚洲男人的天堂| 亚洲真人无码永久在线观看| 亚洲精品国产高清在线观看| 久久精品国产亚洲av瑜伽| 亚洲福利中文字幕在线网址| 亚洲日韩涩涩成人午夜私人影院| 久久久久亚洲av成人无码电影| 亚洲中文字幕无码爆乳AV| 亚洲AV综合色区无码一区爱AV| 亚洲久本草在线中文字幕| 亚洲精品成人久久| 色老板亚洲视频免在线观| 最新亚洲人成网站在线观看| 亚洲欧洲久久久精品| 亚洲精品你懂的在线观看| 亚洲综合一区二区国产精品| 亚洲一欧洲中文字幕在线| 亚洲精品国产第一综合99久久| 亚洲国产精品无码久久九九| 亚洲女初尝黑人巨高清|