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

HarmonyOS应用开发知识地图

HarmonyOS 应用开发旅程

HarmonyOS 应用开发旅程
在这里插入图片描述
PS:Xmind原文件可以直接跳转官方具体文档地址,如需要原文件请联系:DYZZ198

01.准备与学习

学习 HarmonyOS 的基本概念和架构,搭建好所需的开发工具和环境,了解开发规范和最佳实践

了解 HarmonyOS

  • HarmonyOS 介绍
    • HarmonyOS 简介
    • 鸿蒙生态应用开发白皮书
    • 鸿蒙生态应用安全技术白皮书
  • 获取最新套件
    • HarmonyOS 开发套件
    • HarmonyOS 赋能套件

快速入门

  • 鸿蒙应用开发快速入门

学习与认证

  • 官方课程
    • HarmonyOS 第一课
    • Codelabs
  • 获取证书
    • HarmonyOS 应用开发者基础认证
    • HarmonyOS 应用开发者高级认证

保持更新

  • 获取最新版本变更特性

求助与分享

  • 加入开发者社区
  • 开发者活动

02.应用体验设计

设计适配 HarmonyOS 系统的应用界面,确定应用的功能和交互设计,了解 HarmonyOS 系统的设计原则和用户体验准则

UX设计

  • 布局设计
  • 动效设计
  • 交互设计

HarmonyOS 特征设计

  • 一次开发,多端部署
    • 一多工程管理
    • 一多常用布局能力
    • 一多典型布局场景
    • 多设备交互归一
    • 一多垂域案例
  • 自由流转
    • 自由流转
    • 应用接续
    • 媒体播控
    • 跨设备拖拽
    • 跨设备剪贴板

业务场景与解决方案

  • 行业场景
    • 新闻阅读类
    • 出行导航类
    • 社交通讯类

03.应用架构

为了帮助开发者更好的理解 HarmonyOS 进行应用设计,我们对重点设计场景提供了指导。

架构

  • 分层架构设计
  • 模块化设计
  • 应用并发设计
  • 应用导航设计
  • 切片编程设计

04.应用质量

为了帮助开发者打造一款高质量的应用,我们从应用的性能、功耗、隐私与安全、运维等多个维度提供了指导。

体验设计

  • 基础功能和兼容性体验建议
  • 稳定性体验建议
  • 性能体验建议
  • 功耗体验建议
  • 安全隐私体验建议
  • UX 体验建议

技术质量

  • 性能

    • 应用流畅体验设计
    • 合理使用布局
    • 状态管理最佳实践
    • Web 场景性能优化指导
    • 帧率和丢帧分析
  • 功耗

    • 省电和深色模式下低功耗设计
    • 可变帧率能力
    • 合理使用后台任务
    • 合理使用后台硬件资源
    • 合理使用后台软件资源
  • 隐私与安全

    • 应用隐私保护
    • 应用数据安全
    • 应用安全编码实践
    • 应用资产保护设计
    • 应用代码混淆
  • 运维

    • 故障定位指导

05.开发工具

DevEco Studio

  • 开发阶段

    • 环境准备
    • 工程管理
    • 代码编辑
    • 界面预览
  • 编译调试阶段

    • 编译构建
  • 签名

    • 签名服务
  • 调试运行

    • 应用运行
    • 应用调试
    • 性能分析
  • 测试

    • 应用测试
  • 发布

    • 应用发布
  • 命令行

    • 命令行工具

06.功能开发

为了帮助开发者更好的理解 HarmonyOS 进行功能开发,我们对重点开发场景提供了指导。

应用框架开发

  • 程序包结构
    • 程序包结构
    • HAR 包的创建和引用
    • HSP 包的创建和引用
  • 程序框架
    • 程序框架的亮点/特征
    • 应用组件概念
    • UIAbility 组件生命周期
    • UIAbility 组件启动
    • UIAbility 组件与 UI 的数据通信
  • ArkTS 语言
    • TS 到 ArkTS 适配指导
    • TaskPool 和 Worker 的对比
    • 动态 import
    • 语言基础类库
    • 方舟字节码基本原理
  • NDK 开发
    • NDK 工程构建
    • Node-API 跨语言交互
    • 异步开发
    • 三方 SO 库移植
    • CPP Crash 故障定位
  • UI 框架
    • 使用 Navigation 导航
    • 构建列表布局
    • 开发沉浸式页面
    • 控制软键盘弹出
    • 开发自定义弹窗
  • 本地数据和文件
    • 轻量级数据持久化
    • 关系型数据库存储
    • 跨设备数据同步
    • 应用数据备份恢复
    • 跨应用数据共享
    • 分布式文件访问
    • 用户文件访问
    • 应用文件访问
    • 文件压缩
    • 系统空间统计
  • Web
    • Web 组件
    • WebView
    • 使用 Web 组件加载页面
    • 同层渲染
    • 在应用代码中开启 Web 调试
  • 系统开发
    • 网络
      • 网络连接管理
      • HTTP 数据请求
      • WebSocket 连接
      • Socket 连接
      • MDNS 管理
    • 安全
      • 应用权限申请
      • 加解密算法框架
      • 通用密钥库
      • 设备证书服务
      • 关键资产存储服务
  • 媒体开发
    • 拍照和图片
      • 双路预览
      • 人脸检测
      • 通用文字识别
      • 预览图像实时获取
      • 系统相机拍照
      • 显示图片
      • 图片编码
      • 图片解码
      • EXIF 信息读取
      • 图片压缩
    • 音频和视频
      • AVRecoder 录像
      • 音频编解码
      • 音频焦点监听
      • AVPlayer 音频播放
      • 音频元数据获取
      • 视频编解码
      • 视频投播
      • AVPlayer 视频播放
      • AVPlayer 视频控制
      • AVPlayer 全屏播放
  • 图形开发
    • 2D 图形绘制
    • 3D 图形绘制
    • OpenGL 图形渲染
    • XComponent 自定义绘制
    • 图像变换
    • 图形加速服务
    • GPU 加速引擎服务
  • 应用服务开发
    • 华为帐号服务
    • 推送服务
    • 实况窗服务
    • 广告服务
    • 应用市场服务
    • 应用内支付服务
    • 华为支付服务
    • 位置服务
    • 地图服务
    • 运动健康服务
    • 联系人服务
    • 游戏服务
  • AI 功能开发
    • 意图框架
      • HarmonyOS 意图框架

07.应用测试

HarmonyOS 应用/服务开发完成后,在发布到应用/服务市场前,还需要对应用进行:漏洞、隐私、兼容性、稳定性、性能等测试,确保 HarmonyOS 应用/服务纯净、安全,给用户带来更好的使用体验。

单元测试和 UI 测试

  • 自动化测试框架
    • 自动化测试框架
  • UI 测试
    • 测试脚本快速开发入门

应用专项测试

  • DevEco Testing

08.上架与分发

HarmonyOS 应用/服务开发、测试完成后,将应用/服务发布至应用市场,用户可以通过应用市场、负一屏等渠道获取到对应的 HarmonyOS 应用/服务。

应用发布

  • 发布前测试
  • 发布 HarmonyOS 应用
  • 分阶段发布

运营增长

  • 应用分析
  • 崩溃服务

流量变现

  • 鲸鸿动能流量变现服务
  • 开发者接入流程
  • 鲸鸿动能 SDK 接入指南
  • APK/RPK 广告位信息表
  • 常见问题 QA

相关文章:

HarmonyOS应用开发知识地图

HarmonyOS 应用开发旅程 HarmonyOS 应用开发旅程 PS:Xmind原文件可以直接跳转官方具体文档地址,如需要原文件请联系:DYZZ198 01.准备与学习 学习 HarmonyOS 的基本概念和架构,搭建好所需的开发工具和环境,了解开发规范和最佳实践 了解 H…...

了解反向代理如何工作吗?

在当今数字化时代,网络通讯扮演着重要的角色,而代理技术为网络通讯提供了更多的灵活性和安全性。作为两种重要的代理技术,代理服务器和反向代理的运行原理和用途各有不同。本文将重点介绍反向代理的运行原理,深入探讨其在网络通讯…...

ASCII码对照表

常用 ASCII 码详细对照表 (0—255) 第 0~32 号及第 127 号(共 34 个)是控制字符或通讯专用字符,如控制符:LF (换行)、CR(回车)、FF(换页)、DEL&am…...

Git的一些简单使用

下列内容适用于git初学者,从创建本地git仓库到提交的一个基本过程1. 1.创建git仓库 在想创建git仓库的路径下打开git bash,输入以下命令行创建仓库(一般来说,我觉得直接在code workspace得地方创建git仓库就可以了,这…...

C++基础语法(下)

前言 上一篇文章介绍了部分的引用,这里主要对引用的特点,引用与指针区别的进行区分,const引用权限的使用,内联函数的讲解。 引用特性 引用在定义时必须进行初始化一个变量可以有多个引用引用一旦引用一个实体,再不能…...

UKP3d创建斜管的操作

用户问:需要插入两个60的弯头,怎么操作啊? 以前我的回复算X,Y,Z相对空间坐标,适用于任何情况,有些难为用户。若是非特定角度,算起来又要下一翻功夫。 在UKP3d里提供了吸附任意角度的功能,任意角…...

【已解决】如何获取到DF数据里最新的调薪时间,就是薪资最高且时间最早?

问题说明: 前几天在Python最强王者交流群【群除我佬】问了一个Pandas处理的问题,这里拿出来给大家分享下。 看上去不太好理解,其实说白了,就是在工资最高里,再找时间最早的。 换句话说就是,这三个人&…...

PyQt5入门

Python中经常使用的GUI控件集有PyQt、Tkinter、wxPython、Kivy、PyGUI和Libavg。其中PyQt是Qt(c语言实现的)为Python专门提供的扩展 PyQt是一套Python的GUI开发框架,即图形用户界面开发框架.。而在Python中则使用PyQt这一工具包(PyQt5、PyQt5-tools、PyQt5-stubs&am…...

算法力扣刷题记录 六十九【动态规划基础及509. 斐波那契数】

前言 调整一下做题顺序,多个章节同步进行,穿插练习。可以在各章节的专栏中找同一类。 记录 六十九【动态规划基础】。 一、动态规划理论基础学习 参考学习链接 二、509. 斐波那契数 2.1 题目阅读 斐波那契数 (通常用 F(n) 表示&#x…...

如何利用Python进行数据分析

在当今这个大数据时代,数据分析已经成为了各行各业都非常重视的技能。而Python作为一门强大且易学的编程语言,成为了数据分析领域的主流工具之一。那么,如何利用Python进行数据分析呢? 一、安装Python及数据分析库 首先&#xf…...

如何判断机器学习模型的好坏之LIME和SHAP

LIME(Local Interpretable Model-agnostic Explanations)和SHAP(SHapley Additive exPlanations)是两种广泛使用的模型可解释性技术,旨在帮助理解复杂机器学习模型的决策过程。 LIME LIME (Local Interpretable Model-agnostic Explanations) 是一种技术,用于解释任何机…...

Android 是如何进行内存管理的

目录 1. 垃圾回收 (Garbage Collection)2. 内存分配3. 内存泄漏检测4. 内存优化5. 内存抖动 (Memory Churn)6. 内存警告 (Memory Warning)7. 内存分页 (Memory Paging)8. 内存分段 (Memory Segmentation)9. 内存压缩 (Memory Compaction)10. 内存分区 (Memory Partitioning)11.…...

【CSDN平台BUG】markdown图片链接格式被手机端编辑器自动破坏(8.6 已修复)

文章目录 bug以及解决方法bug原理锐评后续 bug以及解决方法 现在是2024年8月,我打开csdn手机编辑器打算修改一下2023年12月的一篇文章,结果一进入编辑器,源码就变成了下面这个样子,我起初不以为意,就点击了发布&#…...

WPF学习(4)- VirtualizingStackPanel (虚拟化元素)+Canvas控件(绝对布局)

VirtualizingStackPanel虚拟化元素 VirtualizingStackPanel 类(虚拟化元素)和StackPanel 类在用法上几乎差不多。其作用是在水平或垂直的一行中排列并显示内容。它继承于一个叫VirtualizingPanel的抽象类,而这个VirtualizingPanel抽象类继承…...

SQL约束

目录 1.常见的SQL约束 1.1 添加主键约束 1.2 单独添加主键约束 1.3 删除主键约束 1.4 设置自动增长 2.添加非空约束 3.添加唯一约束 4.添加默认值约束 我们已知道,创建数据表语法: create table 表名(字段名1 数据类型(长度) [约束],字段名…...

lombok使用@slf4j 运行时提示找不到符号log(Missing POM for org.projectors:lombok:jar)

1.问题表现 原本是之前搭建好的工程&#xff0c;只是换了个开发环境重新启动就不行了。一直编译不通过&#xff01; 可以看到IDEA其实是引入了依赖的 都没有出现红色波浪线 <mapstruct.version>1.5.5.Final</mapstruct.version> <lombok.version>1.18.30<…...

21. 合并两个有序链表(递归)

目录 一;题目&#xff1a; 二代码; 三&#xff1a;结果&#xff1a; 一;题目&#xff1a; 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 二代码; /*** Definition for singly-linked list.* struct ListNode {* …...

学习vue3 三,组件基础,父子组件传值

组件基础 每一个.vue 文件都可以充当组件来使用 每一个组件都可以复用 父组件引入之后可以直接当标签使用 案例&#xff1a; App.vue <script setup lang"ts"> import BaseRefAndReactive from "./components/BaseRefAndReactive.vue";</sc…...

月木学途开发 2.项目架构

1.项目介绍 月木学途是一款it在线学习网站&#xff0c;项目采用前后端分离架构。前端开发主要使用vue.js&#xff0c;后端使用Spring Cloud Alibaba技术栈。项目包含学习网站的大部分功能&#xff0c;分为管理员端和用户端。管理员端有权限管理、课程管理、网站管理、求职模块管…...

FPGA开发——按键控制数码管的设计

一、概述 按键控制数码管是一种常见的电子显示技术&#xff0c;它结合了按键输入与数码管显示的功能。在这一设计中&#xff0c;用户通过按下不同的按键来发送指令&#xff0c;这些指令随后被处理并转换为数码管上显示的数字或字符。按键通常作为输入设备&#xff0c;通过电路…...

【Linux】shell脚本忽略错误继续执行

在 shell 脚本中&#xff0c;可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行&#xff0c;可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令&#xff0c;并忽略错误 rm somefile…...

SCAU期末笔记 - 数据分析与数据挖掘题库解析

这门怎么题库答案不全啊日 来简单学一下子来 一、选择题&#xff08;可多选&#xff09; 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘&#xff1a;专注于发现数据中…...

JS设计模式(4):观察者模式

JS设计模式(4):观察者模式 一、引入 在开发中&#xff0c;我们经常会遇到这样的场景&#xff1a;一个对象的状态变化需要自动通知其他对象&#xff0c;比如&#xff1a; 电商平台中&#xff0c;商品库存变化时需要通知所有订阅该商品的用户&#xff1b;新闻网站中&#xff0…...

安宝特案例丨Vuzix AR智能眼镜集成专业软件,助力卢森堡医院药房转型,赢得辉瑞创新奖

在Vuzix M400 AR智能眼镜的助力下&#xff0c;卢森堡罗伯特舒曼医院&#xff08;the Robert Schuman Hospitals, HRS&#xff09;凭借在无菌制剂生产流程中引入增强现实技术&#xff08;AR&#xff09;创新项目&#xff0c;荣获了2024年6月7日由卢森堡医院药剂师协会&#xff0…...

c# 局部函数 定义、功能与示例

C# 局部函数&#xff1a;定义、功能与示例 1. 定义与功能 局部函数&#xff08;Local Function&#xff09;是嵌套在另一个方法内部的私有方法&#xff0c;仅在包含它的方法内可见。 • 作用&#xff1a;封装仅用于当前方法的逻辑&#xff0c;避免污染类作用域&#xff0c;提升…...

在 Visual Studio Code 中使用驭码 CodeRider 提升开发效率:以冒泡排序为例

目录 前言1 插件安装与配置1.1 安装驭码 CodeRider1.2 初始配置建议 2 示例代码&#xff1a;冒泡排序3 驭码 CodeRider 功能详解3.1 功能概览3.2 代码解释功能3.3 自动注释生成3.4 逻辑修改功能3.5 单元测试自动生成3.6 代码优化建议 4 驭码的实际应用建议5 常见问题与解决建议…...

解析两阶段提交与三阶段提交的核心差异及MySQL实现方案

引言 在分布式系统的事务处理中&#xff0c;如何保障跨节点数据操作的一致性始终是核心挑战。经典的两阶段提交协议&#xff08;2PC&#xff09;通过准备阶段与提交阶段的协调机制&#xff0c;以同步决策模式确保事务原子性。其改进版本三阶段提交协议&#xff08;3PC&#xf…...

CSS3相关知识点

CSS3相关知识点 CSS3私有前缀私有前缀私有前缀存在的意义常见浏览器的私有前缀 CSS3基本语法CSS3 新增长度单位CSS3 新增颜色设置方式CSS3 新增选择器CSS3 新增盒模型相关属性box-sizing 怪异盒模型resize调整盒子大小box-shadow 盒子阴影opacity 不透明度 CSS3 新增背景属性ba…...

【若依】框架项目部署笔记

参考【SpringBoot】【Vue】项目部署_no main manifest attribute, in springboot-0.0.1-sn-CSDN博客 多一个redis安装 准备工作&#xff1a; 压缩包下载&#xff1a;http://download.redis.io/releases 1. 上传压缩包&#xff0c;并进入压缩包所在目录&#xff0c;解压到目标…...

Python的__call__ 方法

在 Python 中&#xff0c;__call__ 是一个特殊的魔术方法&#xff08;magic method&#xff09;&#xff0c;它允许一个类的实例像函数一样被调用。当你在一个对象后面加上 () 并执行时&#xff08;例如 obj()&#xff09;&#xff0c;Python 会自动调用该对象的 __call__ 方法…...