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及数据分析库 首先…...
如何判断机器学习模型的好坏之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.问题表现 原本是之前搭建好的工程,只是换了个开发环境重新启动就不行了。一直编译不通过! 可以看到IDEA其实是引入了依赖的 都没有出现红色波浪线 <mapstruct.version>1.5.5.Final</mapstruct.version> <lombok.version>1.18.30<…...

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

学习vue3 三,组件基础,父子组件传值
组件基础 每一个.vue 文件都可以充当组件来使用 每一个组件都可以复用 父组件引入之后可以直接当标签使用 案例: App.vue <script setup lang"ts"> import BaseRefAndReactive from "./components/BaseRefAndReactive.vue";</sc…...

月木学途开发 2.项目架构
1.项目介绍 月木学途是一款it在线学习网站,项目采用前后端分离架构。前端开发主要使用vue.js,后端使用Spring Cloud Alibaba技术栈。项目包含学习网站的大部分功能,分为管理员端和用户端。管理员端有权限管理、课程管理、网站管理、求职模块管…...
FPGA开发——按键控制数码管的设计
一、概述 按键控制数码管是一种常见的电子显示技术,它结合了按键输入与数码管显示的功能。在这一设计中,用户通过按下不同的按键来发送指令,这些指令随后被处理并转换为数码管上显示的数字或字符。按键通常作为输入设备,通过电路…...

国防科技大学计算机基础课程笔记02信息编码
1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制,因此这个了16进制的数据既可以翻译成为这个机器码,也可以翻译成为这个国标码,所以这个时候很容易会出现这个歧义的情况; 因此,我们的这个国…...

C++初阶-list的底层
目录 1.std::list实现的所有代码 2.list的简单介绍 2.1实现list的类 2.2_list_iterator的实现 2.2.1_list_iterator实现的原因和好处 2.2.2_list_iterator实现 2.3_list_node的实现 2.3.1. 避免递归的模板依赖 2.3.2. 内存布局一致性 2.3.3. 类型安全的替代方案 2.3.…...

Unity3D中Gfx.WaitForPresent优化方案
前言 在Unity中,Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染(即CPU被阻塞),这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案: 对惹,这里有一个游戏开发交流小组&…...
k8s从入门到放弃之Ingress七层负载
k8s从入门到放弃之Ingress七层负载 在Kubernetes(简称K8s)中,Ingress是一个API对象,它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress,你可…...
【Linux】C语言执行shell指令
在C语言中执行Shell指令 在C语言中,有几种方法可以执行Shell指令: 1. 使用system()函数 这是最简单的方法,包含在stdlib.h头文件中: #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...
spring:实例工厂方法获取bean
spring处理使用静态工厂方法获取bean实例,也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下: 定义实例工厂类(Java代码),定义实例工厂(xml),定义调用实例工厂ÿ…...
【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】
1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件(System Property Definition File),用于声明和管理 Bluetooth 模块相…...

Linux --进程控制
本文从以下五个方面来初步认识进程控制: 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程,创建出来的进程就是子进程,原来的进程为父进程。…...

深度学习习题2
1.如果增加神经网络的宽度,精确度会增加到一个特定阈值后,便开始降低。造成这一现象的可能原因是什么? A、即使增加卷积核的数量,只有少部分的核会被用作预测 B、当卷积核数量增加时,神经网络的预测能力会降低 C、当卷…...

基于 TAPD 进行项目管理
起因 自己写了个小工具,仓库用的Github。之前在用markdown进行需求管理,现在随着功能的增加,感觉有点难以管理了,所以用TAPD这个工具进行需求、Bug管理。 操作流程 注册 TAPD,需要提供一个企业名新建一个项目&#…...