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

相关推荐
长弓三石1 小时前
鸿蒙网络编程系列44-仓颉版HttpRequest上传文件示例
前端·网络·华为·harmonyos·鸿蒙
SameX3 小时前
鸿蒙 Next 电商应用安全支付与密码保护实践
前端·harmonyos
SuperHeroWu74 小时前
【HarmonyOS】键盘遮挡输入框UI布局处理
华为·harmonyos·压缩·keyboard·键盘遮挡·抬起
sanzk8 小时前
华为鸿蒙应用开发
华为·harmonyos
SoraLuna13 小时前
「Mac畅玩鸿蒙与硬件28」UI互动应用篇5 - 滑动选择器实现
macos·ui·harmonyos
ClkLog-开源埋点用户分析14 小时前
ClkLog企业版(CDP)预售开启,更有鸿蒙SDK前来助力
华为·开源·开源软件·harmonyos
mg66814 小时前
鸿蒙系统的优势 开发 环境搭建 开发小示例
华为·harmonyos
lqj_本人14 小时前
鸿蒙next选择 Flutter 开发跨平台应用的原因
flutter·华为·harmonyos
lqj_本人14 小时前
使用 Flutter 绘制一个棋盘
harmonyos
lqj_本人17 小时前
Flutter&鸿蒙next 状态管理框架对比分析
flutter·华为·harmonyos