Created with Pixso.
简体中文
简体中文
English
Русский
下载 App
Created with Pixso.
探索
设计
开发
分发
推广与变现
生态合作
支持
更多
探索
设计
开发
更多
分发
推广与变现
生态合作
支持
输入关键字搜索
开发者能力认证
鸿蒙高校创新赛
HarmonyOS 7
animation
HarmonyOS行业解决方案
layoutWeight
HarmonyOS模板&组件
bindPopup
bindsheet
RelativeContainer
CustomDialogController
animateTo
CTRL+K
文档
管理中心
我的
Hello,
欢迎来到开发者联盟
管理中心
个人中心
我的学堂
我的收藏
我的活动
我的工单
立即登录
HarmonyOS 5.0.0(12)
输入关键字搜索
开发者能力认证
鸿蒙高校创新赛
HarmonyOS 7
animation
HarmonyOS行业解决方案
layoutWeight
HarmonyOS模板&组件
bindPopup
bindsheet
RelativeContainer
CustomDialogController
animateTo
CTRL+K
指南
版本说明
指南
API参考
最佳实践
FAQ
变更预告
更多
入门
基础入门
Archived
应用开发导读
快速入门
开发准备
构建第一个ArkTS应用(Stage模型)
开发基础知识
应用程序包基础知识
应用程序包概述
应用程序包结构
Stage模型应用程序包结构
FA模型应用程序包结构
应用程序包开发与使用
HAP
HAR
HSP
应用程序包安装卸载与更新
应用配置文件(Stage模型)
应用配置文件概述(Stage模型)
app.json5配置文件
module.json5配置文件
应用配置文件(FA模型)
应用配置文件概述(FA模型)
app对象内部结构
deviceConfig内部结构
module对象内部结构
典型场景的开发指导
集成态HSP
HAR转HSP指导
HSP转HAR指导
创建应用静态快捷方式
创建应用分身
创建应用多实例
配置分层图标
资源分类与访问
学习ArkTS语言
初识ArkTS语言
ArkTS语言介绍
ArkTS编程规范
从TypeScript到ArkTS的适配指导
ArkTS语法适配背景
从TypeScript到ArkTS的适配规则
适配指导案例
ArkTS高性能编程实践
UI范式基本语法
基本语法概述
声明式UI描述
自定义组件
创建自定义组件
页面和自定义组件生命周期
自定义组件的自定义布局
自定义组件成员属性访问限定符使用限制
@Builder装饰器:自定义构建函数
@LocalBuilder装饰器: 维持组件父子关系
@BuilderParam装饰器:引用@Builder函数
wrapBuilder:封装全局@Builder
@Styles装饰器:定义组件重用样式
@Extend装饰器:定义扩展组件样式
stateStyles:多态样式
@AnimatableExtend装饰器:定义可动画属性
@Require装饰器:校验构造传参
@Reusable装饰器:组件复用
状态管理
状态管理概述
状态管理(V1)
管理组件拥有的状态
@State装饰器:组件内状态
@Prop装饰器:父子单向同步
@Link装饰器:父子双向同步
@Provide装饰器和@Consume装饰器:与后代组件双向同步
@Observed装饰器和@ObjectLink装饰器:嵌套类对象属性变化
管理应用拥有的状态
管理应用拥有的状态概述
LocalStorage:页面级UI状态存储
AppStorage:应用全局的UI状态存储
PersistentStorage:持久化存储UI状态
Environment:设备环境查询
其他状态管理
其他状态管理概述
@Watch装饰器:状态变量更改通知
$$语法:内置组件双向同步
@Track装饰器:class对象属性级更新
自定义组件冻结功能
MVVM模式
状态管理优秀实践
状态管理合理使用开发指导
状态管理(V2)
V2所属装饰器
@ObservedV2装饰器和@Trace装饰器:类属性变化观测
@ComponentV2装饰器:自定义组件
@Local装饰器:组件内部状态
@Param:组件外部输入
@Once:初始化同步一次
@Event装饰器:规范组件输出
@Provider装饰器和@Consumer装饰器:跨组件层级双向同步
@Monitor装饰器:状态变量修改监听
@Computed装饰器:计算属性
@Type装饰器:标记类属性的类型
其他状态管理
AppStorageV2: 应用全局UI状态存储
PersistenceV2: 持久化储存UI状态
!!语法:双向绑定
自定义组件冻结功能
Repeat:可复用的循环渲染
getTarget接口:获取状态管理框架代理前的原始对象
makeObserved接口:将非观察数据变为可观察数据
MVVM模式(状态管理V2)
V1V2混用和迁移指导
自定义组件混用场景指导
V1->V2迁移指导
渲染控制
渲染控制概述
if/else:条件渲染
ForEach:循环渲染
LazyForEach:数据懒加载
ContentSlot:混合开发
术语
开发
应用开发准备
Archived
应用开发准备
应用框架
Archived
Ability Kit(程序框架服务)
Ability Kit简介
应用模型
Stage模型开发指导
Stage模型开发概述
Stage模型应用组件
应用/组件级配置
UIAbility组件
UIAbility组件概述
UIAbility组件生命周期
UIAbility组件启动模式
UIAbility组件基本用法
UIAbility组件与UI的数据同步
启动应用内的UIAbility组件
ExtensionAbility组件
EmbeddedUIExtensionAbility
AbilityStage组件容器
应用上下文Context
信息传递载体Want
Want概述
显式Want与隐式Want匹配规则
使用显式Want启动应用组件
常见action与entities(不推荐使用)
组件启动规则(Stage模型)
应用启动框架AppStartup
订阅系统环境变量的变化
应用间跳转
应用间跳转概述
拉起指定应用
拉起指定应用概述
(可选)使用canOpenLink判断应用是否可访问
使用Deep Linking实现应用间跳转
使用App Linking实现应用间跳转
显式Want跳转切换应用链接跳转适配指导
应用链接说明
拉起指定类型的应用
拉起指定类型的应用概述
拉起导航类应用(startAbilityByType)
拉起邮件类应用(startAbilityByType)
拉起邮件类应用(mailto方式)
拉起金融类应用(startAbilityByType)
拉起图片编辑类应用(startAbilityByType)
拉起文件处理类应用(startAbility)
拉起系统应用
进程模型
线程模型
Stage模型应用配置文件
FA模型开发指导
FA模型开发概述
FA模型应用组件
应用/组件级配置
PageAbility组件开发指导
PageAbility组件概述
PageAbility组件配置
PageAbility的生命周期
PageAbility的启动模式
创建PageAbility
启动本地PageAbility
停止PageAbility
启动指定页面
窗口属性
申请授权
跳转规则
ServiceAbility组件开发指导
ServiceAbility组件概述
ServiceAbility组件配置
ServiceAbility的生命周期
创建ServiceAbility
启动ServiceAbility
连接ServiceAbility
DataAbility组件开发指导
DataAbility组件概述
DataAbility组件配置
DataAbility的生命周期
创建DataAbility
启动DataAbility
访问DataAbility
DataAbility权限控制
FA模型的Context
信息传递载体Want
组件启动规则(FA模型)
进程模型概述
线程模型
FA模型应用配置文件
Native子进程开发指导(C/C++)
Accessibility Kit(无障碍服务)
Accessibility Kit简介
屏幕朗读应用适配指导
ArkData(方舟数据管理)
ArkData简介
标准化数据定义
标准化数据定义概述
标准化数据类型
标准化数据结构
UTD预置列表
应用数据持久化
应用数据持久化概述
通过用户首选项实现数据持久化
通过键值型数据库实现数据持久化
通过关系型数据库实现数据持久化
同应用跨设备数据同步(分布式)
同应用跨设备数据同步概述
键值型数据库跨设备数据同步
关系型数据库跨设备数据同步
分布式数据对象跨设备数据同步
数据可靠性与安全性
数据可靠性与安全性概述
数据库备份与恢复
数据库加密
基于设备分类和数据分级的访问控制
E类加密数据库的使用
跨应用数据共享
跨应用数据共享概述
多对多跨应用数据共享
通过标准化数据通路实现数据共享
RelationalStore开发指导 (C/C++)
UDMF开发指导 (C/C++)
ArkTS(方舟编程语言)
ArkTS简介
ArkTS基础类库
ArkTS基础类库概述
XML生成、解析与转换
XML概述
XML生成
XML解析
XML转换
Buffer介绍
ArkTS容器类库
容器类库概述
线性容器
非线性容器
ArkTS并发
并发概述
异步并发 (Promise和async/await)
多线程并发
多线程并发概述
TaskPool简介
Worker简介
TaskPool和Worker的对比 (TaskPool和Worker)
并发线程间通信
ArkTS线程间通信概述
线程间通信对象
普通对象
ArrayBuffer对象
SharedArrayBuffer对象
Transferable对象(NativeBinding对象)
Sendable对象
Sendable对象简介
Sendable使用规则与约束
异步锁
ASON解析与生成
共享容器
共享模块
Sendable对象冻结
Sendable使用场景
线程间通信场景
使用TaskPool执行独立的耗时任务
使用TaskPool执行多个耗时任务
TaskPool任务与宿主线程通信
Worker和宿主线程的即时消息通信
Worker同步调用宿主线程的接口
应用多线程开发
应用多线程开发概述
耗时任务并发场景
耗时任务并发场景简介
CPU密集型任务开发指导 (TaskPool和Worker)
I/O密集型任务开发指导 (TaskPool)
同步任务开发指导 (TaskPool和Worker)
长时任务并发场景
长时任务并发场景简介
长时任务开发指导(TaskPool)
常驻任务并发场景
常驻任务并发场景简介
常驻任务开发指导(Worker)
应用多线程开发实践案例
批量数据写数据库场景
业务模块并发加载场景
全局配置项功能场景
ArkUI数据更新场景
C++线程间数据共享场景
ArkUI瀑布流渲染场景
ArkTS跨语言交互
ArkTS运行时
ArkTS运行时概述
GC垃圾回收
ArkTS模块化
模块化运行简介
动态加载
延迟加载(lazy import)
同步方式动态加载native模块
静态方式加载native模块
基于Node-API加载模块
模块加载副作用及优化
ArkTS编译工具链
ArkTS编译工具链概述
方舟字节码
方舟字节码概述
方舟字节码文件格式
方舟字节码基本原理
方舟字节码函数命名规则
编译期自定义修改方舟字节码
Disassembler反汇编工具
ArkGuard源码混淆工具
在build-profile.json5中配置arkOptions
ArkUI(方舟UI框架)
ArkUI简介
UI开发 (ArkTS声明式开发范式)
UI开发(ArkTS声明式开发范式)概述
开发布局
布局概述
构建布局
线性布局 (Row/Column)
层叠布局 (Stack)
弹性布局 (Flex)
相对布局 (RelativeContainer)
栅格布局 (GridRow/GridCol)
媒体查询 (@ohos.mediaquery)
创建列表 (List)
创建网格 (Grid/GridItem)
创建轮播 (Swiper)
选项卡 (Tabs)
开发应用沉浸式效果
添加组件
按钮 (Button)
单选框 (Radio)
切换按钮 (Toggle)
进度条 (Progress)
显示图片 (Image)
视频播放 (Video)
自定义渲染 (XComponent)
设置组件导航和页面路由
组件导航和页面路由概述
组件导航 (Navigation)(推荐)
导航转场
页面路由 (@ohos.router)(不推荐)
Router切换Navigation
使用文本
文本概述
文本显示 (Text/Span)
文本输入 (TextInput/TextArea)
富文本(RichEditor)
图标小符号 (SymbolGlyph/SymbolSpan)
属性字符串(StyledString/MutableStyledString)
使用弹窗
弹窗概述
使用弹出框 (Dialog)
弹出框概述
不依赖UI组件的全局自定义弹出框 (openCustomDialog)(推荐)
基础自定义弹出框 (CustomDialog)(不推荐)
固定样式弹出框
菜单控制(Menu)
气泡提示(Popup)
绑定模态页面
绑定模态页面概述
绑定半模态页面(bindSheet)
绑定全模态页面(bindContentCover)
即时反馈(Toast)
设置浮层(OverlayManager)
显示图形
绘制几何图形 (Shape)
使用画布绘制自定义图形 (Canvas)
使用动画
动画概述
属性动画
属性动画概述
实现属性动画
自定义属性动画
转场动画
转场动画概述
出现/消失转场
模态转场
共享元素转场 (一镜到底)
旋转屏动画
页面转场动画 (不推荐)
粒子动画
组件动画
动画曲线
动画曲线概述
传统曲线
弹簧曲线
动画衔接
动画效果
模糊
阴影
色彩
帧动画(ohos.animator)
支持交互事件
交互事件概述
使用通用事件
事件分发
触屏事件
键鼠事件
焦点事件
拖拽事件
使用手势事件
绑定手势方法
单一手势
组合手势
多层级手势事件
手势拦截
使用自定义能力
自定义能力概述
自定义节点
自定义节点概述
自定义占位节点
自定义组件节点 (FrameNode)
自定义渲染节点 (RenderNode)
自定义声明式节点 (BuilderNode)
自定义扩展
自定义扩展能力概述
属性修改器 (AttributeModifier)
属性更新器 (AttributeUpdater)
使用镜像能力
支持适老化
主题设置
应用深浅色适配
设置应用内主题换肤
使用UI上下文接口操作界面(UIContext)
使用NDK接口构建UI
NDK接口概述
接入ArkTS页面
添加交互事件
监听组件事件
绑定手势事件
使用动画
使用懒加载开发长列表界面
构建弹窗
构建自定义组件
嵌入ArkTS组件
UI开发 (兼容JS的类Web开发范式)
概述
框架说明
文件组织
js标签配置
app.js
语法
HML语法参考
CSS语法参考
JS语法参考
生命周期
资源限定与访问
多语言支持
构建用户界面
组件介绍
构建布局
布局说明
添加标题行和文本区域
添加图片区域
添加留言区域
添加容器
添加交互
动画
手势事件
页面路由
常见组件开发指导
容器组件
list开发指导
dialog开发指导
form开发指导
stepper开发指导
tabs开发指导
swiper开发指导
基础组件
text开发指导
input开发指导
button开发指导
picker开发指导
image开发指导
image-animator开发指导
rating开发指导
slider开发指导
chart开发指导
switch开发指导
toolbar开发指导
menu开发指导
marquee开发指导
qrcode开发指导
search开发指导
Canvas开发指导
Canvas对象
CanvasRenderingContext2D对象
Path2D对象
OffscreenCanvasRenderingContext2D对象
栅格布局
Svg开发指导
基础知识
绘制图形
绘制路径
绘制文本
动效开发指导
CSS动画
属性样式动画
transform样式动画
background-position样式动画
svg动画
JS动画
组件动画
插值器动画
动画动效
动画帧
自定义组件
WebGL
使用WebGL绘制图形
窗口管理
窗口开发概述
管理应用窗口(Stage模型)
管理应用窗口(FA模型)
使用NativeWindowEventFilter过滤多模输入事件(C/C++)
在应用程序中使用画中画功能
画中画开发概述
使用XComponent实现画中画功能开发
使用typeNode实现画中画功能开发
智慧多窗应用开发指南
智慧多窗简介
应用适配智慧多窗
应用声明支持智慧多窗
应用布局适配智慧多窗
顶部窗口控制条避让适配智慧多窗
屏幕管理
屏幕管理简介
使用OH_DisplayManager实现屏幕基础信息查询和状态监听 (C/C++)
使用Display实现屏幕属性查询及状态监听 (ArkTS)
ArkWeb(方舟Web)
ArkWeb简介
ArkWeb进程
Web组件的生命周期
设置基本属性和事件
UserAgent开发指导
管理Cookie及数据存储
设置深色模式
在新窗口中打开页面
管理位置权限
使用隐私模式
使用运动和方向传感器监测设备状态
Web渲染和布局
Web组件渲染模式
Web组件大小自适应页面内容布局
在应用中使用前端页面JavaScript
应用侧调用前端页面函数
前端页面调用应用侧函数
建立应用侧与前端页面数据通道
应用侧与前端页面的相互调用(C/C++)
建立应用侧与前端页面数据通道(C/C++)
管理网页交互
Web组件嵌套滚动
Web组件对接软键盘
Web组件焦点管理
管理Web组件的网络安全与隐私
解决Web组件本地资源跨域问题
使用智能防跟踪功能
使用Web组件的广告过滤功能
坚盾守护模式
管理网页加载与浏览记录
使用Web组件加载页面
管理页面跳转及浏览记录导航
拦截Web组件发起的网络请求
自定义页面请求响应
加速Web页面的访问
设置Web组件前进后退缓存
Web组件在不同的窗口间迁移
管理网页文件上传与下载
上传文件
使用Web组件的下载能力
使用网页多媒体
使用WebRTC进行Web视频会议
托管网页中的媒体播放
处理网页内容
使用Web组件打印前端页面
使用Web组件的PDF文档预览能力
网页中安全区域计算和避让适配
同层渲染
使用离线Web组件
Web调试维测
使用DevTools工具调试前端页面
使用crashpad收集Web组件崩溃信息
Background Tasks Kit(后台任务开发服务)
Background Tasks Kit简介
短时任务
长时任务
延迟任务
代理提醒
Core File Kit(文件基础服务)
Core File Kit简介
应用文件
应用文件概述
应用沙箱目录
应用文件访问与管理
应用文件访问(ArkTS)
应用文件访问(C/C++)
应用及文件系统空间统计
应用文件分享
应用数据备份恢复
应用数据备份恢复概述
应用接入数据备份恢复
设备升级应用数据迁移适配指导
应用数据迁移功能介绍
适配流程
应用数据迁移适配指导
环境准备
创建新工程
BackupExtensionAbility的实现
元数据资源配置文件适配
module.json5适配
验证应用数据迁移
开发者自验证
应用沙箱数据准备
HarmonyOS NEXT上模拟验证应用数据迁移
端到端验证
常见问题与异常处理
代码开发注意事项
用户文件
用户文件概述
用户文件uri介绍
FileUri开发指导(C/C++)
获取用户目录环境(C/C++)
选择与保存用户文件
选择用户文件
保存用户文件
授权持久化
授权持久化(C/C++)
获取并使用公共目录
分布式文件系统
分布式文件系统概述
设置分布式文件数据等级
跨设备文件访问
跨设备文件拷贝
Form Kit(卡片开发服务)
Form Kit简介
服务卡片开发指导(Stage模型)
开发基于ArkTS UI的卡片
ArkTS卡片运行机制
ArkTS卡片相关模块
ArkTS卡片开发指导
创建一个ArkTS卡片
配置卡片的配置文件
卡片生命周期管理
开发卡片页面
卡片页面能力说明
卡片使用动效能力
卡片使用自定义绘制能力
开发卡片事件
卡片事件能力说明
拉起卡片提供方的UIAbility(router事件)
拉起卡片提供方的UIAbility到后台(call事件)
通过message事件刷新卡片内容
通过router或call事件刷新卡片内容
卡片数据交互
卡片内容更新
卡片定时刷新
卡片定点刷新
刷新本地图片和网络图片
根据卡片状态刷新不同内容
开发基于JS UI的卡片
服务卡片开发指导(FA模型)
IME Kit(输入法开发服务)
IME Kit简介
实现一个输入法应用
在自绘编辑框中使用输入法
切换输入法应用
输入法子类型开发指南
输入法安全模式介绍
在自绘编辑框中使用输入法开发指导 (C/C++)
IPC Kit(进程间通信服务)
IPC Kit简介
IPC与RPC通信开发指导
远端状态订阅开发实例
IPC通信开发指导(C/C++)
Localization Kit(本地化开发服务)
国际化和本地化概述
应用国际化
国际化界面设计
区域标识与文化习惯划分
设置语言与用户偏好
设置系统语言与区域
设置应用偏好语言
时间日期国际化
数字与度量衡国际化
电话号码格式化
设置日历和历法
时区与夏令时国际化
时区
夏令时跳变
多语言排序
概述
本地习惯排序
创建索引
字符处理
本地化名称
本地化语言与地区名称
本地化时区名称
应用本地化
提供多语言资源
提升可翻译性
避免硬编码与拼接
提供翻译场景
支持单复数
本地化测试
伪本地化测试
伪本地化测试概述
翻译伪本地化测试
界面镜像伪本地化测试
语言测试
UI Design Kit(UI设计套件)
UI Design Kit简介
应用展示图标HarmonyOS设计风格化处理
(推荐)分层图标处理
单层图标处理
UI Design Kit常见问题
怎么获取layeredDrawableDescriptor对象信息?
系统
Archived
安全
程序访问控制
访问控制概述
应用权限管控
应用权限管控概述
申请应用权限
选择申请权限的方式
声明权限
向用户申请授权
二次向用户申请授权
向用户申请单次授权
申请使用受限权限
应用权限列表
对所有应用开放
受限开放权限
仅对MDM应用开放
应用权限组列表
使用系统Picker
使用安全控件
安全控件概述
使用粘贴控件
使用保存控件
使用位置控件
应用加密
密码自动填充服务
密码自动填充服务概述
应用接入密码保险箱
快速适配
自动保存
账号密码保存
账号密码更新
自动填充
账号密码填充
强密码填充
为应用添加自动生成高强度密码的建议
自定义布局下的适配建议
系统可适配的场景
网页接入密码保险箱
Asset Store Kit(关键资产存储服务)
Asset Store Kit简介
常见场景
保护密码类数据
保护需要用户认证的密码类数据
Asset Store Kit开发指导(ArkTS)
新增关键资产(ArkTS)
删除关键资产(ArkTS)
更新关键资产(ArkTS)
查询关键资产(ArkTS)
查询需要用户认证的关键资产(ArkTS)
Asset Store Kit开发指导(C/C++)
新增关键资产(C/C++)
删除关键资产(C/C++)
更新关键资产(C/C++)
查询关键资产(C/C++)
Crypto Architecture Kit(加解密算法框架服务)
Crypto Architecture Kit简介
密钥生成和转换
密钥生成与转换介绍
密钥生成和转换规格
对称密钥生成和转换规格
非对称密钥生成和转换规格
密钥生成和转换开发指导
随机生成对称密钥(ArkTS)
随机生成对称密钥(C/C++)
指定二进制数据转换对称密钥(ArkTS)
指定二进制数据转换对称密钥(C/C++)
随机生成非对称密钥对(ArkTS)
随机生成非对称密钥对(C/C++)
指定二进制数据转换非对称密钥对(ArkTS)
指定二进制数据转换非对称密钥对(C/C++)
指定密钥参数生成非对称密钥对
使用ECC压缩/非压缩公钥格式转换(ArkTS)
使用ECC压缩/非压缩公钥格式转换(C/C++)
使用ECC压缩/非压缩点格式转换
指定PEM格式字符串数据转换非对称密钥对(ArkTS)
指定PEM格式字符串数据转换非对称密钥对(C/C++)
加解密
加解密介绍
加解密算法规格
对称密钥加解密算法规格
非对称密钥加解密算法规格
分段加解密说明
加解密开发指导
使用AES对称密钥(GCM模式)加解密(ArkTS)
使用AES对称密钥(GCM模式)加解密(C/C++)
使用AES对称密钥(CCM模式)加解密(ArkTS)
使用AES对称密钥(CCM模式)加解密(C/C++)
使用AES对称密钥(CBC模式)加解密(ArkTS)
使用AES对称密钥(CBC模式)加解密(C/C++)
使用AES对称密钥(ECB模式)加解密(ArkTS)
使用AES对称密钥(ECB模式)加解密(C/C++)
使用AES对称密钥(GCM模式)分段加解密(ArkTS)
使用AES对称密钥(GCM模式)分段加解密(C/C++)
使用3DES对称密钥(ECB模式)加解密(ArkTS)
使用3DES对称密钥(ECB模式)加解密(C/C++)
使用SM4对称密钥(ECB模式)加解密(ArkTS)
使用SM4对称密钥(ECB模式)加解密(C/C++)
使用SM4对称密钥(CBC模式)加解密(ArkTS)
使用SM4对称密钥(CBC模式)加解密(C/C++)
使用SM4对称密钥(GCM模式)加解密(ArkTS)
使用SM4对称密钥(GCM模式)加解密(C/C++)
使用SM4对称密钥(GCM模式)分段加解密(ArkTS)
使用SM4对称密钥(GCM模式)分段加解密(C/C++)
使用RSA非对称密钥(PKCS1模式)加解密
使用RSA非对称密钥分段加解密
使用RSA非对称密钥(PKCS1_OAEP模式)加解密
使用SM2非对称密钥加解密
使用SM2密文格式转换
签名验签
签名验签介绍及算法规格
签名验签开发指导
使用RSA密钥对(PKCS1模式)签名验签(ArkTS)
使用RSA密钥对(PKCS1模式)验签(C/C++)
使用RSA密钥对(PKCS1模式)签名及签名恢复(ArkTS)
使用RSA密钥对(PKCS1模式)签名恢复(C/C++)
使用RSA密钥对分段签名验签(PKCS1模式)(ArkTS)
使用RSA密钥对分段验签(PKCS1模式)(C/C++)
使用RSA密钥对签名验签(PSS模式)(ArkTS)
使用RSA密钥对验签(PSS模式)(C/C++)
使用ECDSA密钥对签名验签(ArkTS)
使用ECDSA密钥对验签(C/C++)
使用SM2密钥对签名验签(ArkTS)
使用SM2密钥对验签(C/C++)
密钥协商
密钥协商介绍及算法规格
密钥协商开发指导
使用ECDH进行密钥协商
使用X25519进行密钥协商
使用DH进行密钥协商
消息摘要计算
消息摘要计算介绍及算法规格
消息摘要计算开发指导
消息摘要计算(ArkTS)
消息摘要计算(C/C++)
消息认证码计算
安全随机数生成
密钥派生
密钥派生介绍及算法规格
使用PBKDF2进行密钥派生
使用HKDF进行密钥派生
跨平台数据兼容实践指导
Data Protection Kit(数据保护服务)
数据防泄漏服务
数据防泄漏服务简介
数据防泄漏服务开发指导
Device Certificate Kit(设备证书服务)
Device Certificate Kit简介
证书算法库框架
证书算法库框架概述
证书对象的创建、解析和校验
证书扩展信息对象的创建、解析和校验
证书吊销列表对象的创建、解析和校验
证书链校验时从p12文件构造TrustAnchor对象数组
证书链校验器对象的创建和校验
证书集合及证书吊销列表集合对象的创建和获取
证书链对象的创建和校验
证书管理
证书管理概述
证书管理开发指导
设备真实性证明
设备真实性证明能力简介
设备真实性证明开发指导
应用端开发
服务器端开发
设备真实性证明集成设计实践
Device Security Kit(设备安全服务)
Device Security Kit简介
服务配额
开发准备
开通Device Security服务
基于服务账号生成鉴权令牌
应用设备状态检测
安全检测
系统完整性检测
URL检测
可信应用服务
安全摄像头场景
安全地理位置场景
签名验证
验证匿名证书链
验证签名
安全审计
业务风险检测
涉诈剧本检测
个人数据处理说明
Enterprise Data Guard Kit(企业数据保护服务)
Enterprise Data Guard Kit简介
开发准备
启动公共目录文件扫描任务
打开文件
设置文件属性标签
获取文件属性标签
获取文件URI
删除扫描范围内的文件
更新安全管控策略
设置KIA文件列表
Enterprise Data Guard Kit常见问题
Enterprise Data Guard Kit权限获取
Online Authentication Kit(在线认证服务)
Online Authentication Kit简介
开发准备
FIDO免密身份认证
IFAA免密身份认证
SOTER免密身份认证
网站链接免责声明
Universal Keystore Kit(密钥管理服务)
Universal Keystore Kit简介
通用密钥库基础概念
密钥生成/导入
密钥生成
密钥生成介绍及算法规格
开发指导
生成密钥(ArkTS)
生成密钥(C/C++)
密钥导入
密钥导入介绍及算法规格
开发指导
明文导入密钥(ArkTS)
明文导入密钥(C/C++)
加密导入密钥(ArkTS)
加密导入密钥(C/C++)
密钥使用
密钥使用介绍及通用流程
加密/解密
加密/解密介绍及算法规格
开发指导
加解密(ArkTS)
加解密(C/C++)
签名/验签
签名/验签介绍及算法规格
开发指导
签名/验签(ArkTS)
签名/验签(C/C++)
密钥协商
密钥协商介绍及算法规格
开发指导
密钥协商(ArkTS)
密钥协商(C/C++)
密钥派生
密钥派生介绍及算法规格
开发指导
密钥派生(ArkTS)
密钥派生(C/C++)
访问控制
用户身份认证访问控制简介
开发指导
用户身份认证访问控制开发指导
细粒度用户身份认证访问控制开发指导
HMAC
HMAC介绍及算法规格
开发指导
HMAC(ArkTS)
HMAC(C/C++)
密钥删除
密钥删除(ArkTS)
密钥删除(C/C++)
密钥证明
密钥证明介绍及算法规格
开发指导
匿名密钥证明(ArkTS)
匿名密钥证明(C/C++)
其他操作
查询密钥是否存在
查询密钥是否存在(ArkTS)
查询密钥是否存在(C/C++)
获取密钥属性
获取密钥属性(ArkTS)
获取密钥属性(C/C++)
密钥导出
密钥导出(ArkTS)
密钥导出(C/C++)
查询密钥别名集
查询密钥别名集(ArkTS)
查询密钥别名集(C/C++)
User Authentication Kit(用户认证服务)
User Authentication Kit简介
用户身份认证开发指导
开发准备
查询支持的认证能力
发起认证
认证过程中取消认证
切换自定义认证
查询用户注册凭据的状态
使用嵌入式用户身份认证控件
网络
Connectivity Kit(短距通信服务)
Connectivity Kit简介
蓝牙
蓝牙服务开发概述
蓝牙设置开发指导
广播与扫描开发指导
通用属性协议开发指导
串行通信开发指导
NFC
NFC标签读写开发指南
HCE卡模拟开发指南
安全单元访问开发指南
WLAN
WLAN服务开发概述
P2P模式开发指导
Distributed Service Kit(分布式管理服务)
Distributed Service Kit简介
分布式设备管理开发指南
Network Kit(网络服务)
Network Kit简介
Network Kit数据传输能力
HTTP数据请求
WebSocket连接
WebSocket连接(C/C++)
Socket 连接
MDNS管理
Network Kit网络管理能力
网络连接管理
NetConnection开发指导
流量管理
VPN应用开发指南
Network Boost Kit(网络加速服务)
Network Boost Kit简介
开发准备
网络质量
网络质量评估
网络场景识别
应用传输体验反馈
弱网感知判决
连接迁移
连接迁移通知
迁移模式设置
Remote Communication Kit(远场通信服务)
Remote Communication Kit简介
开发准备
基础能力
使用fetch发送网络请求
使用get发送网络请求
使用post发送网络请求
使用put发送网络请求
使用head发送网络请求
使用delete发送网络请求
使用cancel取消网络请求
使用close关闭会话
使用fetchsync发送同步网络请求 (C/C++)
使用fetch发起异步网络请求 (C/C++)
使用get发送网络请求 (C/C++)
使用post发送网络请求 (C/C++)
使用put发送网络请求 (C/C++)
使用head发送网络请求 (C/C++)
使用delete发送网络请求 (C/C++)
使用cancel取消网络请求 (C/C++)
使用close关闭会话 (C/C++)
远场通信场景
获取服务器资源
发送数据到服务器
断点续传
双向证书校验
拦截器
使用自定义证书校验
上传下载文件
设置TLS版本号和加密套件
获取服务器资源 (C/C++)
发送数据到服务器 (C/C++)
断点续传 (C/C++)
双向证书校验 (C/C++)
拦截器 (C/C++)
证书锁定
响应校验
读写超时
请求暂停和恢复
同步读写流
Service Collaboration Kit(协同服务)
Service Collaboration Kit简介
跨设备互通(ArkTS)
跨设备互通特性简介
跨设备互通开发指导
跨设备互通NDK(C)
跨设备互通NDK特性概述
跨设备互通NDK开发指导
跨设备互通(RichEditor控件)
Service Collaboration Kit常见问题
接入跨设备互通控件后,设备选择列表没有周围设备
Telephony Kit(蜂窝通信服务)
Telephony Kit简介
拨打电话
短信服务
基础功能
Basic Services Kit(基础服务)
Basic Services Kit简介
进程线程通信
使用公共事件进行进程间通信
公共事件简介
动态订阅公共事件
取消动态订阅公共事件
公共事件发布
使用Emitter进行线程间通信
账号管理
应用账号
管理应用账号
USB服务
USB服务开发概述
USB服务开发指导
常见问题
剪贴板服务
申请访问剪贴板权限
使用剪贴板进行复制粘贴
使用剪贴板进行延迟复制粘贴
上传下载
应用文件上传下载
压缩与解压
压缩与解压
Function Flow Runtime Kit(任务并发调度服务)
Function Flow Runtime Kit概述
Function Flow Runtime 开发指导
Input Kit(多模输入服务)
多模输入开发概述
输入设备开发指导
鼠标光标开发指导
事件监听开发指导(C/C++)
事件拦截开发指导(C/C++)
MDM Kit(企业设备管理服务)
MDM Kit简介
MDM Kit开发指南
EnterpriseAdminExtensionAbility开发指南
Status Bar Extension Kit(状态栏开放服务)
Status Bar Extension Kit简介
应用接入状态栏
硬件
Car Kit(车服务)
Car Kit简介
开发准备
设置系统导航状态
设置系统导航数据
注册监听系统导航信息和指令
取消注册监听系统导航信息和指令
注册出行业务事件监听
取消注册出行业务事件监听
获取出行业务事件信息
注册智慧出行连接状态的监听
取消注册智慧出行连接状态的监听
获取智慧出行连接状态
Driver Development Kit(驱动开发服务)
Driver Development Kit简介
外设扩展驱动客户端开发指导
外设扩展驱动开发指导
常见问题
Multimodal Awareness Kit(多模态融合感知服务)
Multimodal Awareness Kit简介
Stationary开发指导
Pen Kit(手写笔服务)
Pen Kit简介
手写功能开发
接入手写套件
接入报点预测
接入一笔成形
接入全局取色
Pen Kit常见问题
Pen Kit手写套件是否支持自定义笔刷?
Pen Kit手写套件是否支持自定义笔宽?
Pen Kit手写套件是否支持自定义颜色?
Pen Kit手写套件的工具栏是否可以单独提供?
集成了Pen Kit手写套件,还需要集成报点预测吗?
集成了Pen Kit手写套件,还需要集成一笔成形吗?
Pen Kit报点预测功能能够调整预测的程度吗?
为什么一笔成形识别不出来?
Sensor Service Kit(传感器服务)
Sensor Service Kit开发简介
传感器
传感器开发概述
传感器开发指导(ArkTS)
传感器开发指导(C/C++)
振动
振动开发概述
振动开发指导(ArkTS)
振动开发指导(C/C++)
Wear Engine Kit(穿戴服务)
Wear Engine简介
业务简介
场景介绍
开发准备
申请接入Wear Engine服务
配置Client ID
手机侧应用开发
已连接穿戴设备查询
请求用户授权
穿戴设备信息查询
目标设备选择
应用间消息通信
状态查询与订阅
穿戴设备模板化通知
穿戴设备传感器获取
管理应用与Wear Engine服务的连接状态
穿戴侧应用开发
调测验证
Wear Engine常见问题
如果工程已有APP ID,是否需要重新申请,填写新的APP ID
使用AppInfo时,如何获取应用身份标识
没有弹出用户授权界面
接口调用时返回App has not applied for the Wear Engine service错误信息
打开HR传感器后,没有立刻上报数据
HR传感器数据中,有值为0或255的数据
手机和轻量级智能穿戴设备通信,提示错误码206
手机侧应用发送文件给穿戴设备侧应用时,提示错误码1008500011
更多:若以上FAQ仍不能解决,可通过在线提单反馈
个人数据处理说明
调测调优
Performance Analysis Kit(性能分析服务)
Performance Analysis Kit简介
HiLog使用指导
使用HiLog打印日志(ArkTS)
使用HiLog打印日志(C/C++)
HiAppEvent使用指导
HiAppEvent介绍
事件订阅
应用事件
订阅应用事件(ArkTS)
订阅应用事件(C/C++)
系统事件
崩溃事件
崩溃事件介绍
订阅崩溃事件(ArkTS)
订阅崩溃事件(C/C++)
卡死事件
卡死事件介绍
订阅卡死事件(ArkTS)
订阅卡死事件(C/C++)
资源泄漏事件
资源泄漏事件介绍
订阅资源泄漏事件(ArkTS)
订阅资源泄漏事件(C/C++)
踩内存事件
踩内存事件介绍
订阅踩内存事件(ArkTS)
订阅踩内存事件(C/C++)
主线程超时事件
主线程超时事件介绍
订阅主线程超时事件(ArkTS)
订阅主线程超时事件(C/C++)
启动耗时事件
启动耗时事件介绍
订阅启动耗时事件(ArkTS)
滑动丢帧事件
滑动丢帧事件介绍
订阅滑动丢帧事件(ArkTS)
CPU高负载事件
CPU高负载事件介绍
订阅CPU高负载事件(ArkTS)
24h功耗器件分解统计事件
24h功耗器件分解统计事件介绍
订阅24h功耗器件分解统计事件(ArkTS)
HiTraceMeter使用指导
使用HiTraceMeter跟踪性能(ArkTS/JS)
使用HiTraceMeter跟踪性能(C/C++)
查看HiTraceMeter日志
HiTraceChain使用指导
使用HiTraceChain打点(ArkTS/JS)
使用HiTraceChain打点(C/C++)
HiChecker使用指导
使用HiChecker检测问题(ArkTS)
HiDebug使用指导
使用HiDebug获取调试信息(ArkTS)
使用HiDebug获取调试信息(C/C++)
HiCollie使用指导
使用HiCollie检测业务线程卡死卡顿问题(C/C++)
错误管理
错误管理开发指导
应用恢复开发指导
故障分析
分析JS Crash(进程崩溃)
分析CppCrash(进程崩溃)
分析AppFreeze(应用无响应)
分析Resource Leak(资源泄露)
Test Kit(应用测试服务)
Test Kit简介
调试命令
aa工具
bm工具
打包拆包工具
打包工具
拆包工具
扫描工具
cem工具
anm工具
edm工具
restool工具
param工具
power-shell工具
atm工具
hdc
hilog
hidumper
hitrace
hiperf
hilogtool
命令行工具
toybox
mediatool工具
媒体
Archived
Audio Kit(音频服务)
Audio Kit简介
使用合适的音频流类型
音频焦点和音频会话介绍
音频焦点管理
使用AudioSession管理应用音频焦点(ArkTS)
使用AudioSession管理应用音频焦点(C/C++)
音频播放
音频播放开发概述
使用AudioRenderer开发音频播放功能
响应音频流输出设备变更
使用OHAudio开发音频播放功能(C/C++)
使用AudioHaptic开发音振协同播放功能
播放音量管理
音效管理
音频播放流管理
管理全局音频输出设备
音频录制
音频录制开发概述
使用AudioCapturer开发音频录制功能
使用OHAudio开发音频录制功能(C/C++)
管理麦克风
音频录制流管理
管理全局音频输入设备
音频通话
音频通话开发概述
开发音频通话功能
不再推荐使用
从OpenSL ES切换到OHAudio(C/C++)
使用OpenSL ES开发音频播放功能(C/C++)
使用OpenSL ES开发音频录制功能(C/C++)
AVCodec Kit(音视频编解码服务)
AVCodec Kit简介
AVCodec支持的格式
音视频编解码
获取支持的编解码能力
音频编码
音频解码
视频编码
时域可分层视频编码
典型场景的视频编码配置
视频解码
AudioVivid能力
AudioVivid能力介绍
AudioVivid解封装
AudioVivid解码
AudioVivid播放
HDR Vivid能力
HDR Vivid视频播放
HDR Vivid视频录制
视频解码支持HDRVivid2SDR
媒体数据封装与解析
媒体数据封装
媒体数据解析
AVSession Kit(音视频播控服务)
AVSession Kit简介
本地媒体会话
本地媒体会话概述
媒体会话提供方
应用接入AVSession场景介绍
分布式媒体会话
使用投播组件
播控特性简介
投播组件开发指导
扩展屏投播开发指导
使用通话设备切换组件
应用接入播控自检
应用接入播控自检表
应用接入播控检查项详细说明
基础播控
快捷播放
音视频投播
播控推荐服务
Camera Kit(相机服务)
Camera Kit简介
开发准备
相机开发指导(ArkTS)
相机管理(ArkTS)
设备输入(ArkTS)
会话管理(ArkTS)
预览(ArkTS)
拍照(ArkTS)
录像(ArkTS)
元数据(ArkTS)
对焦(ArkTS)
手电筒使用(ArkTS)
适配不同折叠状态的摄像头变更(ArkTS)
分段式拍照(ArkTS)
动态照片(ArkTS)
相机基础动效(ArkTS)
在Worker线程中使用相机(ArkTS)
相机旋转
适配相机旋转角度(ArkTS)
相机旋转角度的术语
安全相机(ArkTS)
动态调整预览帧率(ArkTS)
使用相机预配置(ArkTS)
相机最佳实践(ArkTS)
通过系统相机拍照和录像(ArkTS)
拍照实现方案(ArkTS)
录像实现方案(ArkTS)
双路预览(ArkTS)
分段式拍照实现方案(ArkTS)
相机启动恢复实现方案(ArkTS)
HDR Vivid相机拍照(ArkTS)
HDR Vivid相机录像(ArkTS)
相机开发指导(C/C++)
相机管理 (C/C++)
设备输入(C/C++)
会话管理(C/C++)
预览(C/C++)
预览流二次处理(C/C++)
拍照(C/C++)
分段式拍照(C/C++)
录像(C/C++)
元数据(C/C++)
对焦(C/C++)
手电筒使用(C++)
动态调整预览帧率(C/C++)
使用相机预配置(C/C++)
相机最佳实践(C/C++)
拍照实现方案(C/C++)
录像实现方案(C/C++)
DRM Kit(数字版权保护服务)
DRM Kit 简介
数字版权保护开发指导(ArkTS)
DRM系统管理(ArkTS)
DRM会话管理(ArkTS)
数字版权保护开发指导(C/C++)
DRM系统管理(C/C++)
DRM会话管理(C/C++)
Image Kit(图片处理服务)
Image Kit简介
图片开发指导(ArkTS)
使用ImageSource完成图片解码
使用PixelMap完成图像变换
使用PixelMap完成位图操作
使用ImagePacker完成图片编码
编辑图片EXIF信息
图片开发指导(C/C++)
介绍Image_NativeModule结构体信息
使用Image_NativeModule完成图片解码
使用Image_NativeModule完成图片接收器
使用Image_NativeModule完成位图操作
使用Image_NativeModule处理图像信息
使用Image_NativeModule完成图片编码
使用ImageEffect编辑图片
图片开发指导(依赖JS对象)(C/C++)
使用Image完成图片解码
使用Image完成图片接收器
使用Image完成图像变换
使用Image处理PixelMap数据
使用Image完成图片编码
Media Kit(媒体服务)
Media Kit简介
媒体开发指导(ArkTS)
播放
使用AVPlayer播放音频(ArkTS)
使用AVPlayer播放视频(ArkTS)
使用AVPlayer设置播放URL(ArkTS)
使用AVPlayer播放流媒体(ArkTS)
使用AVPlayer添加视频外挂字幕(ArkTS)
使用SoundPool播放短音频(ArkTS)
录制
使用AVRecorder录制音频(ArkTS)
使用AVRecorder录制视频(ArkTS)
使用AVScreenCaptureRecorder录屏写文件(ArkTS)
媒体信息查询
使用AVMetadataExtractor提取音视频元数据信息(ArkTS)
使用AVImageGenerator提取视频指定时间图像(ArkTS)
视频转码
使用AVTranscoder实现视频转码(ArkTS)
媒体开发指导(C/C++)
播放
使用AVPlayer播放音频(C/C++)
使用AVPlayer播放视频(C/C++)
录屏
使用AVScreenCapture录屏取码流(C/C++)
使用AVScreenCapture录屏写文件(C/C++)
视频处理
视频缩放
视频动态元数据生成
视频色彩空间转换
Media Library Kit(媒体文件管理服务)
Media Library Kit 简介
使用Picker选择媒体库资源
保存媒体库资源
使用PhotoPicker组件访问图片/视频
使用AlbumPicker组件访问相册列表
使用RecentPhoto组件获取最近一张图片
使用PhotoPicker推荐图片
动态照片
访问和管理动态照片资源
使用MovingPhotoView播放动态照片
受限开放能力
开发准备
媒体资源使用指导
用户相册资源使用指导
系统相册资源使用指导
媒体资源变更通知相关指导
使用MediaAssetManager请求媒体资源(C/C++)
Ringtone Kit(铃声服务)
Ringtone Kit简介
设置铃声
Scan Kit(统一扫码服务)
Scan Kit简介
开发准备
接入“扫码直达”服务
默认界面扫码
自定义界面扫码
图像识码
识别本地图片
识别图像数据
码图生成
通过文本生成码图
通过字节数组生成码图
Scan Kit常见问题
如何添加“扫码直达”服务的快速入口
扫码直达跳转失败
Scan Kit无法识别多个码图
上传软件包时提示“上传的软件包与声明支持设备不一致”
相册扫码识别多码失败
条形码识别错误
条形码识别坐标信息为空
自定义界面扫码预览画面出现拉伸
自定义界面扫码黑屏现象
自定义界面如何连续扫码(customScan.rescan)
通过字节数组生成码图无法识别
默认界面扫码取消后,如何感知
H5场景如何接入扫码
如何主动通过手势缩放变焦比
自定义界面扫码如何实现扫码框
默认界面扫码/自定义界面扫码体验设计
个人数据处理说明
图形
Archived
AR Engine(AR引擎服务)
AR Engine简介
开发准备
管理AR会话
获取设备位姿
检测环境中的平面
识别平面语义
识别目标形状
AR物体摆放
AR Engine常见问题
获取检测平面的二维顶点数组时报错:“plane is nullptr!”,返回错误码:401
摄像头被遮挡一段时间后再放开,输出的位姿有跳变
反光、光线暗或者弱纹理场景(输入图像颜色变化小)下无法识别平面
某些特殊场景下(如附近存在磁场干扰、手机发烫或扫描到重复纹理等),出现平面漂移或者位姿数据跳变现象
ArkGraphics 2D(方舟2D图形服务)
ArkGraphics 2D简介
使用可变帧率能力定制不同内容的绘制帧率
可变帧率简介
请求动画绘制帧率
请求UI绘制帧率
请求自绘制内容绘制帧率
NativeDisplaySoloist开发指导 (C/C++)
过度绘制调试使用指导
图形绘制与显示
图形绘制与显示开发概述
画布的获取与绘制结果的显示
画布的获取与绘制结果的显示(ArkTS)
画布的获取与绘制结果的显示(C/C++)
画布操作及状态
画布操作及状态处理(ArkTS)
画布操作及状态处理(C/C++)
绘制效果
绘制效果概述
基础绘制效果(ArkTS)
复杂绘制效果(ArkTS)
基础绘制效果(C/C++)
复杂绘制效果(C/C++)
图元绘制
图元绘制概述
几何形状绘制(ArkTS)
图片绘制(ArkTS)
字块绘制(ArkTS)
几何形状绘制(C/C++)
图片绘制(C/C++)
字块绘制(C/C++)
使用Text模块实现文本显示
NativeBuffer开发指导 (C/C++)
NativeImage开发指导 (C/C++)
NativeVSync开发指导 (C/C++)
NativeWindow开发指导 (C/C++)
图形开发术语
ArkGraphics 3D(方舟3D图形)
ArkGraphics 3D简介
ArkGraphics 3D场景搭建以及管理
ArkGraphics 3D资源创建以及使用
ArkGraphics 3D场景动画控制以及管理
Graphics Accelerate Kit(图形加速服务)
Graphics Accelerate Kit简介
超帧功能开发
内插模式
概述
OpenGL ES平台
Vulkan平台
外插模式
概述
OpenGL ES平台
Vulkan平台
顶点标记
ABR功能开发
OpenGTX功能开发
Graphics Accelerate Kit常见问题
超帧和ABR支持的图形API有哪些?
Kit支持的设备类型有哪些?
开启超帧外插模式后运动物体边缘出现严重拖影现象,可能的原因是什么?
哪些特征的Buffer适合使能ABR?
ABR进行Buffer分辨率调整引起其他Pass渲染效果异常,该如何解决?
集成ABR后,从游戏引擎获取到的Native纹理内容为空,该如何解决?
XEngine Kit(GPU加速引擎服务)
XEngine Kit简介
开发准备
空域GPU超分
时域AI超分
空域AI超分
自适应VRS
Subpass Shading
XEngine Kit常见问题
创建特性实例失败如何处理
超分和自适应VRS特性是否可以同时使用
自适应VRS深度附件使用说明
空域AI超分的输出颜色附件是否需要通过OH_NativeBuffer创建
应用服务
Archived
Account Kit(华为账号服务)
Account Kit简介
开发者使用Account Kit的登录能力的管理细则
开发准备
配置Client ID
配置scope权限
登录
概述
华为账号一键登录(获取手机号和UnionID/OpenID)
华为账号登录(获取UnionID/OpenID)
使用“华为账号登录”按钮登录
使用自定义按钮登录
静默登录
订阅华为账号的登录/登出事件
获取华为账号用户信息
概述
获取头像昵称
获取手机号
获取手机号概述
快速验证
获取收货地址
获取发票抬头
未成年人模式
概述
应用跟随系统未成年人模式(推荐)
应用内开启/关闭系统未成年人模式
订阅和处理用户信息变更
Account Kit常见问题
OpenID和UnionID的格式说明
Access Token和Refresh Token的有效时长是多久
Access Token和Refresh Token长度限制要求
调用接口获取应用级Access Token时,是否有次数和频率限制
无法获取手机号或获取到的手机号为空如何解决
ID Token的使用场景与使用方法
未成年人模式开启后USB断连如何解决
HarmonyOS APK应用和HarmonyOS应用在一键登录场景下的用户数据如何互通
使用华为账号一键登录功能时,是以华为账号的UnionID/OpenID还是以手机号作为用户的主要标识?
个人数据处理说明
Ads Kit(广告服务)
Ads Kit简介
流量变现服务开发
流量变现服务开发概述
横幅广告
原生广告
激励广告
插屏广告
开屏广告
贴片广告
流量变现服务常见问题
展示广告时显示白屏
展示原生广告时传入广告数组为何只展示一个广告?
鲸鸿动能媒体服务平台打开受限
广告标识服务
鲸鸿动能Ads kit个人数据处理说明
Calendar Kit(日历服务)
Calendar Kit简介
日历账户管理
日程管理
Call Kit(通话服务)
Call Kit简介
开发准备
订阅或取消订阅voipCallUiEvent事件
向系统通知来电消息
向系统通知去电消息
应用上报通话中的静音、扬声器事件
向系统通知通话状态变化
向系统通知通话状态改变,并指定通话类型
向系统通知来电连接建立失败
Call Kit常见问题
来电横幅无法拉起
来电横幅通知头像无法显示
Cloud Foundation Kit(云开发服务)
Cloud Foundation Kit简介
开发准备
开通云函数服务
开通云数据库服务
开通云存储服务
云函数
开发函数
Node.js
创建并配置函数
测试函数
调用函数
云数据库
新增对象类型
新增存储区
引入对象类型文件
初始化数据库访问
写入数据
查询数据
删除数据
云存储
设置云存储配置项
初始化存储实例
上传指定文件至云侧
下载云侧文件至本地
获取云侧文件下载地址
删除云侧文件
获取云侧文件列表
获取云侧文件的元数据
设置云侧文件的元数据
Cloud Foundation Kit常见问题
使用云存储上传文件失败,提示“404:Product does not exist”
使用云存储上传文件失败,app日志提示“"state":65”,upload进程日志提示“403 Forbidden”
个人数据处理说明
Contacts Kit(联系人服务)
Contacts Kit开发概述
Game Service Kit(游戏服务)
Game Service Kit简介
开发准备
基础游戏服务功能开发(必选)
简介
接入流程
接入步骤
导入模块
初始化
注册事件监听
联合登录
绑定游戏官方账号(绑定场景)
未成年人防沉迷
提交角色信息
游戏场景感知功能开发(可选)
个人数据处理说明
游戏上架
上架前自检
上架申请
Game Service Kit常见问题
如何和HarmonyOS系统的游戏数据互通?需要游戏侧开发适配吗?
保存角色信息接口是否必须接入?
是否需要在游戏初始化成功后才可以调用其他业务接口?
包名是否必须以.huawei结尾?
实名认证和防沉迷是华为负责还是游戏自己实现?
如何获取华为账号中的头像昵称等信息?
把HarmonyOS的游戏进度转移到HarmonyOS NEXT游戏的过程中,开发者需要做什么?
同一个游戏账号,HarmonyOS系统手机上的游戏和HarmonyOS NEXT系统手机上的游戏能否两边互通?
从用户体验角度,是否能提示用户到游戏中心转移或回退?
角色转移回退后,能否知会开发者以便数据关联?
原系统游戏登录使用的openId,转移到HarmonyOS NEXT游戏时,HarmonyOS NEXT游戏保存的用户标识是gamePlayerId,如何进行绑定?
游戏没有历史渠道包,不存在转移的场景,或者未配置支持转移,可以直接跳过吗?
若玩家选择“绑定”登录方式,华为游戏中心的“转移”操作是否不再可用?
绑定场景下,用户不授权手机时,如何获得相关信息做华为账号和官方账号的绑定?
用户授权的手机号是华为账号绑定的手机号还是安全手机号?
当切换游戏账号或进行其他操作时,如何强制拉起联合登录弹框?
联合登录弹框是否可以由开发者定制?
玩家选错游戏的登录方式后如何补救?
如果玩家的华为账号没有HarmonyOS游戏的登录记录,是否仅剩“绑定”方式可选?
游戏是否可以不提供解绑能力?
“提交角色信息”这一步是否是必须接入?
Health Service Kit(运动健康服务)
Health Service Kit简介
接入流程
应用开发者申请资质说明
开发接入
数据开放总览
开发准备
申请运动健康服务
配置Client ID
应用开发
管理用户授权
管理数据源
管理运动健康数据
运动健康采样数据
锻炼记录
健康记录
实时三环数据
数据类型
概要
权限说明
采样数据
日常活动
心率
血氧
压力
体温
血压
体重
身高
锻炼记录数据
简介
跑步
健走
骑行
跳绳
户外探险
篮球
滑雪
潜水闭气测试
潜水闭气训练
潜水
椭圆机
高尔夫
登山
游泳
划船机
其他运动
健康记录数据
睡眠
申请验证获取正式权限
个人数据处理说明
Health Service Kit常见问题
读取今天的日常活动数据统计,与运动健康App页面数据不一致
授权后仍然没有数据类型权限
在授权时上报1001502003错误
在授权时上报1001502014错误
用户隐私未同意,如何引导用户打开运动健康App
附录
如何获取帮助
标志使用规范
IAP Kit(应用内支付服务)
IAP Kit简介
IAP Kit接入规范
使用入门
开发准备
开通商户服务
开启和激活应用内购买服务
(可选)配置应用内购买服务参数
配置应用身份信息
配置商品信息
商品购买
消耗型/非消耗型商品购买
接入购买
权益发放
自动续期订阅商品购买
订阅说明
接入订阅
权益发放
沙盒测试
收益分析和报告
IAP Kit常见问题
AppGallery Connect中可以配置多个关键事件通知接收地址吗?
AppGallery Connect获取的IAP公钥最大长度是多少?便于用户存储设置的最大长度是多少?
AppGallery Connect商品管理页面,商品价格编辑界面的默认价格表示什么意思?
在AppGallery Connect中单独修改商品在某个地区的价格,以后汇率变动,是否会影响应用内的商品价格?
AppGallery Connect商品管理页面中,价格展示是否做了数字调整?比如小数点第二位6/9等调整?
是否必须使用SHA256的证书才能通过验签?
签名校验是否可以都在服务端执行?
支付的UI界面只有一种吗?是否还有其他支付界面?
是否能在删除商品后添加具有相同productId的商品?
IAP服务器支持的证书范围
IAP服务器支持的加密套件范围
如何解决证书链不完整?
Live View Kit(实况窗服务)
Live View Kit简介
实况窗设计规范
开发准备
开通推送服务权益
设置数据处理位置
开通实况窗权益
接入联调测试
申请实况窗正式权限
开发实况窗场景
开发实况窗须知
构建本地实况窗
通过Push Kit更新实况窗
Live View Kit常见问题
更新实况窗被频控的问题
三方开发框架接入的问题
关于实况窗生命周期的问题
关于实况窗模板使用的问题
关于实况窗数量约束的问题
Location Kit(位置服务)
Location Kit简介
申请位置权限开发指导
获取设备的位置信息开发指导
地理编码转化与逆地理编码转化开发指导
地理围栏开发指导
个人数据处理说明
相关实例
Map Kit(地图服务)
Map Kit简介
开发准备
创建地图
显示地图
切换地图类型
显示我的位置
显示自定义地图
地图交互
控件交互
手势交互
事件交互
更改地图位置
地图截图
在地图上绘制
标记
折线
弧线
多边形
圆形
点注释
气泡
点聚合
覆盖物
3D建筑
动态轨迹
设置地图元素压盖顺序
位置搜索
Poi搜索
地理编码
路径规划
出行路线规划
批量算路
轨迹绑路
静态图
地图Picker
地点详情展示
地点选取
区划选择
通过Petal 地图应用实现导航等能力
地图计算工具
坐标转换
距离计算
Map Kit常见问题
地图不显示
siteId参数如何获取
手势卡顿或者不生效
个人数据处理说明
附录
地图审图号
地图数据版权声明
支持的语言
支持的国家/地区
Notification Kit(用户通知服务)
Notification Kit简介
请求通知授权
管理通知角标
管理通知渠道
发布通知
发布文本类型通知
发布进度条类型通知
为通知添加行为意图
取消通知
Payment Kit(华为支付服务)
Payment Kit简介
华为支付接入规范
开发准备
商户入网和获取商户号
(可选)特定场景配置操作
开通华为支付服务
商户号绑定AppID
准备证书
端侧应用配置
云侧服务准备
商户基础支付场景
平台类商户合单支付场景
免密支付接入
免密代扣说明
支付并签约场景
签约代扣场景
Payment Kit常见问题
接入开发时,请求参数的签名、结果验签在什么场景使用?
Payment Kit的签名公私钥怎么获取?
GET请求的bodySign是对谁签名得到的?
拉起收银台无反应?
拉起收银台报错?
支付成功后没有收到回调?
同一用户重复签约华为支付服务会生成多笔签约吗?
华为支付签约的免密代扣在哪里可以解约?
关于支付回调的验签,为什么预下单请求验签的时候使用SH256,回调验签却使用SM2?只能使用SM2进行验签吗?
接口请求响应“无效的签名”应该如何排查?
收银台报错“服务暂不可用,请稍后重试”?
预下单请求报错“交易订单状态异常”?
预下单一段时间后再支付,能否有接口查到prepayId?
部分提供通知回调的API接口中的callbackUrl参数是否可以自定义?回调通知的报文是否支持商户自定义?
同一次支付请求接收到多次回调通知,怎么解决?
商户提供的回调通知接口在Payment Kit生产环境需要加网络允许清单吗?如何验证提供的回调地址Payment Kit服务器访问是否正常?
商户侧没有传营销信息,支付回调里面为什么会有营销信息?
华为支付服务App和元服务接口入参除了appId不同,其他如商户号、证书、秘钥这些可以使用相同的吗?
商户入网后,有商户接入联调环境吗?
请求头PayMercAuth中的callerId和请求体中的mercNo或者combineMercNo是什么关系?
请求接口加签验证中,如果请求头“PayMercAuth”中bodySign字段为空值,会做验签吗?还是会先校验字段?
不更换商户订单号重复发起退款,返回000000,不返回退款金额是为什么?
Payment Kit的退款操作,除了通过接入指导中的退款接口退款,还有财务功能相关平台吗?能从这个平台进行退款?
下载账单文件后,应该使用哪种格式来解析日期?
收银台支付报错“应用信息校验不通过,请联系商家处理”?
商户号绑定AppID提示“主体不一致”?
PDF Kit(PDF服务)
PDF Kit简介
pdfService能力
打开和保存PDF文档
添加、删除PDF页
PDF页面文本、图片和批注
转换PDF文档为图片
转换指定页面或指定区域为图片
转换整个PDF文档为图片
判断PDF文档是否加密及删除加密
添加、删除书签
添加、删除页眉页脚
添加、删除水印
添加、删除背景
PdfView预览组件
预览PDF文档
打开和保存PDF文档
设置PDF文档预览效果
搜索关键字
高亮显示PDF文档
批注
PDF页面转换为图片
PDF Kit 常见问题
PDF Kit可以移除具体页面的页眉页脚,水印,背景吗?
PDF文档支持在线预览吗?
PDF文档加载和保存问题?
Preview Kit(文件预览服务)
Preview Kit简介
文件预览
Preview Kit 常见问题
openPreview打开显示预览失败
DocumentViewPicker拿到的uri通过openPreview打开显示预览失败
Push Kit(推送服务)
Push Kit简介
开发准备
学习Push Kit接入规范
开通推送服务
申请推送场景化消息权益
获取Push Token
推送场景化消息
推送通知消息
发送通知消息
撤回通知消息
推送授权订阅消息
推送卡片刷新消息
推送通知扩展消息
发送通知扩展消息
撤回通知扩展消息
推送后台消息
推送实况窗消息
推送应用内通话消息
端云调试
端云调试概述
基于服务账号生成鉴权令牌
推送场景化消息
(可选)开发消息回执
获取AAID
Push Kit常见问题
如何处理云侧推送消息成功端侧消息未展示的问题
如何处理误分类问题
如何处理推送通知消息数量不够用问题
关于通知消息被频控的问题
应用内通话消息在设备重启后的首次锁屏状态问题
应用内通话消息来电接听与横幅问题
个人数据处理说明
附录
通知内容管理细则
通知违规处罚标准
Scenario Fusion Kit(融合场景服务)
Scenario Fusion Kit简介
开发准备
场景化Button
快速验证手机号Button
选择头像Button
打开授权设置页Button
打开APP Button
选择收货地址Button
选择发票抬头Button
地图选点Button
场景化API
智能填充服务
智能填充概述
典型场景展示
动态修改ContentType值
自动补全地址表单所在地区
推荐数据源及推荐逻辑说明
ContentType使用场景说明
H5/三方框架接入智能填充
H5接入智能填充
React Native框架+H5接入智能填充
Flutter框架+H5接入智能填充
Taro框架+H5接入智能填充
Weex框架+H5接入智能填充
mPaas框架+H5接入智能填充
H5/三方框架和HarmonyOS配置项映射关系
Scenario Fusion Kit常见问题
单击快速验证手机号按钮,无法拉起半模态页面
打开应用功能跳转第三方应用失败
剪贴板粘贴框遮挡智能填充选择框
个人数据处理说明
Share Kit(分享服务)
Share Kit简介
宿主应用发起分享
宿主应用接入模式
手机应用发起系统分享
2in1应用发起系统分享
手机应用发起碰一碰分享
概述
分享App Linking直达应用
宿主应用配置操作区
获取精准的utd类型
常见分享场景
分享链接
分享图片
分享视频
分享文本
目标应用处理分享内容
应用内处理分享内容
二级面板处理分享内容
二级面板关闭分享面板
共享联系人信息到分享推荐区
目标应用设计规范
Share Kit常见问题
拉起系统分享框失败
分享数据类型不支持
获取uri数据无操作权限
Store Kit(应用市场服务)
Store Kit简介
数字商品服务
概述
接入流程
启用数字商品服务
开通相关服务和配置参数
配置应用
配置数字商品
数字商品介绍
通过AppGallery Connect配置数字商品
通过Server API配置数字商品
应用内分发数字商品
展示数字商品
购买数字商品
发放数字商品权益
测试数字商品服务
应用市场推荐
产品特性按需分发
生态查询服务
应用市场更新功能
应用归因服务
开发概述
开发准备
注册企业账号
注册归因角色
管理转化事件
标准转化事件
自定义转化事件
登记归因来源及转化
归因结果回传
接入调试功能
隐私管理服务
Store Kit常见问题
AppGallery Connect中可以配置多个订阅关键事件回调地址吗?
AppGallery Connect获取的IAP公钥最大长度是多少?便于用户存储设置的最大长度是多少?
AppGallery Connect商品管理页面,商品价格编辑界面的默认价格表示什么意思?
在AppGallery Connect中单独修改商品在某个地区的价格,以后汇率变动,是否会影响应用内的商品价格?
AppGallery Connect商品管理页面中,价格展示是否做了数字调整?比如小数点第二位6/9等调整?
是否必须使用SHA256的证书才能通过验签?
签名校验是否可以都在服务端执行?
支付的UI界面只有一种吗?是否还有其他支付界面?
是否能在删除商品后添加具有相同productId的商品?
数字商品服务器支持证书
数字商品服务器支持加密套件
如何解决证书链不完整?
数字商品服务中订单订购状态有哪些?
订阅商品的续费周期规则是什么?
订阅型商品中的续费周期1个月是指30天、31天还是自然月?同理,2个月、3个月具体包含多少天数?
订阅时长按照自然月计算时,2月份是28天还是29天?
应用市场推荐展示元服务卡片异常
按需加载场景中加载动态模块失败
按需加载模块是否支持单独上架应用市场或单独更新?
按需加载场景中,应用在加载指定模块后重启,还是已加载状态吗?是否需要重新发起按需加载请求?
按需加载场景中,用户在加载指定模块后是否可以卸载,然后重新发起请求?
未上架应用市场的应用如何快速接入调试产品特性按需分发功能?
生态查询服务场景中获取自身场景值为空
应用市场更新功能抛出不在前台异常
向用户显示应用更新提示弹框文案能否自定义?
调用应用归因服务登记归因来源接口报错身份检查错误
如何过滤应用归因服务的日志?
附录
Wallet Kit(钱包服务)
Wallet Kit简介
创建Wallet Kit服务
数字车钥匙
概述
云侧开发准备
钥匙开通
车控
接入交通卡
概述
云侧准备
交通卡开通
交通卡充值
交通卡更新
交通卡删卡
Wallet Kit常见问题
华为Wallet Kit服务支持哪些国家/地区?
开发者应用使用Wallet Kit,是否需要集成华为Account Kit?
如果用户没有登录华为账号,添加卡券时如何处理?
现有提供的几种接入方式中,比较常用的是哪种?
添加卡券时商户服务器主要需要执行哪些步骤?
如何查看已添加卡券?
用户领取了同一商户的多张卡券,但是打开华为钱包后只显示一张卡券?
用户删卡时会删除哪些信息?
Weather Service Kit(天气服务)
Weather Service Kit简介
开发准备
获取天气数据
Weather Service Kit 常见问题
如何获取指定城市的天气数据?
Weather Service Kit接口有定位功能吗?
请求了分钟级降水预报/天气预警/潮汐,未返回任何数据。
个人数据处理说明
AI
Archived
Core Speech Kit(基础语音服务)
Core Speech Kit简介
文本转语音
语音识别
Core Vision Kit(基础视觉服务)
Core Vision Kit简介
通用文字识别
人脸检测
人脸比对
主体分割
多目标识别
骨骼点检测
HiAI Foundation Kit(HiAI Foundation 服务)
HiAI Foundation Kit简介
开发准备
模型优化
Model Zoo
模型轻量化
概述
无训练量化
插件式量化
网络结构搜索训练
模型轻量化示例
模型轻量化常见问题
模型收益
模型转换
离线模型转换
OMG参数
模型转换前准备
模型转换示例
AIPP
概述
AIPP参数
模型转换AIPP配置文件说明
可变data_type
端侧部署
部署全流程
模型推理
AIPP部署
异构
内存零拷贝
深度融合
App集成
创建项目
配置项目NAPI
集成模型
单算子应用
HiAI Foundation Kit常见问题
判断模型能否在手机上运行?
如何选择使用同步接口还是异步接口?
推理函数支持的数据格式有哪些?
如何处理OMG离线模型输出算子类型错误?
算法在设计模型时,如何确认哪些算子在HiAI上性能较优?
附录
版本获取方法
支持的算子
可视化工具
Intents Kit(意图框架服务)
Intents Kit简介
Intents Kit接入流程
习惯推荐方案
概述
场景体验
接入方案
开发者测试
事件推荐方案
概述
场景体验
接入方案
开发者测试
技能调用方案
概述
场景体验
接入方案
本地搜索方案
概述
场景体验
接入方案
意图框架上架配置指导
附录A:获取华为账号对应UID的方式
MindSpore Lite Kit(昇思推理框架服务)
MindSpore Lite Kit简介
使用MindSpore Lite进行模型转换
模型部署
使用MindSpore Lite引擎进行模型推理 (C/C++)
使用MindSpore Lite引擎进行端侧训练 (C/C++)
使用MindSpore Lite实现图像分类(ArkTS)
使用MindSpore Lite实现图像分类(C/C++)
Natural Language Kit(自然语言理解服务)
Natural Language Kit简介
分词
实体抽取
Neural Network Runtime Kit(Neural Network运行时服务)
Neural Network Runtime Kit简介
Neural Network Runtime对接AI推理框架开发指导
Speech Kit(场景化语音服务)
Speech Kit简介
朗读控件
AI字幕控件
Vision Kit(场景化视觉服务)
Vision Kit简介
人脸活体检测
卡证识别
文档扫描
AI识图
一次开发,多端部署
Archived
前言
简介
从一个例子开始
应用UX设计
工程管理
页面开发的一多能力介绍
简介
布局能力
布局简介
自适应布局
响应式布局
典型布局场景
典型页面场景
应用市场首页
音乐专辑页
设置应用页面
交互归一
多态组件
资源使用
功能开发的一多能力介绍
常见问题
案例应用
自由流转
Archived
自由流转概述
应用接续
应用接续特性简介
应用接续开发指导
跨设备拖拽
跨设备拖拽特性简介
跨设备拖拽开发指导
跨设备剪贴板
跨设备剪贴板特性简介
跨设备剪贴板开发指导
NDK开发
Archived
NDK开发导读
创建NDK工程
构建NDK工程
NDK工程构建概述
使用DevEco Studio模板构建NDK工程
使用命令行CMake构建NDK工程
在NDK工程中使用预构建库
毕昇编译器
代码开发
代码开发概述
C/C++标准库
C/C++标准库机制概述
fdsan使用指导
使用Node-API实现跨语言交互
Node-API简介
Node-API支持的数据类型和接口
Node-API开发规范
使用Node-API实现跨语言交互开发流程
Node-API使用指导
使用Node-API扩展能力接口
使用Node-API接口进行array相关开发
使用Node-API接口进行ArrayBuffer相关开发
使用Node-API接口操作bigint类型值
使用Node-API接口进行buffer相关开发
使用Node-API接口创建基本数据类型
使用Node-API进行class相关开发
使用Node-API接口注册和使用环境清理钩子
使用Node-API接口进行Date相关开发
使用Node-API接口进行错误处理开发
使用Node-API接口关联数据,使其生命周期与当前环境的生命周期相关联
使用Node-API接口进行函数创建和调用
使用Node-API接口进行生命周期相关开发
使用Node-API接口进行object相关开发
使用Node-API接口关于其他实用工具
使用Node-API接口进行primitive类相关开发
使用Node-API接口处理异步操作
使用Node-API接口设置ArkTS对象的属性
使用Node-API接口创建和获取string值
使用Node-API进行自定义异步操作相关开发
Node-API典型使用场景
使用Node-API接口进行异步任务开发
使用Node-API接口进行线程安全开发
Native与ArkTS对象绑定
Native与Sendable ArkTS对象绑定
使用Node-API接口创建ArkTS运行时环境
使用Node-API接口在主线程中进行模块加载
使用扩展的Node-API接口在异步线程中运行和停止事件循环
使用Node-API接口进行模块加载
使用Node-API接口从异步线程向ArkTS线程投递指定优先级和入队方式的的任务
Node-API常见问题
使用JSVM-API实现JS与C/C++语言交互
JSVM-API简介
JSVM-API 支持的数据类型和接口
使用JSVM-API实现JS与C/C++语言交互开发流程
JSVM-API开发规范
JSVM-API使用规范
JSVM-API常见问题
JSVM-API使用指导
使用JSVM-API接口进行任务队列相关开发
使用JSVM-API接口进行虚拟机快照相关开发
使用JSVM-API接口进行WebAssembly模块相关开发
使用JSVM-API接口进行函数创建和调用
使用JSVM-API接口进行JSON操作
使用JSVM-API接口进行array相关开发
使用JSVM-API接口进行ArrayBuffer相关开发
使用JSVM-API接口操作bigint类型值
使用JSVM进行class相关开发
使用JSVM-API接口进行Date相关开发
使用JSVM-API接口进行object相关开发
使用JSVM-API接口进行primitive类相关开发
使用JSVM-API接口处理异步操作
使用Node-API接口设置JavaScript对象的属性
使用JSVM-API接口获取JSVM API的版本号
使用JSVM-API接口进行错误处理开发
使用JSVM-API接口进行JavaScript代码调试调优
使用JSVM-API接口进行生命周期相关开发
使用JSVM-API进行内存管理
使用JSVM-API判断给定的两个JS value是否严格相等
JSVM-API典型使用场景指导
JSVM-API调试&定位
JSVM-API调优&高性能使用示例
使用JSVM-API接口创建多个引擎执行JS代码并销毁
使用 code cache 加速编译
JSVM 通用调优实践
OpenMP支持
OpenMP简介
OpenMP应用构建和运行指南
资源管理
Rawfile开发指导
线程调度
QoS 开发指导
内存管理
内存管理purgeable内存开发指导
设备管理
USB DDK开发指导
HID DDK开发指导
包管理
NativeBundle开发指导
调试和性能分析
调试和性能分析概述
通过DevEco Studio调试
LLDB高性能调试器
C/C++内存错误检测
硬件兼容性
硬件兼容性简介
HarmonyOS ABI
CPU特性
使用Neon指令扩展
工具
DevEco Studio
Archived
工具简介
快速开始
下载软件
安装DevEco Studio
创建和运行Hello World
配置代理
无网络环境配置指导
工程管理
工程介绍
工程目录结构
工程模板介绍
创建一个新的工程
工程转换及迁移
一体化工程迁移
适配OHPM包管理
创建Lite工程
模块管理
添加/删除Module
在模块中添加Ability
创建服务卡片
添加Page
导入Sample工程
创建意图框架
代码编辑
代码阅读
代码生成/补全
代码检查
代码实时检查及快速修复
代码Code Linter检查
代码Quick Fix快速修复
代码重构
生成ArkTSDoc文档
跨语言代码编辑
界面预览
概述
PreviewChecker检测规则
查看ArkTS/JS预览效果
查看ArkUI预览效果
Profile Manager
查看多端设备预览效果
Inspector双向预览
预览数据模拟
支持使用预览器的API清单
应用/元服务开发
开发及引用共享包
开发静态共享包
开发动态共享包
发布共享包
引用共享包
.tgz格式共享包转换为.har格式
生成应用图标
快速插入场景化代码片段
端云一体化开发
文档导览
业务介绍
开发准备
注册华为开发者账号并实名认证
搭建开发环境
在AGC创建项目和HarmonyOS应用/元服务
开发端云工程
创建端云一体化开发工程
创建HarmonyOS应用工程
创建元服务工程
历史工程转换为端云一体化开发工程
开发云侧工程
开发云函数
开发流程
创建并配置函数
开发函数
调试函数
部署函数
开发云对象
开发流程
创建云对象
开发云对象
调试云对象
部署云对象
开发云数据库
开发流程
创建对象类型
添加数据条目
部署云数据库
(可选)一键生成Model Class
部署云侧工程
(可选)同步云端代码至DevEco Studio工程
开发端侧工程
在端侧调用云侧代码
在端侧调用云函数
在端侧调用云对象
在端侧访问云数据库
在端侧调用云存储
(可选)通过CloudDev面板获取云开发资源支持
打包测试
发布上架
FAQ
附录:云开发工程模板
通用云开发模板
编译构建
概述
构建系统生命周期
配置文件说明
hvigor-config.json5
build-profile.json5
构建任务说明
构建产物说明
配置构建
多模块管理
添加依赖项
配置多目标产物
能力说明
实践说明
配置CPP
构建HAR
多工程构建
HAP唯一性校验逻辑
自定义.hvigor目录路径
定制构建
灵活定制编译选项
能力说明
实践说明
获取自定义编译参数
能力说明
实践说明
动态修改编译配置
能力说明
实践说明
优化构建
分析构建性能
优化构建性能
提高hvigor构建性能
hvigor守护进程
增量构建
默认开启模块化编译模式
预构建库快速链接
扩展构建
开发hvigor任务
开发hvigor插件
扩展构建API
基础构建能力
工程模型
插件上下文
API使用示例
加固构建
代码混淆
问题排查
使用日志记录
编译构建常见问题
应用/元服务签名
应用/元服务运行
使用本地真机运行应用/元服务
使用模拟器运行应用/元服务
概述
使用环境
模拟器与真机的差异
管理模拟器
创建模拟器
启动和关闭模拟器
使用模拟器
操控屏幕
使用工具栏
移动和缩放模拟器
模拟器访问网络
安装应用程序包和上传文件
更多的扩展能力
模拟器常见问题
应用/元服务调试
调试概述
自定义运行/调试配置
代码调试
ArkTS代码调试
debug启动调试
attach启动调试
等待调试
使用断点
检查变量
使用调试器
反向调试
extension调试
worker/taskpool调试
Evaluate and log
Smart Step Into
Native代码调试
启动调试
使用断点
检查变量
汇编调试
查看内存信息
使用LLDB调试命令
反向调试
堆栈可视化
so信息可视化
设置执行点
Smart Step Into
跨语言调试
三方源码调试
增量调试
多进程调试
Hot Reload
开发者选项
日志分析
故障分析
FaultLog
堆栈轨迹分析
异常堆栈解析原理
使用ASan检测内存错误
使用TSan检测线程错误
方舟运行时检测
布局分析
访问设备文件
截屏
录屏
性能分析
DevEco Profiler性能调优概述
DevEco Profiler工具简介
整体界面布局及概念
会话区
数据区
使用DevEco Profiler进行性能调优
性能优化过程简介
性能问题定界:实时监控
性能问题定位:深度录制
基础耗时分析:Time分析
基础内存分析:Allocation分析
内存分析及优化
分析数据筛选
分析启动内存
内存泄露分析:Snapshot分析
Snapshot模板基本操作
ArkTS内存泄露分析
CPU活动分析:CPU分析
卡顿丢帧分析
Frame分析
ArkUI分析
冷启动分析:Launch分析
并行并发:Concurrency分析
加载丢帧:ArkWeb分析
网络诊断:Network分析
附录
快捷键
应用/元服务测试
测试框架
代码测试
Instrument Test
Local Test
Mock能力
黑盒覆盖率测试
应用与元服务体检
HarmonyOS应用/元服务发布
AI智能辅助编程工具
CodeGenie
安装插件
插件登录
知识问答
代码补全和代码生成
万能卡片
应用UI生成
附录
Code Linter代码检查规则
规则变更说明
通用规则@typescript-eslint
@typescript-eslint/adjacent-overload-signatures
@typescript-eslint/await-thenable
@typescript-eslint/array-type
@typescript-eslint/ban-ts-comment
@typescript-eslint/ban-tslint-comment
@typescript-eslint/ban-types
@typescript-eslint/brace-style
@typescript-eslint/class-literal-property-style
@typescript-eslint/comma-dangle
@typescript-eslint/comma-spacing
@typescript-eslint/consistent-indexed-object-style
@typescript-eslint/consistent-type-assertions
@typescript-eslint/consistent-type-definitions
@typescript-eslint/consistent-type-imports
@typescript-eslint/default-param-last
@typescript-eslint/dot-notation
@typescript-eslint/explicit-function-return-type
@typescript-eslint/explicit-member-accessibility
@typescript-eslint/explicit-module-boundary-types
@typescript-eslint/func-call-spacing
@typescript-eslint/init-declarations
@typescript-eslint/keyword-spacing
@typescript-eslint/lines-between-class-members
@typescript-eslint/member-delimiter-style
@typescript-eslint/member-ordering
@typescript-eslint/method-signature-style
@typescript-eslint/naming-convention
@typescript-eslint/no-array-constructor
@typescript-eslint/no-base-to-string
@typescript-eslint/no-confusing-non-null-assertion
@typescript-eslint/no-confusing-void-expression
@typescript-eslint/no-dupe-class-members
@typescript-eslint/no-duplicate-imports
@typescript-eslint/no-dynamic-delete
@typescript-eslint/no-empty-function
@typescript-eslint/no-empty-interface
@typescript-eslint/no-explicit-any
@typescript-eslint/no-extraneous-class
@typescript-eslint/no-extra-non-null-assertion
@typescript-eslint/no-extra-parens
@typescript-eslint/no-extra-semi
@typescript-eslint/no-floating-promises
@typescript-eslint/no-for-in-array
@typescript-eslint/no-implicit-any-catch
@typescript-eslint/no-implied-eval
@typescript-eslint/no-inferrable-types
@typescript-eslint/no-invalid-this
@typescript-eslint/no-invalid-void-type
@typescript-eslint/no-loop-func
@typescript-eslint/no-loss-of-precision
@typescript-eslint/no-magic-numbers
@typescript-eslint/no-misused-new
@typescript-eslint/no-misused-promises
@typescript-eslint/no-namespace
@typescript-eslint/no-non-null-asserted-optional-chain
@typescript-eslint/no-non-null-assertion
@typescript-eslint/no-parameter-properties
@typescript-eslint/no-redeclare
@typescript-eslint/no-require-imports
@typescript-eslint/no-restricted-syntax
@typescript-eslint/no-shadow
@typescript-eslint/no-this-alias
@typescript-eslint/no-throw-literal
@typescript-eslint/no-type-alias
@typescript-eslint/no-unnecessary-boolean-literal-compare
@typescript-eslint/no-unnecessary-condition
@typescript-eslint/no-unnecessary-qualifier
@typescript-eslint/no-unnecessary-type-arguments
@typescript-eslint/no-unnecessary-type-assertion
@typescript-eslint/no-unnecessary-type-constraint
@typescript-eslint/no-unsafe-argument
@typescript-eslint/no-unsafe-assignment
@typescript-eslint/no-unsafe-call
@typescript-eslint/no-unsafe-member-access
@typescript-eslint/no-unsafe-return
@typescript-eslint/no-unused-expressions
@typescript-eslint/no-unused-vars
@typescript-eslint/no-use-before-define
@typescript-eslint/no-useless-constructor
@typescript-eslint/prefer-as-const
@typescript-eslint/prefer-enum-initializers
@typescript-eslint/prefer-for-of
@typescript-eslint/prefer-function-type
@typescript-eslint/prefer-includes
@typescript-eslint/prefer-literal-enum-member
@typescript-eslint/prefer-namespace-keyword
@typescript-eslint/prefer-nullish-coalescing
@typescript-eslint/prefer-optional-chain
@typescript-eslint/prefer-readonly
@typescript-eslint/prefer-readonly-parameter-types
@typescript-eslint/prefer-reduce-type-parameter
@typescript-eslint/prefer-regexp-exec
@typescript-eslint/prefer-string-starts-ends-with
@typescript-eslint/prefer-ts-expect-error
@typescript-eslint/promise-function-async
@typescript-eslint/quotes
@typescript-eslint/require-array-sort-compare
@typescript-eslint/require-await
@typescript-eslint/restrict-plus-operands
@typescript-eslint/restrict-template-expressions
@typescript-eslint/return-await
@typescript-eslint/semi
@typescript-eslint/space-before-function-paren
@typescript-eslint/space-infix-ops
@typescript-eslint/strict-boolean-expressions
@typescript-eslint/switch-exhaustiveness-check
@typescript-eslint/triple-slash-reference
@typescript-eslint/type-annotation-spacing
@typescript-eslint/typedef
@typescript-eslint/unbound-method
@typescript-eslint/unified-signatures
prefer-const
eqeqeq
安全规则@security
@security/no-commented-code
@security/no-cycle
@security/no-unsafe-aes
@security/no-unsafe-dh
@security/no-unsafe-dh-key
@security/no-unsafe-dsa
@security/no-unsafe-dsa-key
@security/no-unsafe-ecdsa
@security/no-unsafe-hash
@security/no-unsafe-mac
@security/no-unsafe-rsa-encrypt
@security/no-unsafe-rsa-key
@security/no-unsafe-rsa-sign
@security/specified-interface-call-chain-check
性能规则@performance
@performance/high-frequency-log-check
@performance/hp-arkts-no-use-any-export-current
@performance/hp-arkts-no-use-any-export-other
@performance/hp-arkui-avoid-empty-callback
@performance/hp-arkui-avoid-update-auto-state-var-in-aboutToReuse
@performance/hp-arkui-combine-same-arg-animateto
@performance/hp-arkui-image-async-load
@performance/hp-arkui-limit-refresh-scope(已下线)
@performance/hp-arkui-load-on-demand
@performance/hp-arkui-no-func-as-arg-for-reusable-component
@performance/hp-arkui-no-high-freq-log(已下线)
@performance/hp-arkui-no-state-var-access-in-loop
@performance/hp-arkui-no-stringify-in-lazyforeach-key-generator
@performance/hp-arkui-reduce-pangesture-distance
@performance/hp-arkui-remove-container-without-property
@performance/hp-arkui-remove-redundant-nest-container
@performance/hp-arkui-remove-redundant-state-var
@performance/hp-arkui-remove-unchanged-state-var
@performance/hp-arkui-replace-nested-reusable-component-by-builder
@performance/hp-arkui-set-cache-count-for-lazyforeach-grid
@performance/hp-arkui-suggest-cache-avplayer
@performance/hp-arkui-suggest-reuseid-for-if-else-reusable-component
@performance/hp-arkui-suggest-use-effectkit-blur
@performance/hp-arkui-suggest-use-get-anonymousid-async
@performance/hp-arkui-use-attributeUpdater-control-refresh-scope
@performance/hp-arkui-use-grid-layout-options
@performance/hp-arkui-use-id-in-get-resource-sync-api
@performance/hp-arkui-use-local-var-to-replace-state-var
@performance/hp-arkui-use-object-link-to-replace-prop
@performance/hp-arkui-use-onAnimationStart-for-swiper-preload
@performance/hp-arkui-use-reusable-component
@performance/hp-arkui-use-row-column-to-replace-flex
@performance/hp-arkui-use-scale-to-replace-attr-animateto
@performance/hp-arkui-use-taskpool-for-web-request
@performance/hp-arkui-use-transition-to-replace-animateto
@performance/hp-arkui-use-word-break-to-replace-zero-width-space
@performance/hp-arkui-wrap-waterflow-if-else-footer(已下线)
@performance/hp-performance-no-closures
@performance/hp-performance-no-dynamic-cls-func
@performance/lazyforeach-args-check(已下线)
@performance/lottie-animation-destroy-check
@performance/no-high-loaded-frame-rate-range
@performance/number-init-check
@performance/object-creation-check(已下线)
@performance/sparse-array-check
@performance/start-window-icon-check
@performance/timezone-interface-check
@performance/typed-array-check
@performance/waterflow-data-preload-check
@performance/multiple-associations-state-var-check
@performance/constant-property-referencing-check-in-loops
@performance/foreach-args-check
预览规则@previewer
@previewer/mandatory-default-value-for-local-initialization
@previewer/no-page-method-on-preview-component
@previewer/no-unallowed-decorator-on-root-component
一次开发多端部署规则@cross-device-app-dev
@cross-device-app-dev/color-value
@cross-device-app-dev/font-size-unit
@cross-device-app-dev/font-size
@cross-device-app-dev/grid-columns-span
@cross-device-app-dev/grid-span-value
@cross-device-app-dev/size-unit
@cross-device-app-dev/touch-target-size
@cross-device-app-dev/sidebar-navigation
@cross-device-app-dev/color-contrast
ArkTS代码风格规则@hw-stylistic
@hw-stylistic/array-bracket-spacing
@hw-stylistic/brace-style
@hw-stylistic/comma-spacing
@hw-stylistic/curly
@hw-stylistic/file-naming-convention
@hw-stylistic/indent
@hw-stylistic/keyword-spacing
@hw-stylistic/max-len
@hw-stylistic/no-multi-spaces
@hw-stylistic/no-tabs
@hw-stylistic/object-property-newline
@hw-stylistic/one-var-declaration-per-line
@hw-stylistic/operator-linebreak
@hw-stylistic/quotes
@hw-stylistic/semi-spacing
@hw-stylistic/space-before-blocks
@hw-stylistic/space-before-function-paren
@hw-stylistic/space-infix-ops
运维服务
应用/元服务体检规则
规则总览
应用内点击操作响应快
应用内点击操作完成快
应用内滑动操作响应快
应用内滑动过程流畅
应用内转场操作流畅
应用动态内存峰值占用
应用前台场景内存峰值占用
应用后台CPU占用峰值
图形渲染服务处理节点数小于500
DevEco Studio配置参数列表
关闭数据采集
Command Line Tools
Archived
获取命令行工具
codelinter
hstack
hvigorw
ohpm
系统平台要求
ohpmrc
oh-package.json5
常用命令
ohpm config
ohpm help
ohpm info
ohpm init
ohpm install
ohpm list
ohpm publish
ohpm uninstall
ohpm prepublish
ohpm unpublish
ohpm update
ohpm root
ohpm version
ohpm cache clean
ohpm run
ohpm --version
ohpm ping
ohpm clean
ohpm dist-tags
ohpm convert
搭建流水线
DevEco Service
Archived
ohpm-repo私仓搭建工具
概述
快速开始
配置文件
日志
相关命令
ohpm-repo help
ohpm-repo install
ohpm-repo start
ohpm-repo restart
ohpm-repo stop
ohpm-repo --version
ohpm-repo encrypt_password
ohpm-repo pack
ohpm-repo deploy
ohpm-repo restore
ohpm-repo mirror_storage
ohpm-repo check_storage
ohpm-repo remove_instance
数据迁移相关命令
ohpm-repo export_pkginfo
ohpm-repo batch_download
ohpm-repo batch_publish
ohpm-repo export_userinfo
ohpm-repo import_userinfo
部署指导
单点部署
多实例部署
页面功能介绍
前台页面
个人中心主页
用户管理
仓库管理
认证管理
组织管理
操作日志
系统设置
安全配置指南
常见问题FAQ
附录
ohpm-repo私仓历史文档(1.0.1和1.1.0版本)
概述
快速开始
配置文件
日志
相关命令
ohpm-repo help
ohpm-repo start
start 1.0.1 版本
start 1.1.0 版本
ohpm-repo restart
restart 1.0.1 版本
restart 1.1.0 版本
ohpm-repo stop
ohpm-repo --version
ohpm-repo encrypt_password
ohpm-repo pack
ohpm-repo restore
ohpm-repo deploy
ohpm-repo check_storage
ohpm-repo mirror_storage
部署指导
单点部署
多实例部署
数据迁移
版本升级
升级版本1.0.1至1.1.0
升级版本1.0.1至2.X.X/5.X.X
升级版本1.1.0至2.X.X/5.X.X
2.X.X与5.X.X版本升级
自定义存储插件
自定义存储插件配置
模板文件
自定义认证插件
自定义认证插件配置
模板文件
数据备份
导出OpenHarmony三方库中心仓元数据至ohpm-repo
ohpm仓库接口协议
测试
应用测试
Archived
应用测试概述
单元测试和UI测试
自动化测试框架使用指导
应用UI测试(基于python)
自定义性能脚本测试(基于python)
专项测试
命令行工具
SmartPerf Device性能工具使用指导
wukong稳定性工具使用指导
DevEco Testing
稳定性测试
性能测试
回归测试
应用基础质量测试
性能指标监控测试报告对比工具
体验建议
应用体验建议
Archived
体验建议概述
应用基础功能和兼容性体验建议
概述
系统特性与基础功能
通用规格
应用规格
元服务规格
卡片规格
自由流转规格
音频规格
显示规格
协议规格
基础兼容性
OS兼容
升级兼容
设备兼容
应用稳定性体验建议
应用性能体验建议
概述
时延
帧率
内容显示
内存占用
CPU占用
应用功耗体验建议
概述
后台场景
后台任务使用
后台硬件资源使用
后台软件资源使用
前台场景
前台帧率
前台绘制渲染
前台资源使用
应用安全隐私体验建议
概述
安全
基础要求
开发调试要求
发布运行要求
应用动态更新要求
运维要求
隐私
隐私政策
用户同意
收集和使用
权限
广告标识符
注销
纯净
应用UX体验建议
您当前浏览的
HarmonyOS 5.0.0(API 12)
文档归档不再维护,推荐您使用
最新版本
。详细请参考
文档维护策略变更
。
指南
应用服务
PDF Kit(PDF服务)
pdfService能力
转换PDF文档为图片
转换PDF文档为图片
转换指定页面或指定区域为图片
转换整个PDF文档为图片
PDF页面文本、图片和批注
转换指定页面或指定区域为图片
在 指南 中进行搜索
只在 应用服务 中搜索
只搜索章节标题
请输入您想要搜索的关键词
智能客服
你问我答,随时在线为你解决问题
合作咨询
我们的专家服务团队将竭诚为您提供专业的合作咨询服务
解决方案
精准高效的一站式服务支持,助力开发者商业成功