当前位置: 首页 > news >正文

HarmonyOS应用开发学习笔记 应用上下文Context 获取文件夹路径

1、 HarmoryOS Ability页面的生命周期
2、 @Component自定义组件
3、HarmonyOS 应用开发学习笔记 ets组件生命周期
4、HarmonyOS 应用开发学习笔记 ets组件样式定义 @Styles装饰器:定义组件重用样式 @Extend装饰器:定义扩展组件样式
5、HarmonyOS 应用开发学习笔记 state状态管理概述
6、HarmonyOS应用开发学习笔记 包名、icon图标,应用名修改 UIAbility组件介绍、UIAbility启动模式、UIAbility组件基本用法
7、HarmonyOS应用开发学习笔记 UIAbility组件与UI的数据同步 EventHub、globalThis
8、HarmonyOS应用开发学习笔记 UIAbility组件间交互 UIAbility启动,页面跳转结果回调

概叙

Context是应用中对象的上下文,其提供了应用的一些基础信息,例如resourceManager(资源管理)、applicationInfo(当前应用信息)、dir(应用开发路径)、area(文件分区)等,以及应用的一些基本方法,例如createBundleContext()、getApplicationContext()等。UIAbility组件和各种ExtensionAbility派生类组件都有各自不同的Context类。分别有基类Context、ApplicationContext、AbilityStageContext、UIAbilityContext、ExtensionContext、ServiceExtensionContext等Context。

  • 各类Context的继承关系
    在这里插入图片描述
项目描述
获取UIAbilityContextlet abilityStageContext = this.context;
获取AbilityStageContextlet abilityStageContext = this.context;
获取ApplicationContextlet applicationContext = this.context.getApplicationContext();

Context的典型使用场景

1、 获取应用文件路径

import UIAbility from '@ohos.app.ability.UIAbility';export default class EntryAbility extends UIAbility {onCreate(want, launchParam) {let cacheDir = this.context.cacheDir;let tempDir = this.context.tempDir;let filesDir = this.context.filesDir;let databaseDir = this.context.databaseDir;let bundleCodeDir = this.context.bundleCodeDir;let distributedFilesDir = this.context.distributedFilesDir;let preferencesDir = this.context.preferencesDir;// ...}
}

在这里插入图片描述

  • 通过ApplicationContext获取应用级别的应用文件路径,此路径是应用全局信息推荐的存放路径,这些文件会跟随应用的卸载而删除。
项目描述
bundleCodeDir<路径前缀>/el1/bundle/
cacheDir<路径前缀>/<加密等级>/base/cache/
filesDir<路径前缀>/<加密等级>/base/files/
preferencesDir<路径前缀>/<加密等级>/base/preferences/
tempDir<路径前缀>/<加密等级>/base/temp/
databaseDir<路径前缀>/<加密等级>/database/
distributedFilesDir<路径前缀>/el2/distributedFiles/
  • 通过AbilityStageContext、UIAbilityContext、ExtensionContext获取HAP级别的应用文件路径。此路径是HAP相关信息推荐的存放路径,这些文件会跟随HAP的卸载而删除,但不会影响应用级别路径的文件,除非该应用的HAP已全部卸载。
项目描述
bundleCodeDir<路径前缀>/el1/bundle/
cacheDir<路径前缀>/<加密等级>/base/haps//cache/
filesDir<路径前缀>/<加密等级>/base/haps//files/
preferencesDir<路径前缀>/<加密等级>/base/haps//preferences/
tempDir<路径前缀>/<加密等级>/base/haps//temp/
databaseDir<路径前缀>/<加密等级>/database//
distributedFilesDir<路径前缀>/el2/distributedFiles//

2、 获取和修改加密分区

上一个场景中,引入了加密等级的概念,通过对Context的area属性的读写来实现获取和设置当前加密分区,支持如下两种加密等级:

  • AreaMode.EL1:设备级加密区,设备开机后可访问的数据区。
  • AreaMode.EL2:用户级加密区,设备开机,首次输入密码后才能够访问的数据区。
import UIAbility from '@ohos.app.ability.UIAbility';export default class EntryAbility extends UIAbility {onCreate(want, launchParam) {// 存储普通信息前,切换到EL1设备级加密if (this.context.area === 1) { // 获取areathis.context.area = 0;     // 修改area}// 存储普通信息// 存储敏感信息前,切换到EL2用户级加密if (this.context.area === 0) { // 获取areathis.context.area = 1;     // 修改area}// 存储敏感信息}
}
http://www.lryc.cn/news/280459.html

相关文章:

  • http状态码对照表
  • 金三银四-JVM核心知识高频面试题
  • 【GitHub项目推荐--谷歌大神又一开源代码调试神器】【转载】
  • Ubuntu pip换源
  • 解锁前端新潜能:如何使用 Rust 锈化前端工具链
  • vite前端工具链,为开发提供极速响应
  • linux系统nginx做负载均衡
  • Tensor Core的一些概念理解
  • Git与VScode联合使用详解
  • SQL Server 加密 view文本
  • Linux查看物理CPU个数、核数、逻辑CPU个数
  • python使用单例模式加载config.ini配置文件
  • 牛刀小试---二分查找(C语言)
  • k8s-数据卷
  • Linux学习记录——사십삼 高级IO(4)--- Epoll型服务器
  • 6.4、SDN在云数据中心的应用案例分析
  • SpringBoot整合ES
  • Pandas实战100例 | 案例 10: 应用函数 - 使用 `apply`
  • 《C++大学教程》4.13汽油哩数
  • OpenGL排坑指南—贴图纹理绑定和使用
  • Electron中 主进程(Main Process)与 渲染进程 (Renderer Process) 通信的方式
  • 企业微信forMAC,如何左右翻动预览图片
  • Android Firebase (FCM)推送接入
  • Neo4j恢复
  • ZZULIOJ 1114: 逆序
  • Linux前后端项目部署
  • GPT-4与DALL·E 3:跨界融合,开启绘画与文本的新纪元
  • 聊聊PowerJob的Alarmable
  • 系列三十五、获取Excel中的总记录数
  • VMware workstation安装debian-12.1.0虚拟机并配置网络