【鸿蒙开发】02 复刻学习文档之待办列表

2024-09-01 10:52

本文主要是介绍【鸿蒙开发】02 复刻学习文档之待办列表,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 一、前言叨叨
  • 二、创建应用
  • 三、项目初始化及代码分析
    • 1. 应用启动入口
    • 2. 解读Demo代码并Copy
    • 3、常量数据及静态资源文件
      • AppStore下的resources
      • entry下的resources
  • 四、效果展示

一、前言叨叨

在考试内容看完之后,并且获取到了高级认证,但是在真正动手写应用的时候。尴尬的是不知如何下手,只好从第一篇文章的例子开始再来一遍,选择性的进行部分demo分析,并且同时构建我们的道易清单的开发,这篇文章讲开始进行第一步,熟悉并搭建待办列表页面。

二、创建应用

  1. 本次创建的应用时一个空应用(Empty Ability),选择后进入下一步

在这里插入图片描述
2. 设置项目名称,并且设置Bundle name;
在这里插入图片描述
Bundle name 是项目的唯一标识,默认的命名是:com.example.myapplication,其中myapplication 会根据Project name进行更换,我们需要确认并调整的内容是example。
作为后端开发者,可以将这个理解为是后端的包名命名规范,下面是HarmonyOS的命名规范:

  1. 命名空间反转:通常采用反向域名命名方式,以避免命名冲突。例如,如果您的公司域名为example.com,则包名可以是com.example.*
  2. 小写字母:包名应该全部使用小写字母。
  3. 点分隔:使用点(.)来分隔不同级别的命名空间。
  4. 有意义的名称:每个部分的名字都应具有意义,能够表明应用或组件的功能。
  5. 避免特殊字符:不要在包名中使用特殊字符,如空格、斜杠、下划线等。
  6. 唯一性:确保您的包名在全局范围内是唯一的,特别是当您计划在华为应用市场上发布应用时。
    以下是一个符合HarmonyOS命名规范的Bundle name示例:
com.example.myharmonyapp

在这个例子中,com是顶级域名,example是公司或组织的名称,myharmonyapp是应用的具体名称。
遵循这些命名规范可以帮助确保应用包名的清晰、一致和唯一性,有助于应用在HarmonyOS生态系统中正确识别和分发。

三、项目初始化及代码分析

在这里插入图片描述
具体的文件路径及配置文件参数,可参考官方网站
构建第一个ArkTS应用(Stage模型)

1. 应用启动入口

新建项目的应用启动入口是在entry\src\main\ets\entryability\EntryAbility.ets文件中。
在这里插入图片描述
在onWindowStageCreate()回调中通过loadContent()方法设置应用要加载的页面,并根据需要调用on(‘windowStageEvent’)方法订阅WindowStage的事件(获焦/失焦、可见/不可见)。

新建的项目中默认带着日志hilog

HiLog日志系统,提供给系统框架、服务、以及应用,用于打印日志,记录用户操作、系统运行状态等。开发者可以通过hilog命令行查询相关日志信息。

关于HiLog的相关内容请查阅官方文档:《HarmonyOS NEXT 调测调优之调试命令》

并且将页面的整个生命周期方法都初始化出来,对于新手来说,可以根据日志输出很快的理解整个页面的生命周期:
在这里插入图片描述

启动项目后可以在日志处看到启动顺序:
在这里插入图片描述

2. 解读Demo代码并Copy

在这里插入图片描述
ToDoList的Demo中,项目启动文件是第一个ToDoListPage,我们接下来建立ArkTsFile:ToDoListPage.ets
ToDoListPage代码解读:

    1. 在Demo中的ToDoListPage.ets文件中,用的注解分别是@Entity和@Component。
    1. 在DataModel中初始化了getData()的方法,这个方法直接从CommonConstants获取定义的常量TODO_DATA.
      在这里插入图片描述 在这里插入图片描述

3、常量数据及静态资源文件

AppStore下的resources

在上一段内容中,我们可以看到代码中常用到的常量数据都存储在ets/common/constant/CommonConstant.ts中,但是我们在代码中还发现部分常量数据是存储在App Store的resources目录中,比如string.json文件。
在这里插入图片描述
这样做的优点是:

  1. 本地化(Localization):string.json文件可以包含多语言版本的文本,这使得应用可以支持多种语言,满足不同地区用户的需求。
  2. 可维护性:将常量数据集中存储在一个文件中,方便开发者管理和维护。如果需要更新或添加新的文本,只需修改string.json文件即可。
  3. 版本控制:在版本控制系统中,string.json文件可以与其他资源一起被版本控制,确保资源的完整性。
  4. 资源隔离:将资源文件与代码分离,可以减少代码体积,提高应用的启动速度和运行效率。
  5. 安全性:通过将敏感数据(如用户名、密码等)存储在资源文件中,可以减少代码中的硬编码,提高应用的安全性。
  6. 跨平台一致性:在多平台开发中,使用资源文件可以确保不同平台上的应用表现一致。

在HarmonyOS中,资源文件通常位于resources目录下,该目录位于应用的根目录。在构建过程中,资源文件会被编译成二进制资源,并打包到应用的APK或HAP文件中。当应用运行时,资源文件会被加载到内存中,供应用使用。
总结来说,将常量数据存储在string.json等资源文件中,是为了提高应用的可维护性、安全性,以及支持多语言等需求。

entry下的resources

根据代码的查看,我们还可以看到代码中,引用的部分常量还来自于entry下的resources。
在这里插入图片描述
entry下的resources资源跟AppStore下的resources的区别如下:

  1. 存储位置
    • entry/resources:位于应用的entry目录下,它是应用的入口点,包含应用的启动入口和一些必要的资源。
    • resources:位于应用的根目录下,它包含应用的通用资源,如图标、图片、音频、视频等。
  2. 资源类型
    • entry/resources:通常包含应用的启动界面(如Launcher)和其他启动时所需的资源。
    • resources:包含应用运行过程中所需的各种资源,如界面资源、本地化字符串、图标、媒体文件等。
  3. 构建过程
    • 在构建过程中,entry/resources中的资源会被优先加载,因为它们是应用启动时必须的。
    • resources中的资源在应用启动后会根据需要被加载。
  4. 可访问性
    • entry/resources中的资源可以直接在entry目录下的Java/Kotlin/JS等源文件中直接引用。
    • resources中的资源需要通过资源访问路径进行引用,如@res/drawable/icon.png
  5. 资源打包
    • 在构建过程中,entry/resources中的资源会直接包含在应用的APK/HAP文件中。

resources中的资源会被编译成二进制资源,并打包到应用的APK/HAP文件中。
总的来说,entry/resourcesresources目录都是用于存储应用的资源文件,但它们存储的位置和包含的资源类型不同。entry/resources存储的是应用启动时所需的资源,而resources存储的是应用运行过程中所需的通用资源。正确地使用这两个目录可以提高应用的构建效率和运行性能。

四、效果展示

在这里插入图片描述

这篇关于【鸿蒙开发】02 复刻学习文档之待办列表的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1126730

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

Hadoop企业开发案例调优场景

需求 (1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。 (2)需求分析: 1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster 平均每个节点运行10个 / 3台 ≈ 3个任务(4    3    3) HDFS参数调优 (1)修改:hadoop-env.sh export HDFS_NAMENOD

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

OpenHarmony鸿蒙开发( Beta5.0)无感配网详解

1、简介 无感配网是指在设备联网过程中无需输入热点相关账号信息,即可快速实现设备配网,是一种兼顾高效性、可靠性和安全性的配网方式。 2、配网原理 2.1 通信原理 手机和智能设备之间的信息传递,利用特有的NAN协议实现。利用手机和智能设备之间的WiFi 感知订阅、发布能力,实现了数字管家应用和设备之间的发现。在完成设备间的认证和响应后,即可发送相关配网数据。同时还支持与常规Sof

活用c4d官方开发文档查询代码

当你问AI助手比如豆包,如何用python禁止掉xpresso标签时候,它会提示到 这时候要用到两个东西。https://developers.maxon.net/论坛搜索和开发文档 比如这里我就在官方找到正确的id描述 然后我就把参数标签换过来

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]