HarmonyOS Next开发学习手册——应用文件&沙箱目次

宁睿  金牌会员 | 2024-8-21 06:53:23 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 567|帖子 567|积分 1709

概述

应用文件:文件全部者为应用,包括应用安装文件、应用资源文件、应用缓存文件等。


  • 设备上应用所利用及存储的数据,以文件、键值对、数据库等情势生存在一个应用专属的目次内。该专属目次我们称为“应用文件目次”,该目次下全部数据以差别的文件格式存放,这些文件即应用文件。
  • “应用文件目次”与一部门体系文件(应用运行必须利用的体系文件)地点的目次构成了一个集合,该集合称为“ 应用沙箱目次 ”,代表应用可见的全部目次范围。因此“应用文件目次”是在“应用沙箱目次”内的。
  • 体系文件及其目次对于应用是只读的;应用仅能生存文件到“ 应用文件目次 ”下,根据目次的利用规范和注意事项来选择将数据生存到差别的子目次中。
下文将详细先容应用沙箱、应用文件目次、应用文件访问与管理、应用文件分享等相关内容。
应用沙箱目次

应用沙箱是一种以安全防护为目的的隔离机制,制止数据受到恶意路径穿越访问。在这种沙箱的保护机制下,应用可见的目次范围即为“应用沙箱目次”。


  • 对于每个应用,体系会在内部存储空间映射出一个专属的“应用沙箱目次”,它是“ 应用文件目次 ”与一部门体系文件(应用运行必须的少量体系文件)地点的目次构成的集合。
  • 应用沙箱限定了应用可见的数据范围。在“应用沙箱目次”中,应用仅能看到自己的应用文件以及少量的体系文件(应用运行必须的少量体系文件)。因此,本应用的文件也不为其他应用可见,从而保护了应用文件的安全。
  • 应用可以在“应用文件目次”下生存和处理自己的应用文件;体系文件及其目次对于应用是只读的;而应用若需访问 用户文件 ,则必要通过特定API同时经过用户的相应授权才能进行。
下图展示了应用沙箱下,应用可访问的文件范围和方式。
图1 应用沙箱文件访问关系图

应用沙箱目次与应用沙箱路径

在应用沙箱保护机制下,应用无法获知除自身应用文件目次之外的其他应用或用户的数据目次位置及存在。同时,全部应用的目次可见范围均经过权限隔离与文件路径挂载隔离,形成了独立的路径视图,屏蔽了实际物理路径:


  • 如下图所示,在普通应用(也称三方应用)视角下,不仅可见的目次与文件数量限定了范围,并且可见的目次与文件路径也与体系历程等其他历程看到的差别。我们将普通应用视角下看到的“应用沙箱目次”下某个文件或某个具体目次的路径,称为“应用沙箱路径”。
  • 开发者在应用开发调试时,大概必要向应用沙箱下推送一些文件以期望在应用内访问或测试。可以通过DevEco Studio向应用安装路径中放入目的文件,详见 应用安装资源访问 。
  • 实际物理路径与沙箱路径并非1:1的映射关系,沙箱路径总是少于体系历程视角可见的物理路径。部门调试历程视角下的物理路径在对应的应用沙箱目次下没有对应路径。
图2 应用沙箱路径(差别权限与脚色的历程下可见的文件路径差别)

应用文件目次与应用文件路径

如前文所述,“应用沙箱目次”内分为两类:应用文件目次和体系文件目次。
体系文件目次对应用的可见范围由HarmonyOS体系预置,开发者无需关注。
在此主要先容应用文件目次,如下图所示。应用文件目次下某个文件或某个具体目次的路径称为应用文件路径。应用文件目次下的各个文件路径,具备差别的属性和特性。
图3 应用文件目次结构图

   说明
  

  • 禁止直接利用上图中四级目次之前的目次名构成的路径字符串,否则大概导致后续应用版本因应用文件路径变革导致不兼容问题。
  • 应通过Context属性获取应用文件路径,包括但不限于上图中绿色配景的路径。 Context上下文获取及上述应用文件路径的获取,详见 应用上下文Context 。

  • 一级目次data/:代表应用文件目次。
  • 二级目次storage/:代表本应用长期化文件目次。
  • 三级目次el1/、el2/:代表差别文件加密类型。

    • el1,设备级加密区:设备开机后即可访问的数据区。
    • el2,用户级加密区:设备开机后,必要至少一次解锁对应用户的锁屏界面(暗码、指纹、人脸等方式或无暗码状态)后,才能够访问的加密数据区。

应用如无特殊必要,应将数据存放在el2加密目次下,以尽大概包管数据安全。但是对于某些场景,一些应用文件必要在用户解锁前就可被访问,比方时钟、闹铃、壁纸等,此时应用必要将这些文件存放到设备级加密区(el1)。切换应用文件加密类型目次的方法请参见获取和修改加密分区。

  • 四级、五级目次:
通过ApplicationContext可以获取distributedfiles目次或base下的files、cache、preferences、temp等目次的应用文件路径,应用全局信息可以存放在这些目次下。
通过UIAbilityContext、AbilityStageContext、ExtensionContext可以获取HAP级别应用文件路径。HAP信息可以存放在这些目次下,存放在此目次的文件会跟随HAP的卸载而删除,不会影响App级别目次下的文件。在开发态,一个应用包罗一个或者多个HAP,详见 Stage模型应用程序包结构 。
应用文件路径具体说明及生命周期如下表所示。
表1 应用文件路径详细说明
目次名Context属性名称类型说明bundlebundleCodeDir安装文件路径应用安装后的App的HAP资源包地点目次;随应用卸载而清理。
不能拼接路径访问资源文件,请利用 资源管理接口 访问资源。
可以用于存储应用的代码资源数据,主要包括应用安装的HAP资源包、可重复利用的库文件以及插件资源等。此路径下存储的代码资源数据可以被用于动态加载。baseNA本设备文件路径应用在本设备上存放长期化数据的目次,子目次包罗files/、cache/、temp/和haps/;随应用卸载而清理。databasedatabaseDir数据库路径应用在el2加密条件下存放通太过布式数据库服务操纵的文件目次;随应用卸载而清理。
仅用于生存应用的私有数据库数据,主要包括数据库文件等。此路径下仅适用于存储分布式数据库相关文件数据。distributedfilesdistributedFilesDir分布式文件路径应用在el2加密条件下存放分布式文件的目次,应用将文件放入该目次可分布式跨设备直接访问;随应用卸载而清理。
可以用于生存应用分布式场景下的数据,主要包括应用多设备共享文件、应用多设备备份文件、应用多设备群组协助文件。此路径下存储这些数据,使得应用更加适合多设备利用场景。filesfilesDir应用通用文件路径应用在本设备内部存储上通用的存放默认恒久生存的文件路径;随应用卸载而清理。
可以用于生存应用的任何私有数据,主要包括用户长期性文件、图片、媒体文件以及日志文件等。此路径下存储这些数据,使得数据保持私有、安全且长期有用。cachecacheDir应用缓存文件路径应用在本设备内部存储上用于缓存下载的文件或可重新天生的缓存文件的路径,应用cache目次大小超过配额或者体系空间达到肯定条件,自动触发清理该目次下文件;用户通过体系空间管理类应用也大概触发清理该目次。应用需判断文件是否仍存在,决策是否需重新缓存该文件。
可以用于生存应用的缓存数据,主要包括离线数据、图片缓存、数据库备份以及临时文件等。此路径下存储的数据大概会被体系自动清理,因此不要存储重要数据。preferencespreferencesDir应用首选项文件路径应用在本设备内部存储上通过数据库API存储配置类或首选项的目次;随应用卸载而清理。详见 通过用户首选项实现数据长期化 。可以用于生存应用的首选项数据,主要包括应用首选项文件以及配置文件等。此路径下仅适用于存储小量数据。temptempDir应用临时文件路径应用在本设备内部存储上仅在应用运行期间产生和必要的文件,应用退出后即清理。
可以用于生存应用的临时天生的数据,主要包括数据库缓存、图片缓存、临时日志文件、以及下载的应用安装包文件等。此路径下存储利用后即可删除的数据。 应用沙箱路径和真实物理路径的对应关系

在应用沙箱路径下读写文件,经过映射转换,实际读写的是真实物理路径中的应用文件,应用沙箱路径与真实物理路径对应关系如下表所示。
此中当前固定为100,为moduleName-extensionName。应用是否以Extension独立沙箱运行可参考 ExtensionAbility组件 。
应用沙箱路径物理路径/data/storage/el1/bundle应用安装包目次:
/data/app/el1/bundle/public//data/storage/el1/base应用el1级别加密数据目次:
- 非独立沙箱运行的应用:/data/app/el1//base/
- 以独立沙箱运行的Extension应用: /data/app/el1//base/+extension-+/data/storage/el2/base应用el2级别加密数据目次:
- 非独立沙箱运行的应用:/data/app/el2//base/
- 以独立沙箱运行的Extension应用: /data/app/el2//base/+extension-+/data/storage/el1/database应用el1级别加密数据库目次:
- 非独立沙箱运行的应用:/data/app/el1//database/
- 以独立沙箱运行的Extension应用:/data/app/el1//database/+extension-+/data/storage/el2/database应用el2级别加密数据库目次:
- 非独立沙箱运行的应用:/data/app/el2//database/
- 以独立沙箱运行的Extension应用:/data/app/el2//database/+extension-+/data/storage/el2/distributedfiles/mnt/hmdfs//account/merge_view/data/ 鸿蒙全栈开发全新学习指南

有很多小伙伴不知道学习哪些鸿蒙开发技术?不知道必要重点把握哪些鸿蒙应用开发知识点?而且学习时频繁踩坑,最终浪费大量时间。以是要有一份实用的鸿蒙(HarmonyOS NEXT)学习路线与学习文档用来跟着学习黑白常有必要的。
针对一些列因素,整理了一套纯血版鸿蒙(HarmonyOS Next)全栈开发技术的学习路线,包罗了鸿蒙开发必把握的焦点知识要点,内容有(ArkTS、ArkUI开发组件、Stage模型、多端部署、分布式应用开发、WebGL、元服务、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、OpenHarmony驱动开发、体系定制移植等等)鸿蒙(HarmonyOS NEXT)技术知识点。
本路线共分为四个阶段:

第一阶段:鸿蒙初中级开发必备技能


第二阶段:鸿蒙南北双向高工技能底子:gitee.com/MNxiaona/733GH


第三阶段:应用开发中高级就业技术


第四阶段:全网首发-工业级南向设备开发就业技术:gitee.com/MNxiaona/733GH


《鸿蒙 (Harmony OS)开发学习手册》(共计892页)

如何快速入门?

1.基本概念
2.构建第一个ArkTS应用
3.……

开发底子知识:gitee.com/MNxiaona/733GH

1.应用底子知识
2.配置文件
3.应用数据管理
4.应用安全管理
5.应用隐私保护
6.三方应用调用管控机制
7.资源分类与访问
8.学习ArkTS语言
9.……

基于ArkTS 开发

1.Ability开发
2.UI开发
3.公共变乱与通知
4.窗口管理
5.媒体
6.安全
7.网络与链接
8.电话服务
9.数据管理
10.配景任务(Background Task)管理
11.设备管理
12.设备利用信息统计
13.DFX
14.国际化开发
15.折叠屏系列
16.……

鸿蒙开发口试真题(含参考答案):gitee.com/MNxiaona/733GH


鸿蒙入门教学视频:


美团APP实战开发教学:gitee.com/MNxiaona/733GH


写在末了



  • 假如你觉得这篇内容对你还蛮有资助,我想邀请你帮我三个小忙:
  • 点赞,转发,有你们的 『点赞和评论』,才是我创造的动力。
  • 关注小编,同时可以期待后续文章ing

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

宁睿

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表