0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

模拟器快速上手,助力HarmonyOS应用/服务高效开发

ITMING 来源:ITMING 作者:ITMING 2024-11-29 11:20 次阅读

1 创建模拟

1)打开设备管理界面

在使用模拟器之前,首先需要使用DevEco Studio打开或者创建一个工程,选择以下任一种方式打开设备管理界面。

  • 点击DevEco Studio主开发界面菜单栏选择“Tools > Device Manger”打开设备管理界面。

image-20241119151523661

  • 点击DevEco Studio主开发界面工具栏下拉设备列表,选择“Device Manger”打开设备管理界面。

image-20241119151942231

2)设置本地模拟器实例存储路径

初次打开设备管理器界面,设备列表为空,需要手动创建模拟器。在创建之前可通过点击右下角Edit设置本地模拟器实例的存储路径Local Emulator Location(Mac设备默认存储在~/.Huawei/Emulator/deployed目录,Windows设备默认存储在C:Users用户名AppDataLocalHuaweiEmulatordeployed目录),当然也可以使用默认存储路径。

image-20241119152404678

3)创建一个模拟器

设置好本地模拟器实例存储路径后,点击设备管理界面右下角“New Emulator”按钮,打开模拟器创建向导。

image-20241119152704065

(1)选择模拟器设备

在模拟器设备类型选择界面,可以通过点击右上角Edit设置本地模拟器镜像存储路径(Mac设备默认存储在~/Library/Huawei/Sdk目录,Windows设备默认存储在C:Users用户名AppDataLocalHuaweiSdk目录),当然也可以使用默认的存储路径。

可通过左侧下拉选择创建的模拟器设备类型,也可以直接在设备类型列表中选择需要创建的模拟器设备类型。首次使用会在底部提示“Download the system image first”,表示本地设备尚未存储当前选中模拟器设备类型的模拟器镜像,需要点击设备列表目标模拟器设备行右侧的“下载”图标下载模拟器镜像。也可以通过该界面更新或删除不同设备的模拟器镜像。

image-20241119153439991

(2)创建模拟器

模拟器镜像下载完成后,点击选择模拟器设备界面Next按钮,进入创建模拟器向导界面。

image-20241119162332981

配置模拟器名称Name、内存Memory RAM,存储空间Storage ROM,然后点击Finish按钮,等待模拟器创建完成。

image-20241119162505913

模拟器创建完成后,在本地模拟器设备界面列表中查看创建的模拟器。

image-20241119162817126

(3)启动模拟器

在设备管理器页面,点击启动图标启动模拟器。

image-20241119163007536

(4)关闭模拟器

可以点击设备管理器页面模拟器列表中关闭图标关闭模拟器,也可以直接在模拟器菜单栏单击退出图标关闭模拟器。

image-20241119164350306

image-20241119164407322

(5)运行应用

点击DevEco Studio主开发界面工具栏启动/调试图标启动应用/服务的编译构建与安装,安装完成后应用会运行在模拟器上。

image-20241119163309995

image-20241119163335065

2 使用模拟器

1)操控屏幕

模拟器屏幕操控,使用鼠标左键和滚轮模拟手指和设备屏幕进行交互。一些常用的如滑动屏幕、拖动应用、单击屏幕、双击屏幕、长按屏幕均使用鼠标左键点击模拟手指点击设备屏幕交互,二双指缩放需要鼠标+键盘的方式来模拟,Windows设备按下Ctrl键(Mac设备按下Command键)会在模拟器设备上弹出一个捏合手势多点触控界面。

image-20241119165400225

2)使用工具栏

模拟器工具栏集成了各种调试工具和控制选项,可以点击工具栏中的更多图标,查看常用和扩展菜单。

image-20241119165615101

3 电池采样模拟场景

通过一个简单的电池管理应用,模拟模拟器上不同电池状态。

import { batteryInfo } from '@kit.BasicServicesKit';
​
@Entry
@Component
struct Index {
  @State capacity: number = 0;
  @State charge: string = "";
  @State health: string = "";
​
  @Builder descriptionBuilder() {
    Text('当前电量')
      .maxFontSize('30sp')
      .minFontSize("10.0vp")
      .fontColor("#fffa2a2d")
      .fontWeight(FontWeight.Medium)
      .width('100%')
      .height("100%")
      .textAlign(TextAlign.Center)
  }
​
  build() {
    Navigation() {
      Column({ space: 10 }) {
        Gauge({ value: this.capacity, min: 1, max: 100 }) {
          Column() {
            Text(`${this.capacity}`)
              .fontWeight(FontWeight.Medium)
              .width('62%')
              .fontColor("#ff182431")
              .maxFontSize("60.0vp")
              .minFontSize("30.0vp")
              .textAlign(TextAlign.Center)
              .margin({ top: '35%' })
              .textOverflow({ overflow: TextOverflow.Ellipsis })
              .maxLines(1)
          }.width('100%').height('100%')
        }
        .startAngle(210)
        .endAngle(150)
        .colors(new LinearGradient([{ color: "#e84026", offset: 0 },
          { color: "#f7ce00", offset: 0.6 },
          { color: "#64bb5c", offset: 1 }]))
        .width('80%')
        .height('60%')
        .strokeWidth(18)
        .trackShadow({ radius: 7, offsetX: 7, offsetY: 7 })
        .description(this.descriptionBuilder)
        .padding(18)
        List() {
          ListItem() {
            Row() {
              Text('充电状态')
                .fontSize(14)
              Text(this.charge)
                .fontSize(14)
            }
            .width('100%')
            .padding(12)
            .justifyContent(FlexAlign.SpaceBetween)
          }
          ListItem() {
            Row() {
              Text('健康状态')
                .fontSize(14)
              Text(this.health)
                .fontSize(14)
            }
            .width('100%')
            .padding(12)
            .justifyContent(FlexAlign.SpaceBetween)
          }
        }
        .width('80%')
        .padding(18)
        .divider({
          strokeWidth: 1,
          color: 0xdfdfdf
        })
​
        Button('刷新')
          .fontSize(16)
          .onClick(() = > {
            this.getBatteryInfo();
          })
      }
      .width('100%')
      .height('100%')
    }
    .height('100%')
    .width('100%')
    .title("电池")
    .hideBackButton(true)
    .hideToolBar(true)
  }
​
  aboutToAppear(): void {
    this.getBatteryInfo();
  }
​
  getBatteryInfo() {
    this.capacity = batteryInfo.batterySOC;
    switch (batteryInfo.chargingStatus) {
      case batteryInfo.BatteryChargeState.ENABLE:
        this.charge = "正在充电";
        break;
      case batteryInfo.BatteryChargeState.FULL:
        this.charge = "电量已充满";
        break;
      default :
        this.charge = "停止充电";
    }
    switch (batteryInfo.healthStatus) {
      case batteryInfo.BatteryHealthState.GOOD:
        this.health = "正常";
        break;
      case batteryInfo.BatteryHealthState.OVERHEAT:
        this.health = "过热";
        break;
      case batteryInfo.BatteryHealthState.OVERVOLTAGE:
        this.health = "过压";
        break;
      case batteryInfo.BatteryHealthState.COLD:
        this.health = "低温";
        break;
      case batteryInfo.BatteryHealthState.DEAD:
        this.health = "僵死";
        break;
      default :
        this.health = "未知";
    }
  }
}

image-20241119172729623

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 模拟器
    +关注

    关注

    2

    文章

    874

    浏览量

    43196
  • HarmonyOS
    +关注

    关注

    79

    文章

    1971

    浏览量

    30093
收藏 人收藏

    评论

    相关推荐

    鸿蒙Flutter实战:12-使用模拟器开发调试

    前提 开发电脑需为M系列芯片 (ARM架构) 的 Mac 电脑 目前 Flutter 鸿蒙开发,无法使用 X86 架构的模拟器,只能使用 ARM 架构的模拟器** 创建项目 等
    发表于 11-10 13:13

    如何使用光伏模拟器

    光伏模拟器是一种用于模拟太阳能光伏电池工作原理和性能的软硬件设备。它能够提供光伏电池在不同光照、温度和环境条件下的电流、电压、功率等参数,用于测试和评估光伏电池的性能,并帮助开发、优化和验证光伏系统
    的头像 发表于 10-30 17:12 187次阅读
    如何使用光伏<b class='flag-5'>模拟器</b>

    负载模拟器是干什么的,负载模拟器需要接电源吗

    负载模拟器是一种用于模拟各种负载条件的设备,它在多个领域都有着广泛的应用。以下是对负载模拟器的主要功能和用途的详细解析:
    的头像 发表于 10-01 15:57 484次阅读

    通过GNSS模拟器实现RTK高精度定位 #RTK #GNSS模拟 #GNSS仿真 #GNSS模拟器

    定位模拟器
    虹科卫星与无线电通信
    发布于 :2024年09月06日 17:52:32

    庆科信息获HarmonyOS高级应用开发能力认证!助力品牌快速打造鸿蒙原生应用

    近日,上海庆科信息技术有限公司荣获HarmonyOS应用开发者高级认证,公司在华为鸿蒙生态的开发能力得到进一步拓展,能够帮助客户快速开发基于
    的头像 发表于 07-17 13:24 576次阅读
    庆科信息获<b class='flag-5'>HarmonyOS</b>高级应用<b class='flag-5'>开发</b>能力认证!<b class='flag-5'>助力</b>品牌<b class='flag-5'>快速</b>打造鸿蒙原生应用

    电池模拟器模拟测试电池充放电性能

    电池模拟器是一种强大的工具,能够在模拟真实电池的输出状态和充放电特性方面发挥重要作用。它可以准确地模拟电池的充放电状态、放电深度、开路电压和内部电阻等关键参数,用户可根据需要随时调整这些条件,以
    的头像 发表于 06-11 16:05 817次阅读
    电池<b class='flag-5'>模拟器</b><b class='flag-5'>模拟</b>测试电池充放电性能

    电路仿真模拟器怎么用

    电路仿真模拟器是电子工程师和学生必备的一类软件工具。通过使用电路仿真模拟器,用户可以在计算机上模拟和分析各种电路设计,从而避免在实际搭建电路之前出现错误和浪费资源。本文将详细介绍电路仿真模拟器
    的头像 发表于 05-04 10:53 2229次阅读

    如何依托软件引擎高效完成GNSS仿真?#GNSS仿真 #GNSS模拟 #GNSS #GNSS模拟器

    模拟器GNSS
    虹科卫星与无线电通信
    发布于 :2024年04月11日 18:24:01

    Delta模拟器随AltStore上线,苹果解禁复古游戏模拟器

     4月9日消息,开发者Riley Testut在Mastodon平台宣布已获得苹果公司确认,其研发的游戏模拟器应用程序Delta将随AltStore一同正式上线。
    的头像 发表于 04-09 11:08 951次阅读

    拓维信息及旗下开鸿智谷同获华为HarmonyOS开发服务商认证

    基于HarmonyOS的创新应用和服务助力鸿蒙生态走向新的里程碑。图/拓维信息及旗下开鸿智谷获得首批HarmonyOS开发
    的头像 发表于 03-29 08:13 508次阅读
    拓维信息及旗下开鸿智谷同获华为<b class='flag-5'>HarmonyOS</b><b class='flag-5'>开发</b><b class='flag-5'>服务</b>商认证

    Sudachi模拟器项目启动,Yuzu开发者将涉足多平台任天堂Switch开发

    作为iOS逆向工程师及应用开发者,Jarrod Norwell(网名为@antique_codes)曾成功将任天堂3DS模拟器Citra、Switch模拟器Yuzu移植到了iPhone和iPad上。
    的头像 发表于 03-08 15:13 4079次阅读

    HarmonyOS SDK 助力新浪新闻打造精致易用的新闻应用

    用户带来更流畅、更智能、更安全的服务体验。在 HarmonyOS SDK 丰富完备的开放能力加持下,一次开发多端部署的高效开发方式,将
    发表于 02-07 15:51

    【鸿蒙 HarmonyOS】鸿蒙手机模拟器 ( 鸿蒙远程模拟器 | 鸿蒙远程模拟器运行手机应用 )

    HUAWEI DevEco Studio 开发和环境中弹出如下对话框 , 点击 Agree 同意 ;   此时会弹出如下模拟器对话框 :   选择 P40 手机设备 , 双击该条目
    的头像 发表于 01-26 15:02 2430次阅读
    【鸿蒙 <b class='flag-5'>HarmonyOS</b>】鸿蒙手机<b class='flag-5'>模拟器</b> ( 鸿蒙远程<b class='flag-5'>模拟器</b> | 鸿蒙远程<b class='flag-5'>模拟器</b>运行手机应用 )

    某型舰艇动力系统训练模拟器的组成与基本工作原理

    动力系统设备多而且关系复杂,笔者开发模拟器包括37 台模拟设备,合计开关量输入点733 个,开关量输出点1115 个,模拟量输入点19 个,模拟
    发表于 01-19 14:51 376次阅读
    某型舰艇动力系统训练<b class='flag-5'>模拟器</b>的组成与基本工作原理

    HarmonyOS SDK,助力开发者打造焕然一新的鸿蒙原生应用

    的操作整合在一起,用户一处会用,处处会用。 作为支撑鸿蒙原生应用开发的核心,HarmonyOS SDK 发挥着至关重要的作用。通过关键能力底层化,通用能力全局化,HarmonyOS SDK 持续不断的创新,
    发表于 01-19 10:31