鴻蒙開發config.json詳解【鴻蒙專題06】
上一節我在webview的實現中,用到了幾個文件夾,這是單獨拎出來,做一個介紹,這樣的好處就是可以使你更加容易理解一個應用的開發流程。
第一個就是config.json
配置文件“config.json”采用JSON文件格式,其中包含了一系列配置項,每個配置項由屬性和值兩部分構成:
屬性出現順序不分先后,但是每個屬性最多只允許出現一次。
每個屬性的值為JSON的基本數據類型(數值、字符串、布爾值、數組、對象或者null類型)
那我我們來看一下他的這個文件里都包含那些內容,按照我學習小程序的經驗,小程序里有app.json文件,我們就結合小程序來看看他的這里面的東西
小程序啟動之后首先就是解析app.json,其實鴻蒙也一樣,應用啟動之后,先解析config.json文件。
config.json分為三個部分:app 、deviceConfig 、module
也可以通過這個截圖查看,我這里展示的三塊是縮放后的內容,也是為了方便觀察。
app是整個項目的配置,包含了廠商信息、版本號等。
deviceConfig:表示應用在設備上的配置信息。
module:表示整個代碼的配置信息。
接下來就詳細了解一下
1.app
"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小時內刪除侵權內容。