八、资源文件目录
资源文件(字符串,图片,音频等)统一存放在 resource 目录下。
resource 目录下默认有两个子目录:
rawfile 和 base。
区别是 rawfile 可自由创建多级子目录,base 目录的子目录则必须
符合命名规范。

除此之外还有由开发者自行创建的限定词目录。
限定词目录的创建目的是因为 resource 可以自动匹配与设备状态相符的限定词目录。

限定词命名规则:
语言文字国家或地区 - 横竖屏 - 设备类型 - 屏幕密度
注:开发者可以根据自己需求选择其中一类或几类使用。
注 2:限定词取值:https://www.w3cschool.cn/harmonyos/harmonyos-tvx63bwx.html

base 和限定词目录下可资源组目录:
element:存放数据变量
示例:

{
    "boolean":[
        {
            "name":"boolean_1",
            "value":true
        },
        {
            "name":"boolean_ref",
            "value":"$boolean:boolean_1"
        }
    ]
}

media:图片,音频视频
animation:动画
layout:布局
graphic:可绘制资源
profile:其他

九、应用数据管理
1.本地应该数据管理:
支持单设备的表数据存读。
2.分布式数据:
通过调用分布式数据接口,可将数据保存至分布式数据库中,
通过账号和应用标识对不同应用的数据进行隔离。
3.分布式文件:
每个设备上创建的应用文件都可被其他设备读取,因为每台设置上都会存储一份全量的文件路径,并可进行搜索。

十、应该权限管理
鸿蒙中所有应用均在应用泥沙盒内运行,应用只能访问有限的系统资源,系统管理应用对资源的权限。
应用权限由接口提供方(ability),接口使用方(应用),和系统(云侧和应用端侧)和用户共同参与,避免滥用。

1.权限声明:
应用或使用的三方库需要的权限需要在 config.json 中使用 “reqPermissions” 进行声明,不声明无法使用。
示例:

"reqPermissions": [
           {
               "name": "ohos.permission.CAMERA",
               "reason": "$string:permreason_camera",
               "usedScene": 
               {
                   "ability": ["com.mycamera.Ability", "com.mycamera.AbilityBackground"],
                   "when": "always"
               }
           },{
           ...
           }
       ]

2.动态权限申请:
需要应用在运行时主动调用系统动态申请权限的接口,系统弹窗由用户授权。
3.自定义权限:
一般情况下,系统已定义的权限已经可以满足应用的基本需要,如有特殊需要可通过 config.json 中的 defPermissions 来定义新的权限。
4.权限保护方法:
保护 ability:在 config.json 里对应的 Ability 中配置 permissions,可指定有相应权限的应用才能访问此 ability。
保护 API:ability 对外提供的数据,可针对不同对调用者进行鉴权。

权限使用原则:
1.只申请跟提供功能相关的权限;尽量使用不需要权限的操作来实现功能。
2.所需权限均要在 config.json 中声明。
3.敏感权限让用户知晓。
4.用户只在触发接近的功能时才提示请求授权。
5.用户未授权禁止提供给其他用户使用。
6.以包名作开头命名权限,防止跟系统权限重名。

十一、应用隐私保护
应用上架时,鸿蒙会根据隐私保护规则对应用进行校验,不满足条件无法上架。
数据使用原则:
1.勿要收集与应用提供服务无关的用户数据
2.应用申请应给予用户足够的提示
3.应用密钥及用户敏感数据应存在私有目录
4.应用开发的数据应优先在本地处理,本地无法处理才能上传至云服务


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