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

news/2024/12/4 12:30:30/

文章目录

  • 1 创建模拟器
    • 1)打开设备管理界面
    • 2)设置本地模拟器实例存储路径
    • 3)创建一个模拟器
      • (1)选择模拟器设备
      • (2)创建模拟器
      • (3)启动模拟器
      • (4)关闭模拟器
      • (5)运行应用
  • 2 使用模拟器
    • 1)操控屏幕
    • 2)使用工具栏
  • 3 电池采样模拟场景

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\用户名\AppData\Local\Huawei\Emulator\deployed目录),当然也可以使用默认存储路径。

image-20241119152404678

3)创建一个模拟器

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

image-20241119152704065

(1)选择模拟器设备

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

可通过左侧下拉选择创建的模拟器设备类型,也可以直接在设备类型列表中选择需要创建的模拟器设备类型。首次使用会在底部提示“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


http://www.ppmy.cn/news/1552267.html

相关文章

【Spring篇】SpringMVC的常见数据绑定

🧸安清h:个人主页 🎥个人专栏:【计算机网络】【Mybatis篇】【Spring篇】 🚦作者简介:一个有趣爱睡觉的intp,期待和更多人分享自己所学知识的真诚大学生。 目录 🎯SpringMVC的简单数…

张伟楠动手学强化学习笔记|第一讲(上)

张伟楠动手学强化学习笔记|第一讲(上) 人工智能的两种任务类型 预测型任务 有监督学习无监督学习 决策型任务 强化学习 序贯决策(Sequential Decision Making) 智能体序贯地做出一个个决策,并接续看到新的观测,知道最终任务结…

游戏引擎学习第31天

仓库:https://gitee.com/mrxiao_com/2d_game 回顾 回顾了他们的游戏开发进度,并强调了编写整个游戏的价值。他们提到,这个过程的目的是让每个参与者从零开始编程一个完整的游戏,了解整个游戏的工作原理。这样做的一个关键好处是&#xff0c…

python(18) : flask_sqlalchemy 配置sqlserver数据库对象

1.安装依赖 pip3 install flask_sqlalchemy -i https://mirrors.aliyun.com/pypi/simple/ requests2.数据库配置信息(db_manager.py) import osfrom flask import Flask from flask_cors import CORS from flask_sqlalchemy import SQLAlchemydatabase testapp Flask(__nam…

51单片机从入门到精通:理论与实践指南常用资源篇(五)

坚持一下,确实还有几天就可以学完了,这段时间的努力和付出都将化为宝贵的成果。正如《人民日报》所说:“每一次努力,都是幸运的伏笔。” 不论是在学习、工作还是生活中,坚持都是通往成功的必经之路。当我们在面对困难和…

聚云科技×亚马逊云科技:打通生成式AI落地最后一公里

云计算时代,MSP(云管理服务提供商)犹如一个帮助企业上云、用云、管理云的专业管家,在云计算厂商与企业之间扮演桥梁的作用。生成式AI浪潮的到来,也为MSP带来全新的生态价值和发展空间。 作为国内领先的云管理服务提供…

Flink项目实战:实时数据流处理

Apache Flink是一款开源的分布式流处理框架,广泛应用于大规模数据处理、实时数据分析和流式计算任务。Flink提供了一个高吞吐量、低延迟的流处理引擎,适合用来处理各种流式数据,例如日志分析、实时监控、推荐系统、社交网络分析等。本篇文章将介绍如何使用Apache Flink构建一…

深入理解 ES6 Promise,开启高效异步编程之旅

1. Promise的基本介绍 在 JavaScript 中,Promise 是一种用于处理异步操作的机制,它代表一个异步操作的最终完成(或失败)及其结果值。Promise 的目标是解决传统回调函数的嵌套问题(即“回调地狱”)。 Promise 是一个对象,代表着一个异步操作的结果。Promise 有三种状态…