鸿蒙原生应用开发学习笔记

鸿蒙笔记文档

学习笔记

编辑器和SDK安装

  1. 下载链接包含鸿蒙API 12和11版本的编辑器和SDK。
  2. 根据操作系统选择合适的安装包,包括Windows和Mac版本。
  3. 安装步骤:下载、解压、设置SDK路径。

模拟器安装和配置

  1. 模拟器安装:根据链接下载对应版本的模拟器。
  2. 模拟器配置:设置系统图像目录和SDK路径。
  3. 模拟器启动:登录华为开发者账号后启动。

鸿蒙系统发展历程

  1. 鸿蒙系统的起源和发展历程,从1.0到5.0的迭代。
  2. 鸿蒙系统的特点和优势,以及与安卓系统的区别。
  3. 鸿蒙系统在物联网、智慧屏等领域的应用。

鸿蒙开发工具和平台

  1. 开发工具:DVIQ Studio和DVIQ Testing。
  2. 设计资源:包括音频、图片、RTS语法文档和UI文档。
  3. 方舟编译器:用于将代码编译成字节码。

编辑器使用基础

  1. 编辑器界面:工程目录、工作区和预览区。
  2. 预览器:用于查看页面效果。
  3. 终端区:用于代码编译和运行。

页面预览和多设备预览

  1. 预览器:用于查看页面效果。
  2. 多设备预览:切换不同设备查看效果。
  3. Inspector:用于审查页面元素。

真机调试和模拟器调试

  1. 真机调试:连接真实设备进行调试。
  2. 模拟器调试:使用模拟器进行调试。
  3. 设备管理器:管理模拟器和真实设备。

项目结构和开发模型

  1. 项目结构:包括APP scope、entry、OH models等目录。
  2. stage模型:开放的多模块模型,适合大型项目开发。
  3. FA模型:较旧的模型,已逐渐淘汰。

UI ability和stage模型

  1. UI ability:用于绘制窗口UI的单元。
  2. stage模型:应用、模块、ability之间的关系。
  3. ability的配置和运行。

ACTS语言介绍

  1. ACTS语言的特点和起源,基于Rust语言扩展。
  2. ACTS语言的语法和特性,包括静态类型检查和类型安全。
  3. ACTS语言的迁移规则和不支持的特性。

组件结构和构建函数

  1. 组件的基本结构:包括装饰器、component修饰符、struct关键字和build函数。
  2. 构建函数:用于绘制组件内容,必须是一个容器组件。
  3. 子组件的使用和调用方式。

entry和preview修饰符的区别

  1. entry修饰符:用于创建页面入口,必须有一个entry修饰符。
  2. preview修饰符:用于预览组件效果,不依赖于页面入口。
  3. preview修饰符的使用场景和限制。

组件的复用和维护性

  1. 组件拆分的原因:便于维护和复用。
  2. 组件的命名规范和文件命名一致性。
  3. 组件的导出和导入方式,使用export关键字。

ArkUI-界面开发布局思路

鸿蒙界面开发的布局思路,特别是通过Arc UI框架进行界面搭建的方法。讲解了组件的基本分类,包括基础组件和容器组件,并阐述了如何通过这些组件组合排列构成界面。

同时,介绍了布局思路的重要性,强调了先排版再放内容的顺序。以小说简介界面搭建为例,详细解释了如何利用容器组件和基础组件实现界面结构,并指出在布局时需注意的细节,如build函数中只能有一个根元素且必须是容器组件。

最后,总结了布局思路的关键要点,旨在帮助学习者掌握鸿蒙界面开发的布局技巧。

鸿蒙界面开发的布局思路

  1. 掌握布局的基本套路,能够搭建界面的基本结构。
  2. 鸿蒙界面开发需要使用ArkUI框架,专门用于构建鸿蒙界面。
  3. 界面由图片、文本、按钮等组件构成,这些组件基于ArkUI实现。

组件的分类

  1. 基础组件:界面上的基础元素,如图片、文字、按钮等。
  2. 容器组件:用于控制布局排布,如column和row。
  3. column组件用于竖排内容,row组件用于横排内容。

布局思路

  1. 先考虑排版,再放置内容。
  2. 布局时先选择容器组件,确定竖排还是横排。
  3. 容器组件内部用于放置内容。

小说简介的示例实现

  1. 界面从上往下布局,最外层使用column组件。
  2. 内部包含小说简介和一行四个文本,分别使用text和row组件。
  3. 通过语法规则搭建界面架子,未包含美化细节。

代码实现

  1. 在build函数中自定义界面结构,删除原有代码。
  2. 先写容器组件,再放置基础组件。
  3. build函数最外层必须有且仅有一个容器组件。

总结

  1. ArkUI构建界面的最小单元是组件。
  2. 组件分为容器组件和基础组件。
  3. 布局思路是先排版再放置内容。

综合实战-华为登录

围绕华为登录界面的综合实战展开,强调了界面开发的三个核心步骤:排版分析布局、放置技术组件和美化样式。

介绍了如何通过设置属性方法如space和padding来调整元素间的间隙和内边距,使内容不紧贴容器边缘。通过实例演示了如何加载图片、设置输入框提示信息和调整按钮样式等基础组件的使用。

最终实现了华为登录页面的构建,强调了界面开发简洁性,并总结了构建完整界面的核心思路为三步走策略。

华为登录界面介绍

  1. 华为登录界面是一个综合性的界面,包含多种组件。
  2. 界面开发有专门的套路,包括三步:排版、内容填充和美化。

界面构建的核心思路

  1. 三步排版内容:分析布局,填充组件。
  2. 美化:通过属性方法设置宽高、间隙和内边距。

间隙的设置

  1. space属性可以设置column和row之间的间隙。
  2. 间隙的设置可以调整元素之间的间距。

内边距的设置

  1. 内边距(padding)属性可以让内容往内挤压。
  2. padding的值越大,内容往内放得越多。

实现华为登录界面的步骤

  1. 第一步:思考布局,使用column和row组件。
  2. 第二步:放置技术组件,如image、text input和button。
  3. 第三步:美化界面,通过属性方法调整样式。

图片的加载

  1. 图片粘贴到resources/media目录。
  2. 使用APP.media+文件名的方式加载图片。
  3. 调整图片的大小和居中显示。

输入框和提示信息的设置

  1. text input组件用于输入用户名和密码。
  2. 设置placeholder属性提供提示信息。
  3. input type属性设置为password实现密码输入框。

登录按钮的设置

  1. button组件用于登录操作。
  2. 设置button的宽度使其撑满容器。

前往注册和忘记密码的设置

  1. 使用row组件将前往注册和忘记密码两个文本放在一行。
  2. 设置text之间的间隙。
  3. 使用space属性调整横向元素之间的间距。

内边距的设置

  1. padding属性给外层容器添加内边距。
  2. 内边距可以让内容往内挤压,避免直接贴边。

状态管理

主要讲解状态管理的重要性及其在动态交互界面中的应用。

介绍了状态的概念,并通过实例演示了状态变量与普通变量的区别。状态变量能触发UI自动更新,而普通变量仅在初始化时渲染,后续变化不会引起界面更新。详细讲解了如何声明和使用状态变量,包括添加监听交互、修改状态变量以触发界面更新等过程。

此外,还强调了状态变量对于实现动态交互界面的重要性,并对比了普通变量与状态变量的使用差异。最后,提到了通过装饰器修饰的状态变量可以自动触发UI更新,从而完成动态交互效果。

状态管理的重要性

  1. 状态管理是实现动态、交互式界面的关键。
  2. 通过状态管理,可以实现对用户交互的响应,如点击事件。
  3. 状态变化自动触发界面更新,提供实时、动态的用户体验。

状态管理的实现与示例

  1. 通过状态变量管理界面状态,实现界面的动态显示和交互。
  2. 示例演示了如何声明和使用状态变量,以及如何通过状态变化触发界面更新。
  3. 强调了状态变量声明和使用时的注意事项,如装饰器的使用和this关键字的引用。

状态变量的概念与应用

  1. 状态变量用于存储界面状态,其变化会引起界面更新。
  2. 通过状态变量,可以实现界面元素的动态显示和交互逻辑。
  3. 状态变量的变化需要触发UI的重新渲染,以体现界面的动态性。

移动应用项目实战

本课程讲述了如何使用鸿蒙OS开发一个快递相关的移动应用项目。

重点介绍了项目的分层架构设计、广告页的创建与展示逻辑、以及如何使用共享包(HAR包)进行代码复用等关键技术点。

首先,介绍了项目的整体架构,分为三层:产品定制层、基础特性层和公共能力层,并详细说明了每一层的作用和如何创建共享包(HAR包)来封装可复用的代码。

接着,详细讲解了广告页的创建过程,包括广告配置的模型设计、广告页的展示逻辑以及如何根据配置判断是否显示广告页。

最后,通过模拟请求来控制启动页是否显示广告,并展示了如何使用promise异步处理和定时器实现广告页的倒计时功能。

课程还涉及了如何创建子页面、显示子页面以及销毁子页面的技术细节。整体上,本课程为开发者提供了鸿蒙OS应用开发的基础知识和实践指导。

课程介绍和自我介绍

  1. 课程开始,老师首先进行了自我介绍,并询问了学生们是否准备好开始上课。
  2. 老师提到了课程内容和目标,包括复习持久化存储、介绍项目内容和目标。
  3. 老师还提到了一些课程安排,如复习内容、API变化和项目介绍。

持久化存储复习

  1. 老师首先复习了两种持久化存储方案:首选项(preference)和持久化系统故事(persistent system story)。
  2. 首选项是一种简单的持久化存储方式,用于存储键值对数据。
  3. 持久化系统故事则与APP故事自动关联,适用于更复杂的持久化存储需求。

首选项获取数据

  1. 从首选项中获取数据的语法包括获取仓库(process)和获取首选项值(preference.get)。
  2. 老师强调了导入包的区别,新版本推荐使用@ohos.app.preference导入包。
  3. 同步获取数据的方法不需要回调函数,直接返回数据。

项目介绍和设计稿

  1. 老师介绍了项目名称“小时达”,并提到了之前的项目“神令物流”。
  2. 项目目标是开发一个快递物流APP,包括登录、首页、快递任务列表和任务详情等功能。
  3. 设计稿提供了详细的页面布局和交互要求。

项目功能和亮点

  1. 项目功能包括上传图片、地图展示、下拉刷新、日历选择器和买点上报等。
  2. 买点是数据采集和异常上报的重要方式,用于监控和应用性能优化。

单层架构和多层架构

  1. 单层架构:所有代码集中在entry文件中。
  2. 多层架构:将代码分成多个文件夹,分别维护不同的代码逻辑。
  3. 鸿蒙OS推荐的三层架构:产品定制层、基础特性层和公共能力层。

三层架构的具体解释

  1. 产品定制层:负责不同端的适配,如手机端和手表端的UI适配。
  2. 基础特性层:封装与业务逻辑无关的复用代码,如发请求的函数。
  3. 公共能力层:封装复用的业务逻辑和常量、枚举等。

共享包和动态共享包

  1. 共享包(HRP):静态共享包,引用多次会生成多个副本。
  2. 动态共享包(HSP):动态共享包,引用多次只生成一个副本。
  3. HSP包会动态判断是否引用的是同一个包,节省项目体积。

项目架构和文件夹结构

  1. 项目架构:分为产品定制层和公共能力层。
  2. 产品定制层:负责UI适配和多端兼容。
  3. 公共能力层:封装复用的业务逻辑和常量、枚举等。

29实战位置获取-半模态

围绕高德地图SDK的使用进行讲解,主要介绍了如何通过鸿蒙应用获取用户定位,包括获取高德API密钥的步骤、初始化高德位置管理器、申请定位权限以及获取用户定位的方法。

同时,演示了如何在应用中实现上报异常位置的功能,包括位置数据的获取和显示。

此外,还提到了鸿蒙SDK的更新情况,指出目前能用的功能仅限于用户定位,而其他功能如动态地图等暂时无法使用。

整个讲解内容聚焦于高德地图SDK在鸿蒙应用中的集成与应用,强调了正确配置和使用的关键步骤。

联合与空初始值

  1. 联合(union)表示可以是多种类型之一,空初始值用联合或闹(none)表示。
  2. 变量分配:将截图效果图分配到变量上,如 zdxnapmi等于snapshotmi。

半模态框的显示

  1. 半模态框的显示:使用半模态框覆盖在元素上,通过变量zdotshow控制显示与隐藏。
  2. 变量声明:声明变量zdotshow为true,表示打开半模态框。
  3. 半模态框的绑定:将半模态框绑定到组件上,如绑定到bat组件。

半模态框的双向绑定与builder函数

  1. 双向绑定:半模态框支持双向绑定,通过dosshow进行双向绑定。
  2. builder函数:需要自定义builder函数,接收动画效果参数。
  3. 动画效果的禁用:可以禁用动画效果。

半模态框的样式与关闭功能

  1. 样式设置:设置半模态框的样式,如宽度、高度、背景颜色等。
  2. 关闭功能:点击区域关闭半模态框,通过设置dosshow为false实现关闭

组件截图的API变化与使用

  1. API变化:组件截图API的变化,包括导入模块和函数名的变化。
  2. 截图效果:通过调用component_snapshot函数,分配ID来获取截图。
  3. 自定义组件支持:新版本支持自定义组件的截图

吸顶效果的实现

  1. 吸顶效果:通过设置list_group的sticky属性实现吸顶效果。
  2. 吸顶属性的设置:指定吸顶和吸尾的位置。
  3. 吸顶效果的示例:通过调整数据长度和滚动位置来展示吸顶效果

高德地图SDK的测试与使用

  1. 高德地图SDK的测试:测试高德地图SDK的功能和兼容性。
  2. 用户定位功能:获取用户定位信息,通过真机测试验证功能。
  3. SDK的初始化:设置API Key,同意隐私政策,初始化位置管理器。
  4. 权限配置:配置单次定位和连续定位权限。
  5. 用户定位的获取:通过位置管理器获取用户定位信息

高德地图SDK的示例代码

  1. 示例代码:展示如何获取用户定位信息并显示在页面上。
  2. 关键步骤:设置API Key,同意隐私政策,初始化位置管理器,获取用户定位信息。

30实战-多层架构的设计与应用

本课程涉及了鸿蒙开发中多层架构的设计与应用,特别是在益康养老员工端项目的实施上。

课程从项目背景出发,介绍了随着全球老龄化趋势,养老服务行业面临的挑战与机遇,强调了数字化信息化管理的重要性。

接着,详细阐述了三层架构的概念与设计,包括基础模块、特性模块和入口模块的划分与配置。特别提到了三层架构中的关键技术点,如请求拦截器与响应拦截器的使用,以及如何进行access的二次封装。

课程还涉及了插件的应用与配置,包括DGS和日志插件的配置,以及如何利用这些插件实现日志的统一管理和打印。

此外,讲解了如何通过首选项存储token,以保证应用退出后重新登录的便捷性。

最后,课程演示了如何通过小窗模式实现广告页面的展示,讨论了小窗模式相比传统跳转方式的优越性。 整个课程旨在通过理论与实践相结合的方式,帮助学员掌握鸿蒙开发中多层架构的设计与应用,提升学员在物联网项目开发中的实践能力。同时,强调了选择鸿蒙开发的意义,特别是在华为背景支持下,鸿蒙开发的前景与价值。

课程中提及了关于鸿蒙开发中遇到的挑战和机遇,以及通过多层架构设计和插件应用解决实际问题的方法。特别强调了鸿蒙开发的重要性及其前景,以及学员在学习过程中需要掌握的关键技术点和实践能力

课程介绍与项目概述

  1. 课程内容包括直播课程和录播课程,项目为益康养老员工端。
  2. 项目难度高,需要物联网知识和软硬件结合。
  3. 项目需要真机测试,因模拟器不支持蓝牙和wifi测试

课程安排

  1. 课程内容涵盖项目介绍、三层架构、蓝牙开发等内容。
  2. 项目亮点:华为认证登录、多端共享、入口层开发。

项目背景与需求

  1. 全球老龄化背景,养老服务行业需求增长。
  2. 数字化信息化管理提升服务质量。
  3. 员工端、家属端、老人端的应用。

益康养老员工端介绍

  1. 员工端功能:任务提醒、老人报警、护理提醒。
  2. 通过蓝牙开门、设备绑定等功能。
  3. 三层架构和HSP模式的应用。

三层架构介绍

  1. 三层架构:basic(基础层)、feature(特性层)、product(入口层)。
  2. basic提供底层能力,feature完成业务开发,product作为入口。
  3. 三层架构在企业中的广泛应用。

三层架构的包类型

  1. HAP:具备ability,用于入口层。
  2. HSP:动态共享包,用于基础特性层和公共能力层。
  3. HAR:静态共享包,不建议用于基础特性层和公共能力层。

体验三层架构创建

  1. 新建项目并选择ability模板。
  2. 创建三层架构目录结构:basic、feature、product。
  3. 配置依赖关系,通过OHPackage文件管理依赖。

三层架构项目运行

  1. 运行项目时需选择Hub包和Help包。
  2. 配置边界时需勾选所有依赖的包以确保全量测试。

二开项目介绍

  1. 二开项目:提供模板和基础架构,开发者填充业务逻辑。
  2. 三层架构的二开项目在企业中的实际应用。

益康养老员工端项目介绍

  1. 项目模板和基础架构已搭建完成。
  2. 主要开发device和state模块。
  3. 项目的三层架构目录结构和依赖关系

31实战-接入华为账号体系

我们需要将选中的图片保存到某个地方,以便后续使用。在这里,我们可以考虑将图片保存到全局变量或者使用状态管理工具(如Redux、MobX等)来管理图片的状态。

保存图片后,我们就可以通过传递参数的方式将图片信息传递给需要显示的组件或页面。 另外,对于拍照功能,由于模拟器无法直接实现拍照功能,我们可能需要使用真机进行测试。

如果需要在模拟器上模拟拍照功能,可以考虑使用一些模拟拍照的库或工具,或者设计一个模拟的拍照流程。在实际开发中,拍照功能通常涉及到相机权限的申请、拍照界面的设计以及图片的上传和处理等步骤。

关于鸿蒙系统上传文件的注意事项,主要需要关注文件的存储路径和上传方式。在鸿蒙系统中,文件上传通常需要通过系统的API进行,确保上传的文件符合系统的规范和要求。同时,需要注意文件上传的权限和安全性问题,确保上传的文件不会被非法访问或篡改。

最后,关于Custom Dialogue的使用区别,Custom Dialogue是一种自定义对话框组件,用于在应用中显示弹窗或提示信息。与系统自带的对话框相比,Custom Dialogue提供了更多的自定义选项和灵活性,可以根据应用的需求进行定制和设计。

在使用Custom Dialogue时,需要注意对话框的布局、样式和交互逻辑的设计,以确保用户体验的一致性和流畅性。

华为登录概述

  1. 华为登录的定义:通过华为账号体系进行登录,免去了注册步骤。
  2. 华为登录的优势:利用华为账号的体系,实现快捷登录,提高用户体验。
  3. 华为登录的实现流程:点击登录按钮,拉起授权页面,验证手机号,获取授权码,发送授权码到服务器,服务器验证授权码并返回token,客户端存储token并完成登录。

华为登录项目准备

  1. 项目准备:确保项目已经创建,并且已经申请了华为登录的账号授权。
  2. 证书申请:申请四个必要的证书:p12、csr、pkr、cer。
  3. 配置公钥指纹:在应用中添加公钥的指纹。
  4. 配置client ID:在项目中配置client ID,确保与ADC同步。

华为登录实现步骤

  1. 创建登录请求:导入必要的库和模块,创建授权请求。
  2. 执行授权请求:调用authorization controller,执行授权请求,并在callback中处理授权结果。
  3. 获取授权码:从授权结果中解析出auth code。
  4. 发送授权码到服务器:将auth code发送到服务器,服务器验证auth code并返回token。
  5. 存储token:客户端存储token,完成登录。

华为登录参数说明

  1. loginParams:登录参数,包含必要的权限和scope。
  2. authCode:授权码,用于与服务器进行交互。
  3. clientId:客户端ID,用于标识应用。
  4. clientSecret:客户端密钥,用于验证应用的身份。

华为登录跳转逻辑

  1. token判断:根据token的存在与否判断跳转逻辑。
  2. 有token时:跳转到主页。
  3. 无token时:跳转到登录页。

测试拦截器注入token

  1. 注入token:在请求拦截器中注入token到请求头中。
  2. 处理401状态码:当遇到401状态码时,重新登录。
  3. token失效处理:判断token是否失效,如果失效则重新登录。

断点调试技巧

  1. 断点调试的基本概念:通过断点来调试代码,验证变量的值。
  2. 断点调试的步骤:设置断点、单步执行、查看变量值。
  3. 调试的目的:验证代码的执行顺序和变量的值是否符合预期。

设备管理Builder优化

  1. 设备管理的结构:设备管理和我的设备都属于builder管理。
  2. 全局builder和局部builder的区别:全局builder可以被复用,局部builder只能在特定范围内使用。
  3. 设备管理的优化:将设备管理和我的设备抽取为全局builder,提高代码复用性。

用户信息获取

  1. 获取用户信息的方法:通过接口获取用户信息,包括ID、用户名、头像等。
  2. 定义用户信息类型:使用interface或class定义用户信息类型。
  3. 在页面中显示用户信息:在页面中声明ter state,存储用户信息并显示。

优惠券

博客粉丝专属折扣券 👆👆👆券后仅需2元,领取全部学习笔记和附赠视频资料。

分享到:

评论完整模式加载中...如果长时间无法加载,请针对 disq.us | disquscdn.com | disqus.com 启用代理