日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

App

HarmonyOS的應用軟件包以APP Pack(Application Package)形式發布,它是由一個或多個HAP(HarmonyOS Ability Package)以及描述每個HAP屬性的pack.info組成。HAP是Ability的部署包,HarmonyOS應用代碼圍繞Ability組件展開。

一個HAP是由代碼、資源、第三方庫及應用配置文件組成的模塊包,可分為entry和feature兩種模塊類型,如圖1所示。

  • entry:應用的主模塊。一個APP中,對于同一設備類型必須有且只有一個entry類型的HAP,可獨立安裝運行。
  • feature:應用的動態特性模塊。一個APP可以包含一個或多個feature類型的HAP,也可以不含。只有包含Ability的HAP才能夠獨立運行。

圖1 APP邏輯視圖

HarmonyOS應用基礎知識

 

Ability

Ability是應用所具備的能力的抽象,一個應用可以包含一個或多個Ability。Ability分為兩種類型:FA(Feature Ability)和PA(Particle Ability)。FA/PA是應用的基本組成單元,能夠實現特定的業務功能。FA有UI界面,而PA無UI界面。

庫文件

庫文件是應用依賴的第三方代碼形式,存放在libs目錄,是.so文件。

資源文件

應用的資源文件(字符串、圖片、音頻等)存放于resources目錄下,便于開發者使用和維護,詳見資源文件分類。

配置文件

配置文件 (config.json) 是應用的Ability信息,用于聲明應用的Ability,以及應用所需權限等信息,詳見應用配置文件。

pack.info

描述應用軟件包中每個HAP的屬性,由IDE編譯生成,應用市場根據該文件進行拆包和HAP的分類存儲。HAP的具體屬性包括:

  • delivery-with-install: 用于標識該HAP是否需要在主動安裝時進行安裝。
  • name:HAP文件名。
  • module-type:模塊類型,entry或feature。
  • device-type:用于標識支持該HAP運行的設備類型。

應用配置文件

簡介

應用的每個HAP的根目錄下都存在一個“config.json”配置文件,主要涵蓋以下三個方面:

  • 應用的全局配置信息,包含應用的包名、生產廠商、版本號等基本信息。
  • 應用在具體設備上的配置信息。
  • HAP包的配置信息,包含每個Ability必須定義的基本屬性(如包名、類名、類型以及Ability提供的能力),以及應用訪問系統或其他應用受保護部分所需的權限等。

文件約定

配置文件“config.json”采用JSON文件格式,由屬性和值兩部分構成:

  • 屬性屬性出現順序不分先后,且每個屬性最多只允許出現一次。
  • 每個屬性的值為JSON的基本數據類型(數值、字符串、布爾值、數組、對象或者null類型)。如果屬性值需要引用資源文件,可參見資源文件。

配置文件的元素

此部分提供“config.json”文件中所有屬性的詳細解釋。

配置文件的內部結構

應用的配置文件“config.json”中由“app”、“deviceConfig”和“module”三個部分組成,缺一不可。配置文件的內部結構說明參見表1。

表1 配置文件的內部結構說明

HarmonyOS應用基礎知識

 

app對象的內部結構

app對象包含應用的全局配置信息,內部結構說明參見表2。

表2 app對象的內部結構說明

HarmonyOS應用基礎知識

 

app示例:

"app": {
    "bundleName": "com.huawei.hiworld.example", 
    "vendor": "huawei", 
    "version": {
        "code": 2, 
        "name": "2.0"
    }    "apiVersion": {
        "compatible": 3, 
        "target": 3
    }}

deviceConfig對象的內部結構

deviceConfig包含在具體設備上的應用配置信息,可以包含default、car、tv、wearable、liteWearable、smartVision等屬性。default標簽內的配置是適用于所有設備通用,其他設備類型如果有特殊的需求,則需要在該設備類型的標簽下進行配置。內部結構說明參見表3。

表3 deviceConfig對象的內部結構說明

HarmonyOS應用基礎知識

 

default、car、tv、wearable、liteWearable、smartVision等對象的內部結構說明,可參見表4。

表4 default/car/tv/wearable等對象的內部結構說明

HarmonyOS應用基礎知識

 

表5 network對象的內部結構說明

HarmonyOS應用基礎知識

 

表6 securityConfig對象的內部結構說明

HarmonyOS應用基礎知識

 

deviceConfig示例:

 "deviceConfig": {
    "default": {
        "process": "com.huawei.hiworld.example", 
        "directLaunch": false, 
        "supportBackup": false,
        "network": {
            "usesCleartext": true, 
            "securityConfig": {
                "domainSettings": {
                    "cleartextPermitted": true, 
                    "domains": [
                        {
                            "subDomains": true, 
                            "name": "example.ohos.com"
                        }
                    ]
                }
            }
        }
    }
}

module對象的內部結構

module對象包含HAP包的配置信息,內部結構說明參見表7。

表7 module對象的內部結構說明

HarmonyOS應用基礎知識

 

module示例:

"module": {
    "package": "com.example.myapplication.entry", 
    "name": ".MyOHOSAbilityPackage", 
    "description": "$string:description_application", 
    "supportedModes": [
        "drive"
    ],     ],     "deviceType": [
        "car"
    ],     "distro": {
        "deliveryWithInstall": true, 
        "moduleName": "ohos_entry", 
        "moduleType": "entry"
    },     "abilities": [
        ...    ],     "shortcuts": [
        ...    ],    "js": [
        ...    ],     "reqPermissions": [
        ...    ],     "defPermissions": [
        ...    ]}

表8 distro對象的內部結構說明

HarmonyOS應用基礎知識

 

distro示例:

"distro": {
    "deliveryWithInstall": true, 
    "moduleName": "ohos_entry", 
    "moduleType": "entry"
} 

表9 abilities對象的內部結構說明

HarmonyOS應用基礎知識

 


HarmonyOS應用基礎知識

 


HarmonyOS應用基礎知識

 


HarmonyOS應用基礎知識

 


HarmonyOS應用基礎知識

 

abilities示例:

"abilities": [
    {        "name": ".MainAbility", 
        "description": "$string:description_main_ability", 
        "icon": "$media:hiworld.png", 
        "label": "HiMusic", 
        "type": "page", 
        "formEnabled": false, 
        "launchType": "standard", 
        "orientation": "unspecified", 
        "permissions": [
        ],         "visible": false, 
        "skills": [
            {                "actions": [
                    "action.system.home"
                ],                 "entities": [
                    "entity.system.home"
                ]            }        ],         "configChanges": [
            "locale", 
            "layout", 
            "fontSize", 
            "orientation"
        ],         "directLaunch": false, 
        "process": "string", 
        "backgroundModes": [
            "dataTransfer", 
            "audioPlayback", 
            "audioRecording", 
            "pictureInPicture", 
            "voip", 
            "location", 
            "bluetoothInteraction", 
            "wifiInteraction", 
            "screenFetch"
        ],     }]

表10 skills對象的內部結構說明

HarmonyOS應用基礎知識

 

skills示例:

"skills": [
    {        "actions": [
            "action.system.home"
        ],         "entities": [
            "entity.system.home"
        ],        "uris": [
            {                 "scheme": "http",
                 "host": "www.xxx.com",
                 "port": "8080",
                 "path": "query/student/name",
                 "type": "text"
             }         ]    }]

表11 form對象的內部結構說明

HarmonyOS應用基礎知識

 

form示例:

"form": {
    "formEntity": [
        "homeScreen", 
        "searchbox"
    ], 
    "minHeight": 100, 
    "maxHeight": 200, 
    "minWidth": 100, 
    "maxWidth": 200
}

表12 js對象的內部結構說明

HarmonyOS應用基礎知識

 

js示例:

"js": [
    {        "name": "default", 
        "pages": [            
            "pages/index/index",
            "pages/detail/detail"
        ],                 "window": {
            "designWidth": 750,
            "autoDesignWidth": false
        }    }]

表13 shortcuts對象的內部結構說明

HarmonyOS應用基礎知識

 

示例:

"shortcuts": [
    {        "shortcutId": "id",
        "label": "$string:shortcut",
        "intents": [
            {                "targetBundle": "com.huawei.hiworld.himusic",
                "targetClass": "com.huawei.hiworld.himusic.entry.MainAbility"
            }        ]    }]

配置文件示例

以JSON文件為config.json的一個簡單示例,該示例的應用聲明為三個Ability。

{
    "app": {
        "bundleName": "com.huawei.hiworld.himusic",
        "vendor": "huawei",
        "version": {
            "code": 2, 
            "name": "2.0"
        }        "apiVersion": {
            "compatible": 3, 
            "target": 3
        }    },    "deviceConfig": {
        "default": {
        }    },    "module": {
        "package": "com.huawei.hiworld.himusic.entry",
        "name": ".MainApplication",
        "supportedModes": [
            "drive"
        ],        "distro": {
            "moduleType": "entry",
            "deliveryWithInstall": true,
            "moduleName": "hap-car"
        },        "deviceType": [
            "car"
        ],         "abilities": [
            {                "name": ".MainAbility",
                "description": "himusic main ability",
                "icon": "$media:ic_launcher",
                "label": "HiMusic",
                "launchType": "standard",
                "orientation": "unspecified",
                "visible": true,
                "skills": [
                    {                        "actions": [
                            "action.system.home"
                        ],                        "entities": [
                            "entity.system.home"
                        ]                    }                ],                "type": "page",
                "formEnabled": false
            },            {                "name": ".PlayService",
                "description": "himusic play ability",
                "icon": "$media:ic_launcher",
                "label": "HiMusic",
                "launchType": "standard",
                "orientation": "unspecified",
                "visible": false,
                "skills": [
                    {                        "actions": [
                            "action.play.music",
                            "action.stop.music"
                        ],                        "entities": [
                            "entity.audio"
                        ]                    }                ],                "type": "service",
                "formEnabled": false,
                "backgroundModes": [
                    "audioPlayback"
                ]            },            {                "name": ".UserADataAbility",
                "type": "data",
                "uri": "dataability://com.huawei.hiworld.himusic.UserADataAbility",
                "visible": true
            }        ],        "reqPermissions": [{
                "name": "ohos.permission.DISTRIBUTED_DATASYNC",
                "reason": "",
                "usedScene": {
                    "ability": [
                        "com.huawei.hiworld.himusic.entry.MainAbility",
                        "com.huawei.hiworld.himusic.entry.PlayService"
                    ],                    "when": "inuse"
                }            }        ]    }}

分享到:
標簽:HarmonyOS
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定