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

Linux应用开发之网络套接字编程(实例篇)
服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...
生成xcframework
打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式,可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...

idea大量爆红问题解决
问题描述 在学习和工作中,idea是程序员不可缺少的一个工具,但是突然在有些时候就会出现大量爆红的问题,发现无法跳转,无论是关机重启或者是替换root都无法解决 就是如上所展示的问题,但是程序依然可以启动。 问题解决…...

手游刚开服就被攻击怎么办?如何防御DDoS?
开服初期是手游最脆弱的阶段,极易成为DDoS攻击的目标。一旦遭遇攻击,可能导致服务器瘫痪、玩家流失,甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案,帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...

Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动
一、前言说明 在2011版本的gb28181协议中,拉取视频流只要求udp方式,从2016开始要求新增支持tcp被动和tcp主动两种方式,udp理论上会丢包的,所以实际使用过程可能会出现画面花屏的情况,而tcp肯定不丢包,起码…...

Module Federation 和 Native Federation 的比较
前言 Module Federation 是 Webpack 5 引入的微前端架构方案,允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...
【git】把本地更改提交远程新分支feature_g
创建并切换新分支 git checkout -b feature_g 添加并提交更改 git add . git commit -m “实现图片上传功能” 推送到远程 git push -u origin feature_g...
鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/
使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题:docker pull 失败 网络不同,需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...

QT: `long long` 类型转换为 `QString` 2025.6.5
在 Qt 中,将 long long 类型转换为 QString 可以通过以下两种常用方法实现: 方法 1:使用 QString::number() 直接调用 QString 的静态方法 number(),将数值转换为字符串: long long value 1234567890123456789LL; …...

20个超级好用的 CSS 动画库
分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码,而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库,可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画,可以包含在你的网页或应用项目中。 3.An…...