鸿蒙应用示例: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 工具获取设备信息,并将其发送给开发人员以协助排查问题。
代码示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | 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%' ) } } |
打印示例:
1 2 3 4 5 6 7 8 9 10 11 12 | 设备标识 : - 设备名称 : 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。
代码示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | 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命令
参考官方文档:
结论
通过 DevEco Testing 工具,开发者可以在测试过程中更加便捷地安装应用、获取设备信息以及启动其他应用。这些功能不仅提高了测试效率,还使得团队协作更加顺畅。对于鸿蒙应用开发者来说,熟悉并掌握这些工具的使用方法是非常重要的。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了