写点什么

“答开发者问”之 HarmonyOS 技术问题解析 第 18 期

  • 2025-11-28
    北京
  • 本文字数:3784 字

    阅读完需:约 12 分钟

“答开发者问”之HarmonyOS技术问题解析 第18期

本文原创发布在华为开发者联盟社区,欢迎前往与更多开发者进行互动。更多相关问题可点击原帖进行交流:“答开发者问”之HarmonyOS技术问题解析 第18期 。

本期问题如下:

1、如何比较方便的获取设备的UDID?

2、无内购无广告且不联网的游戏上架时是否需要版号?

3、怎么实现类似于练字的功能?

4、Arkweb如何正确加载web的当前title?

5、HarmonyOS NEXT应用测试都有哪些工具可以使用,它们的使用场景有哪些区别?

问题一:如何比较方便的获取设备的 UDID?

使用命令符时出现:'hdc' 不是内部或外部命令,也不是可运行的程序或批处理文件。请问如何通过 hdc 命令获取设备的 UDID?

解决方案:

可以使用 hdc shell bm get --udid 获取设备 UDID。

关于'hdc' 不是内部或外部命令,也不是可运行的程序或批处理文件这个问题,需要将 DevEcoStudio 的安装目录 DevEcoStudio\sdk\default\openharmony\toolchains 配置到系统环境变量 path 里,详情可参考HDC配置

原链接:

如何比较方便的获取设备的UDID啊?-华为开发者问答 | 华为开发者联盟 (huawei.com)

​​问题二:无内购无广告且不联网的游戏上架时是否需要版号?

我是个人开发者,写了个小游戏,无内购,无广告,也不联网,上架时是否需要版号?

解决方案:

根据华为应用市场的审核要求,单机游戏需要版号。


以下是具体说明:游戏版权与版号规定

  • 华为应用市场明确要求,无论单机还是网络游戏,均需提供 《网络游戏出版物号(ISBN)》或《版号批文》 等合法资质文件。该规定适用于所有在中国大陆地区发布的游戏应用。

  • 资质审核流程:

游戏上架前必须通过 资质审核,且版号是核心审核项之一。若未提交有效版号,应用将无法通过审核。

  • 常见误区澄清:

  • 单机游戏是否例外?

否。华为应用市场未对单机游戏豁免版号要求,所有游戏类应用均需遵守国家新闻出版署的版号管理规定。

  • 未调用联网功能是否影响?

不影响。即使游戏为纯单机模式,仍需提供版号。

原链接:

无内购,没有接入广告,不联网的小游戏上架时是否需要版号?-华为开发者问答 | 华为开发者联盟 (huawei.com)

​问题三:怎么实现类似于练字的功能?

想要实现类似于练字的功能,有没有什么好的方法推荐?

解决方案:

可参考儿童练字板示例,通过Canvas展示了儿童练字板场景,为儿童提供了在移动设备上练习书法的机会。

  1. 通过 ontouch 事件,监听用户手指按下、滑动、抬起,获取触点坐标。

  2. 利用CanvasRenderingContext2D进行绘制。

  3. 利用 clearRect 方法删除画布指定区域的内容。


// 构造练字板的米字格

drawLine(ctx: CanvasRenderingContext2D, r: number);

// 手绘板的获取

Canvas(this.context){}

.ontouch();

// 删除画布指定区域的内容

context.clearRect(0, 0, this.canvasWidth, this.canvasHeight);

原链接:

怎么实现类似于练字的功能?-华为开发者问答 | 华为开发者联盟 (huawei.com)

​问题四:Arkweb 如何正确加载 web 的当前 title?

使用 arkweb 的 onTitleReceive 获取 web 的 title 有时候并不是和 document.title 是一致的,而且 onTitleReceive 经常会返回 url 字符串,请问这种问题应该如何应对?

解决方案:
  • 方案一:在onTitleReceive中通过 webController.getTitle()获取网页的标题。

  • 方案二:通过runJavaScript执行 JavaScript 代码来获取文档的标题。

如果 getTitle 返回的是网页 url,那是因为当前网页未设置 title。正常来说通过 webController.getTitle()获取到的网页标题和 document.title 是一致,如果遇到不一致的情况,可以自由选择方式一或者二。


具体参考如下 demo:

import { webview } from '@kit.ArkWeb';import { BusinessError } from '@kit.BasicServicesKit';


@Entry@Componentstruct Question2 {context: Context = this.getUIContext()?.getHostContext() as Context;webviewController: webview.WebviewController = new webview.WebviewController();@State title: string = '';


 build() {       Column() {         Text("title:" + this.title)         Web({ src: $rawfile('question/question4.html'), controller: this.webviewController })           .fileAccess(true)           .domStorageAccess(true)           .onTitleReceive((event) => {             if (event) {               // 方式一:在onTitleReceive回调中使用getTitle获取标题               this.title = this.webviewController.getTitle();
// 方式二:在onTitleReceive通过runJavaScript执行JavaScript脚本获取标题,和方式一二选一 this.webviewController.runJavaScript('getTitle()', (error, result) => { if (error) { console.error(`run JavaScript error, ErrorCode: ${(error as BusinessError).code}, Message: ${(error as BusinessError).message}`); return; } if (result) { this.title = JSON.parse(result); } }) } }) } .height('100%') .width('100%') } } <!-- index.html --> <!DOCTYPE html> <html> <title>测试title</title> <head> <style> #demo { font-size: 24px; font-weight: 700; } </style> </head> <body> <p id="demo"></p> <script> function getTitle() { return document.title; } </script> </body> </html>
复制代码
原链接:

Arkweb如何正确加载web的当前title?-华为开发者问答 | 华为开发者联盟 (huawei.com)

​问题五:HarmonyOS NEXT 应用测试都有哪些工具可以使用,它们的使用场景有哪些区别?

目前 HarmonyOS NEXT 应用测试都有哪些工具,这些工具的使用场景是什么呢?

解决方案:

【问题现象】

目前 HarmonyOS NEXT 应用测试都有哪些工具,这些工具的使用场景是什么呢?


【背景知识】

应用测试概述主要介绍 HarmonyOS NEXT 应用的单元测试、UI 测试和专项测试。AppGallery Connect云测试致力于提供便捷的一站式应用测试服务,解决应用开发、测试过程中面临的成本、技术和效率问题。应用体验建议主要介绍基础功能和兼容性、稳定性、功耗、性能、安全和 UX 这 6 大核心质量维度在开发阶段和测试阶段需要关注的体验建议。


【解决方案】

如下图所示,这是应用在开发过程中典型的测试活动模型和测试活动质量目标,一般分为单元测试,集成测试、UI 测试、体验测试和用户测试。


  • 单元测试:通过自动化测试保障代码、函数逻辑实现正确,异常处理充分。

测试工具:开发者可基于 DevEco Studio 提供的单元测试框架JsUnit、UI 测试框架UITest和白盒性能测试框架PerfTest进行用例编写和自测试,支持黑盒覆盖率统计Mock能力

  • 集成测试:组件实现符合设计,接口正确和组件完整。

测试工具:同单元测试,集成测试检查更大子系统的行为,或者多个类和函数的组合。

  • UI 测试:应用功能正确实现,用户场景目标可达成。

测试工具:使用基于 Python 语言的DevEco Testing Hypium进行 UI 自动化测试,提升测试效率。

  • 体验测试:主要包括兼容性、稳定性、安全、性能、功耗、UX 等,开发者可通过专项测试工具来保证应用基础体验良好,流畅、精致、安全等。同时开发者在应用上架前可以提前进行上架预检测试,提前发现问题,提高上架审核通过率。

测试工具: 

  • 如果您本地有 HarmonyOS 真机设备,可使用DevEco Testing进行专项测试服务。优点:以服务卡片的形式呈现,安装工具后,即插即用,一键执行测试任务。

  • 如果您本地无 HarmonyOS 真机设备,可使用云测试进行专项测试服务。优点:提供海量远程真机,无需开发者自备真机,可申请多台设备并行测试,解决应用开发、测试过程中面临的成本、技术和效率问题。

  • 用户测试:用户感知卓越、好用、爱用。

测试工具: 

原链接:

HarmonyOS NEXT应用测试都有哪些工具可以使用,它们的使用场景有哪些区别?-华为开发者问答 | 华为开发者联盟 (huawei.com)

答开发者问系列汇总:

“答开发者问”系列汇总(持续更新中...)

往期问题回顾:

“答开发者问”之HarmonyOS技术问题解析 第1期

“答开发者问”之HarmonyOS技术问题解析 第2期

“答开发者问”之HarmonyOS技术问题解析 第3期

“答开发者问”之HarmonyOS技术问题解析 第4期

“答开发者问”之HarmonyOS技术问题解析 第5期

“答开发者问”之HarmonyOS技术问题解析 第6期

“答开发者问”之HarmonyOS技术问题解析 第7期

“答开发者问”之HarmonyOS技术问题解析 第8期

“答开发者问”之HarmonyOS技术问题解析 第9期

“答开发者问”之HarmonyOS技术问题解析 第10期

“答开发者问”之HarmonyOS技术问题解析 第11期

“答开发者问”之HarmonyOS技术问题解析 第12期

“答开发者问”之HarmonyOS技术问题解析 第13期

“答开发者问”之HarmonyOS技术问题解析 第14期

“答开发者问”之HarmonyOS技术问题解析 第15期

“答开发者问”之HarmonyOS技术问题解析 第16期”

“答开发者问”之HarmonyOS技术问题解析 第17期”

注意:

开发者小伙伴们,规范提问,高效沟通!更快得到问题答案的秘诀来啦,点击链接直达


2025-11-28 16:151151

评论

发布
暂无评论

【Linux】之创建普通用户并禁止root用户远程登陆

A-刘晨阳

Linux 三周年连更 用户名

即时通讯技术文集(第13期):Web端即时通讯技术精华合集 [共15篇]

JackJiang

网络编程 即时通讯 IM

超强版干货投递!Milvus 的部署心得、运维秘籍都在这里了!

Zilliz

Milvus Zilliz ChatGPT LLM zillizcloud

AIGC的阿克琉斯之踵

华为云开发者联盟

人工智能 AI 华为云 华为云开发者联盟 企业号 4 月 PK 榜

云上数据变革:Databend Cloud 正式发布

Databend

谷歌 Chrome 正式发布 WebGPU!Orillusion开源倒计时!

Orillusion

开源 WebGL 元宇宙 web3d #WebGPU

即时通讯系统为什么选择GaussDB(for Redis)?

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 4 月 PK 榜

4 月 25 日直播预告 | 深入解读 Flink 1.17

Apache Flink

大数据 flink 实时计算

连接 1 次孤岛,服务 N 个场景(报名中)

tapdata

DaaS

景区共享电单车如何投放?投放意义?

共享电单车厂家

共享电动车厂家 景区共享电单车 共享电单车投放

python正则 | python小知识

AIWeker

Python python小知识 三周年连更

PCB生产工艺 | 第十三道主流程之包装

华秋电子

从零到跑通TPC-H:如何快速实现查询计划

MatrixOrigin

分布式数据库 MatrixOrigin MatrixOne TPC-H

maya软件在建模上有什么优势?

Finovy Cloud

maya 3D软件

OneNote 2019 for Mac 中文版附激活工具

真大的脸盆

Mac Mac 软件 笔记应用

物联网常见协议之Amqp协议及使用场景解析

华为云开发者联盟

后端 物联网 华为云 华为云开发者联盟 企业号 4 月 PK 榜

Neuron 2.4.0发布:体验下一代工业物联网连接和管理

EMQ映云科技

UI 物联网 IoT neuron 企业号 4 月 PK 榜

微服务 - 注册中心和配置中心(Consul)

Java 微服务 注册中心 配置中心

免费领取 | ONES 联合中国信通院发布《中国企业软件研发管理白皮书》

万事ONES

阿里大牛纯手写的微服务入门笔记,从基础到进阶直接封神

Java 微服务 spring cloud alibaba

多元融合成为音视频技术发展新风向

中关村科金

实时音视频 监管合规

保险行业如何将质检覆盖率从5%提升至100%?

中关村科金

保险 智能质检

CSS奇思妙想之-利用CSS裁剪(clip-path)完成各种图形

肥晨

三周年连更

PCB阻焊桥存在的DFM(可制造性)问题,华秋一文告诉你

华秋电子

Viu联合华为HMS生态,共创影音娱乐新体验

HarmonyOS SDK

HMS Core

面试官:Redis有什么持久化策略?

Java redis 缓存 面试 持久化

GitHub星标48k!蚂蚁金服开源的这份SpringBoot笔记

Java spring Spring Boot 框架

“答开发者问”之HarmonyOS技术问题解析 第18期_华为_HarmonyOS_InfoQ精选文章