五、系统安全
前面说了这么多分布式,用户做的事情在多个设备上这么花式切换,安全问题怎么保证呢?
HarmonyOS 的安全标准:“正确的人,通过正确的设备,正确地使用数据。”

1.正确的人如何确定?
零信任:每次跨设备访问,都要进行身份认证。

协同认证:让高安全等级的设备协助低安全的等级的设备完成安全认证,比如网页可认证 IDE。

2.正确的设备
安全启动:保证运行的应用是完整并未经篡改的。
设备证书认证:安全设备可预置证书。

3.正确的使用数据
数据生成:数据从一生成就开始为其设置保护等级,存储使用
传输都受保护等级管理。
数据使用:敏感数据只能在可信任环境中使用。
数据传输:多设备是可信并且建立的信任关系并验证后,才可
进行数据传输。

六、鸿蒙应用基础概念
应用发布形式:
以 APP Pack 的形式发布,一个 Pack 由多个 HAP(Ability Package)和描述每个 HAP 属性的 pack.info 组成。
一个 HAP 由代码,资源,第三方库和配置文件组成。

模块类型:
entry:主模块,应用中有且仅有一个,可单独运行。
feature:动态特性模块,模块中包含 ablity 才可独立运行。

HAP 包中的文件目录类型:
库文件:lib 目录下。
资源文件:resource 目录下。
配置文件:config.json,声明应用的全局配置信息,版本号,厂商等,具体设备的配置信息和 ability 属性,以及所需权限。
pack.info:包含 HAP 属性说明信息。

七、配置文件详解:
前面说了配置文件 config.json 里一共包含三部分,这三部分缺一不可。

1.app:应用全局配置信息(字段含义我都写在了注释里)
示例:

"app": {
    //包名
    "bundleName": "com.huawei.hiworld.example", 
    //开发商
    "vendor": "huawei", 
    //版本
    "version": {
        //开发版号
        "code": 2,
        //对外版号
        "name": "2.0"
    }
    //HarmonyOS  API 版本
    "apiVersion": {
        //最小适用版本
        "compatible": 3, 
        //目标版本
        "target": 3
    }
}

2.deviceConfig:包含具体设备的应用配置信息
示例:

 "deviceConfig": {
    //default是所有设备通用的配置信息,如果要对特定的设//备设置需要写明,比如car是车机,tv是智慧屏
    "default": {
        //该应用的所有 Ability //都运行在这个进程中(手机不可用)
        "process": "com.huawei.hiworld.example", 
        //应用可未解锁直接启动(手机不可用)
        "directLaunch": false, 
        //是否可备份(手机不可用)
        "supportBackup": false,
        //网络配置
        "network": {
            //支持明文网络流量
            "usesCleartext": true, 
            //网络安全配置
            "securityConfig": {
                //网域范围
                "domainSettings": {
                    //网域范围是否可用明文流量
                    "cleartextPermitted": true, 
                    //域名配置
                    "domains": [
                        {   
                            //是否有子域名
                            "subDomains": true, 
                            //域名名称
                            "name": "example.ohos.com"
                        }
                    ]
                }
            }
        }
    }
}

3.moudle:HAP 包配置信息。
示例:

"module": {
    //HAP包名
    "package": "com.example.myapplication.entry", 
    //HAP类名
    "name": ".MyOHOSAbilityPackage", 
    //HAP描述(手机不可用)
    "description": "$string:description_application", 
    //支持运行模式(手机不可用)
    "supportedModes": [
        //驾驶(手机不可用)
        "drive"
    ], 
    ], 
    //ability的运行设备
    "deviceType": [
        "car"
    ], 
    //发布描述(手机不可用)
    "distro": {
        //当前HAP是否随应用安装
        "deliveryWithInstall": true, 
        //当前HAP名称
        "moduleName": "ohos_entry", 
        //当前HAP类型(entry或feature)
        "moduleType": "entry"
    }, 
    //模块内所有的ability
    "abilities":  [
    {
        //ability名称
        "name": ".MainAbility", 
        //ability描述
        "description":
        "$string:description_main_ability", 
        //ability图标索引
        "icon": "$media:hiworld.png", 
        //ability对用户显示的名称
        "label": "HiMusic", //表示ability的类别,page表示是FA,用于与用户交//互;service表示后台运行的任务;data表示提供数//据访问
        "type": "page", 
        //是否提供form能力
        "formEnabled": false, 
        //ability启动模式,standard:一般场景;singleton
        //:ability只能有一个实例,如全局唯一性的:来电 //界面
        "launchType": "standard", 
        //横竖屏显示,unspecified系统自动判断。
        "orientation": "unspecified", 
        //其他ability调用此ability时需要的权限
        "permissions": [
        ], 
        //是否可被其他ability调用
        "visible": false, 
        //能够接收的intent特征
        "skills": [
            {
                //能够接收intent的action值
                "actions": [
                    "action.system.home"
                ], 
                //能够接收intent的ability类别
                "entities": [
                    "entity.system.home"
                ]
            }
        ], 
        //Ability 关注的系统配置集合
        "configChanges": [
            "locale", 
            "layout", 
            "fontSize", 
            "orientation"
        ], 
        //Ability 是否支持在设备未解锁状态直接启动
        "directLaunch": false, 
        //应用或者 Ability 的进程名
        "process": "string", 
        //后台服务的类型
        "backgroundModes": [
            //数据传输
            "dataTransfer", 
            //音频输出
            "audioPlayback", 
            //音频输入
            "audioRecording", 
            //小窗口播放视频
            "pictureInPicture", 
            //视频电话
            "voip", 
            //定位、导航
            "location", 
            //蓝牙扫描
            "bluetoothInteraction", 
            //wifi扫描
            "wifiInteraction", 
            //录屏
            "screenFetch"
        ], 
    }
], 
    //应用的快捷方式
    "shortcuts": [
    {   
        //快捷方式的ID
        "shortcutId": "id",
        //快捷方式标签信息
        "label": "$string:shortcut",
        //intent信息集合
        "intents": [
            {
                //快捷方式所在包名
                "targetBundle": "com.huawei.hiworld.himusic",
                //快捷方式目标类名
                "targetClass": "com.huawei.hiworld.himusic.entry.MainAbility"
            }
        ]
    }
],
    //JS模块集合
    "js": [
        ...
    ], 
    //运行时向系统申请的权限
    "reqPermissions": [
        ...
    ], 
    //用户需要申请的权限
    "defPermissions": [
        ...
    ]
}


↙↙↙阅读原文可查看相关链接,并与作者交流