鸿蒙应用示例:DevEco Testing 工具的常用功能及使用场景

DevEco Studio 是鸿蒙生态中的集成开发环境(IDE),而 DevEco Testing 工具则是专门用于测试鸿蒙应用的强大工具。本文将详细介绍 DevEco Testing 中几个常用的测试功能及其使用场景,并给出相应的代码示例。

【1】安装应用

使用场景:在鸿蒙系统中,测试包不能像安卓那样直接发送给其他人进行安装测试。开发者需要将 .hap 测试包提供给测试人员,并指导他们通过 DevEco Testing 工具进行安装。这种方法特别适用于开发团队与测试团队不在同一个地理位置的情况。

操作步骤:

  1. 将测试手机通过数据线连接至电脑。
  2. 打开 DevEco Testing 工具。
  3. 依次选择 "实用工具" -> "设备投屏" -> "安装应用"。
  4. 选择对应的 .hap 包进行安装。

注意事项:

• 生成 .hap 和 .app 包的目录位置不同:

• .hap 目录:项目根目录 /entry/build/default/outputs/default/entry-default-signed.hap

• .app 目录:项目根目录 /build/outputs/default/项目名称-default-signed.app

• .app 包只能使用生产证书,且仅用于发布到应用商店,无法通过 hdc 命令或者 DevEco Testing 进行安装。

【2】获取设备信息

使用场景:在测试过程中,当发现应用出现问题时,测试人员可以通过 DevEco Testing 工具获取设备信息,并将其发送给开发人员以协助排查问题。

代码示例:

js 复制代码
import { deviceInfo } from '@kit.BasicServicesKit';
import { display } from '@kit.ArkUI';

@Entry
@Component
struct Page05 {
  build() {
    Column() {
      Button('测试').onClick(() => {
        if (canIUse('SystemCapability.Startup.SystemInfo')) {
          //需要添加权限 ohos.permission.sec.ACCESS_UDID ,但普通app没这个权限,所以代码没办法获取到udid
          //这个权限可以获取 udid 和 SN (Serial Number) (序列号)
          // udid格式 00008020-001D31FF0A8A
          // SN格式 A1B2C3D4E5F6G7H8 【序列号可能包含的信息有生产日期、制造地点等,具体取决于制造商的设计标准。】
          // console.info(`设备udid : ${deviceInfo.udid ? deviceInfo.udid : '-'}`); //获取不到时展示-
          console.info(`设备标识 : ${deviceInfo.serial || '-'}`); //为空字符串或其他"假"值时,输出 '-'。
        } else {
          console.info('设备标识 : -');
        }

        let marketNameInfo: string = deviceInfo.marketName;
        console.info('设备名称 : ' + marketNameInfo || '-');

        let productModelInfo: string = deviceInfo.productModel;
        console.info('设备型号 : ' + productModelInfo || '-');

        let displayVersionInfo: string = deviceInfo.displayVersion;
        console.info('系统版本 : ' + displayVersionInfo || '-');

        /*
        常见的 ABI标识符:
        * 32位ARM架构: armeabi-v7a
        * 64位ARM架构: arm64-v8a
        * 32位x86架构: x86
        * 64位x86架构: x86_64
        * MIPS架构: mips, mips64
         * */
        //
        let abiListInfo: string = deviceInfo.abiList;
        if (abiListInfo == 'arm64-v8a' || abiListInfo == 'x86_64') {
          console.info('版本位数 : ' + 64 + '位');
        } else if (abiListInfo == 'armeabi-v7a' || abiListInfo == 'x86') {
          console.info('版本位数 : ' + 32 + '位');
        } else {
          console.info('版本位数 : ' + '-');
        }

        let sdkApiVersionInfo: number = deviceInfo.sdkApiVersion;
        console.info('API版本 : ' + sdkApiVersionInfo || '-');

        console.info('CPU类型 : ' + '-') //没查到相关api

        console.info('CPU架构 : ' + abiListInfo || '-')

        console.info('CPU核数 : ' + '-') //没查到相关api

        console.info('GPU类型 : ' + '-') //没查到相关api

        console.info('内存大小 : ' + '-') //没查到相关api

        let width = display.getDefaultDisplaySync().width
        let height = display.getDefaultDisplaySync().height
        console.info('屏幕尺寸 : ' + width + ' x ' + height) //单位px
      })
    }
    .height('100%')
    .width('100%')
  }
}

打印示例:

js 复制代码
设备标识 : -
设备名称 : HUAWEI Mate 60 Pro
设备型号 : ALN-AL80
系统版本 : ALN-AL80 5.0.0.68(SP7C00E68R4P9log)
版本位数 : 64位
API版本 : 13
CPU类型 : -
CPU架构 : arm64-v8a
CPU核数 : -
GPU类型 : -
内存大小 : -
屏幕尺寸 : 1260 x 2720

【3】获取应用信息并启动应用

使用场景:当需要在鸿蒙应用中调用另一个应用的功能时,可以利用 DevEco Testing 工具获取目标应用的相关信息,并通过代码启动该应用。

比如想要跳转到手机的微博, 就可以看到两个跳转时的重要信息:

包名称 : com.sina.weibo.stage和主Ability : EntryAbility。

代码示例:

js 复制代码
import { common, Want } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';

@Entry
@Component
struct Page06 {
  build() {
    Column() {
      Button('启动微博').onClick(() => {
        let want: Want = {
          bundleName: 'com.sina.weibo.stage',
          abilityName: 'EntryAbility'
        };
        (getContext(this) as common.UIAbilityContext).startAbility(want).then(() => {
          console.info('启动微博成功');
        }).catch((err: BusinessError) => {
          console.error(`启动微博失败: ${err.message}`);
        });
      })
    }
    .width('100%')
    .height('100%')
  }
}

【4】支持hdc命令

参考官方文档:developer.huawei.com/consumer/cn...

结论

通过 DevEco Testing 工具,开发者可以在测试过程中更加便捷地安装应用、获取设备信息以及启动其他应用。这些功能不仅提高了测试效率,还使得团队协作更加顺畅。对于鸿蒙应用开发者来说,熟悉并掌握这些工具的使用方法是非常重要的。

相关推荐
王码码20355 分钟前
Flutter 三方库 sparky 的鸿蒙化适配指南 - 实现极简 2D 游戏引擎功能、支持高效精灵图渲染与跨端游戏逻辑
flutter·harmonyos·鸿蒙·openharmony
●VON5 小时前
Flutter组件通信详解:父子组件交互的最佳实践
javascript·flutter·华为·交互·harmonyos·von
枫叶丹46 小时前
【HarmonyOS 6.0】OAID服务正式支持TV设备
开发语言·华为·harmonyos
前端不太难6 小时前
鸿蒙游戏上线全流程(开发 + 打包 + 发布)
游戏·状态模式·harmonyos
木斯佳6 小时前
HarmonyOS 6 SDK对接实战:从原生ASR到Copilot SDK(下)- Copilot SDK对接与重构(全网最新)
ai·重构·copilot·harmonyos
枫叶丹46 小时前
【HarmonyOS 6.0】应用预加载机制,让应用启动快人一步
开发语言·华为·harmonyos
国医中兴7 小时前
ClickHouse监控与运维策略:从告警到故障处理
flutter·harmonyos·鸿蒙·openharmony
_waylau7 小时前
鸿蒙架构师修炼之道-实践应用
华为·harmonyos·鸿蒙·鸿蒙系统
希望上岸的大菠萝7 小时前
HarmonyOS 6.0 V2 状态管理实战(上)- 基于「今天空白」当前实现拆解 @ObservedV2、@Trace、@ComponentV2
华为·harmonyos·鸿蒙
希望上岸的大菠萝7 小时前
HarmonyOS 6.0 ArkUI 声明式 UI 实战 - 基于「今天空白」当前页面实现拆布局、条件渲染、弹层封装
华为·harmonyos·鸿蒙·仓颉