鸿蒙Next开发之-获取APP缓存大小和清除缓存

认识鸿蒙文件系统

1、文件系统分类

在最新的Core File Kit套件中,按文件所有者的不同。分为如下三类:

  • 应用文件:文件所有者为应用,包括应用安装文件、应用资源文件、应用缓存文件等。
  • 用户文件:文件所有者为登录到该终端设备的用户,包括用户私有的图片、视频、音频、文档等。
  • 系统文件:与应用和用户无关的其它文件,包括公共库、设备文件、系统资源文件等。这类文件普通开发者不需要关注。

如图所示: 在这里插入图片描述

2、访问范围和方式

我们的应用缓存目录,实质是系统在内部存储空间上映射出一个专属应用沙箱目录其中的一部分,它是应用文件目录与一部分系统文件(应用运行必需的少量系统文件)所在的目录组成的集合。

  • 应用可以在应用沙箱目录下保存和处理自己的应用文件;
  • 系统文件及其目录对于应用是只读的;
  • 应用若需访问用户文件,则需要通过特定API同时经过用户的相应授权才能进行(即读写权限申请)。

下图展示了在鸿蒙上,应用可访问的文件范围和方式:

在这里插入图片描述

3、应用文件目录与路径

在这里插入图片描述
如上图所示,这是应用文件的目录结构图。

  1. 一级目录data/:代表应用文件目录。
  2. 二级目录storage/:代表本应用持久化文件目录。
  3. 三级目录el1/、el2/:代表不同文件加密类型。
    • el1,设备级加密区:设备开机后即可访问的数据区。
    • el2,用户级加密区:设备开机后,需要至少一次解锁对应用户的锁屏界面(密码、指纹、人脸等方式或无密码状态)后,才能够访问的加密数据区。(应用如无特殊需要,应将数据存放在el2加密目录下,以尽可能保证数据安全。)
  4. 四级、五级目录:
    • ApplicationContext:可以获取distributedfiles目录或者base下的files、cache、preferences、temp等目录的应用文件路径,应用全局信息可以存放在这些目录下。
    • UIAbilityContext、AbilityStageContext、ExtensionContext:HAP级别应用文件路径(上图中的haps/<module-name>/下的目录)。HAP信息可以存放在这些目录下,存放在此目录的文件会跟随HAP的卸载而删除,不会影响App级别目录下的文件。

获取APP缓存大小

1、缓存目录介绍

  • 目录名:cache
  • Context属性名称:cacheDir
  • 类型:应用缓存文件路径
  • 说明:应用在本设备内部存储上,用于缓存下载的文件或可重新生成的缓存文件的路径,应用cache目录大小超过配额或者系统空间达到一定条件,自动触发清理该目录下文件;用户通过系统空间管理类应用也可能触发清理该目录。应用需判断文件是否仍存在,决策是否需重新缓存该文件。 可以用于保存应用的缓存数据,主要包括离线数据、图片缓存、数据库备份以及临时文件等。此路径下存储的数据可能会被系统自动清理,因此不要存储重要数据。

2、缓存目录路径

  • /data/storage/el1/base/cache
  • /data/storage/el1/base/haps/entry/cache
  • /data/storage/el2/base/cache
  • /data/storage/el2/base/haps/entry/cache

3、获取缓存目录

el1分区获取:

  • 切换到el1加密分区
context.getApplicationContext().area = contextConstant.AreaMode.EL1;
context.area = contextConstant.AreaMode.EL1;
context.getApplicationContext().cacheDir
context.cacheDir
//结果:
/data/storage/el1/base/cache
/data/storage/el1/base/haps/app/cache

  • 切换到el2加密分区
context.getApplicationContext().area = contextConstant.AreaMode.EL2;
context.area = contextConstant.AreaMode.EL2;
context.getApplicationContext().cacheDir
context.cacheDir
//结果:
/data/storage/el2/base/cache
/data/storage/el2/base/haps/app/cache

4、获取缓存大小

import storageStatistics from "@ohos.file.storageStatistics";
const bundleStats = await storageStatistics.getCurrentBundleStats()
return bundleStats.cacheSize

5、清除缓存

static async cleanAppCache(context: Context): Promise<boolean> {
  context.getApplicationContext().area = contextConstant.AreaMode.EL1;
  context.area = contextConstant.AreaMode.EL1;
  const el1AppCacheDir = context.getApplicationContext().cacheDir
  const el1HapCacheDir = context.cacheDir
  context.getApplicationContext().area = contextConstant.AreaMode.EL2;
  context.area = contextConstant.AreaMode.EL2;
  const el2AppCacheDir = context.getApplicationContext().cacheDir
  const el2HapCacheDir = context.cacheDir

  const task = [
    AppInfoUtils.clearCacheTask(el1AppCacheDir),
    AppInfoUtils.clearCacheTask(el1HapCacheDir),
    AppInfoUtils.clearCacheTask(el2AppCacheDir),
    AppInfoUtils.clearCacheTask(el2HapCacheDir)
  ]

  await Promise.all(task)
  return true
}

private static clearCacheTask(dir: string): Promise<boolean> {
  return new Promise((resolve) => {
    fileIo.access(dir).then((exist: boolean) => {
      if (exist) {
        fileIo.rmdir(dir)
      }
      resolve(true)
    })
  })
}

怎样学习鸿蒙?

首先必学的是开发语言 ArkTS,这是重中之重,然后就是ArkUI声明式UI开发、Stage模型、网络/数据库管理、分布式应用开发、进程间通信与线程间通信技术、OpenHarmony多媒体技术……。中间还有许多的知识点,都整理成思维导图来分享给大家~
在这里插入图片描述
此外,小编精心准备了一份联合鸿蒙官方发布笔记整理收纳的《鸿蒙开发学习笔记》,内容包含ArkTS、ArkUI、Web开发、应用模型、资源分类…等知识点。

【有需要的小伙伴,可以扫描下方二维码免费领取!!!】

快速入门

  • 开发准备
  • 构建第一个ArkTS应用(Stage模型)
  • 构建第一个ArkTS应用(FA模型)
  • 构建第一个JS应用(FA模型)
    在这里插入图片描述

开发基础知识

  • 应用程序包基础知识
  • 应用配置文件(Stage模型)
  • 应用配置文件概述(FA模型)
    在这里插入图片描述

资源分类与访问

  • 资源分类与访问
  • 创建资源目录和资源文件
  • 资源访问
    在这里插入图片描述

学习ArkTs语言

  • 初识ArkTS语言
  • 基本语法
  • 状态管理
  • 其他状态管理
  • 渲染控制
    在这里插入图片描述

基于ArkTS声明式开发范式

  • UI开发(ArkTS声明式开发范式)概述
  • 开发布局
  • 添加组件
  • 显示图片
  • 使用动画
  • 支持交互事件
  • 性能提升的推荐方法

在这里插入图片描述

兼容JS的类Web开发范式

  • 概述
  • 框架说明
  • 构建用户界面
  • 常见组件开发指导
  • 动效开发指导
  • 自定义组件
    在这里插入图片描述

Web组件

  • 概述
  • 设置基本属性和事件
  • 并发
  • 窗口管理
  • WebGL
  • 媒体
  • 安全
  • 网络与连接
  • 电话服务
  • 数据管理

  • 在这里插入图片描述

应用模型

  • 概述
  • Stage模型开发指导
  • FA模型开发指导
    在这里插入图片描述
2024完整鸿蒙学习资料领取方式:扫描下方二维码即可
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值