HarmonyOS—使用预览器查看应用/服务效果

news2024/11/14 20:21:07

DevEco Studio为开发者提供了UI界面预览功能,可以查看应用/服务的UI界面效果,方便开发者随时调整界面UI布局。预览器支持布局代码的实时预览,只需要将开发的源代码进行保存,就可以通过预览器实时查看应用/服务运行效果,方便开发者随时调整代码。

说明
由于操作系统和真机设备的差异,在预览界面中可能出现字体、颜色等与真机设备运行的效果存在差异,预览效果仅作为应用/服务开发过程中的参考,实际最终效果请以真机设备运行效果为准。

为了更好的使用体验,建议先将DevEco Studio升级至最新版本,然后检测并更新SDK至最新版本。

查看ArkTS和JS应用/服务预览效果

预览器支持JS和ArkTS应用/服务“实时预览”和“动态预览”。

说明
预览Phone、Tablet、TV和Wearable设备的JS/ArkTS工程,预览器功能依赖于电脑显卡的OpenGL版本,OpenGL版本要求为3.2及以上。
richtext、web、video、XComponent组件不支持预览。
不支持调用C++库的预览。
har在被应用和元服务使用时真机效果有区别,真机上实际效果应用不显示menubar,元服务显示menubar,但预览器都以不显示menubar为准。若开发har模块时,请注意被元服务使用时预览器效果与真机效果的不同。

实时预览:在开发界面UI代码过程中,如果添加或删除了UI组件,您只需Ctrl+S进行保存,然后预览器就会立即刷新预览结果。如果修改了组件的属性,则预览器会实时(亚秒级)刷新预览结果,达到极速预览的效果(当前版本极速预览仅支持ArkTS组件。API 8工程的极速预览仅在非数据绑定场景生效,如涉及数据绑定,仍需要在文件保存后才可以预览;API 9工程的极速预览支持部分数据绑定场景,如@State变量)。实时预览默认开启,如果不需要实时预览,请单击预览器右上角按钮,关闭实时预览功能。

说明

开发者修改resources/base/profile目录下的配置文件(如main_page.json),不支持触发实时预览,开发者需要手动刷新。

在这里插入图片描述
动态预览:在预览器界面,可以在预览器中操作应用/服务的界面交互动作,如单击、跳转、滑动等,与应用/服务运行在真机设备上的界面交互体验一致。

在这里插入图片描述
在使用预览器前,请根据如下项检查环境信息:

  • 确保File > Settings > SDK >
    HarmonyOS/OpenHarmony中,已下载Previewer资源。如果已下载Previewer,但存在新版本的情况,建议升级到最新版本,详情请参考下载HarmonyOS
    SDK。
  • 建议将File > Settings > SDK > HarmonyOS/OpenHarmony中的SDK更新至最新版本。

以ArkTS为例,使用预览器的方法如下:
1.创建或打开一个ArkTS应用/服务工程。本示例以打开一个本地ArkTS Demo工程为例。
2.在工程目录下,打开任意一个.ets文件(JS工程请打开.hml/.css/.js页面)。
3.可以通过如下任意一种方式打开预览器开关,显示效果如下图所示:

  • 通过菜单栏,单击View>Tool Windows>Previewer打开预览器。
  • 在编辑窗口右上角的侧边工具栏,单击Previewer,打开预览器。

在这里插入图片描述

查看ArkUI预览效果

ArkUI预览支持页面预览与组件预览,下图中左侧图标为页面预览,右侧图标为组件预览。
在这里插入图片描述

页面预览

ArkTS应用/服务支持页面预览,要求compileSdkVersion为7或以上。页面预览通过在工程的ets文件头部添加注解@Entry实现。

@Entry的使用参考如下示例:

@Entry
@Component
struct Index {
  @State message: string = 'Hello World'
  build() {
    Row() {
      Column() {
        Text(this.message)
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
      }
      .width('100%')
    }
    .height('100%')
  }
}

组件预览

ArkTS应用/服务支持组件预览,要求compileSdkVersion为8或以上。组件预览支持实时预览,不支持动态图和动态预览。组件预览通过在组件前添加注解@Preview实现,在单个源文件中,最多可以使用10个@Preview装饰自定义组件。

@Preview的使用参考如下示例

@Preview({
  title: 'FoodImage'
})
@Component
struct FoodImageDisplayPreview {
  build() {
    Flex() {
      FoodImageDisplay({ foodItem: getDefaultFoodData() })
    }
  }
}

以上示例的组件预览效果如下图所示:
在这里插入图片描述
组件预览默认的预览设备为Phone,若您想在不同的设备,或者不同的屏幕形状,或者不同设备语言等情况下的组件预览效果,可以通过设置@Preview的参数,指定预览设备的相关属性。若不设置@Preview的参数,默认的设备属性如下所示:

@Preview({
  title: 'Component1',  //预览组件的名称
  deviceType: 'phone',  //指定当前组件预览渲染的设备类型,默认为Phone
  width: 1080,  //预览设备的宽度,单位:px
  height: 2340,  //预览设备的长度,单位:px
  colorMode: 'light',  //显示的亮/暗模式,取值为light或dark
  dpi: 480,  //预览设备的屏幕DPI值
  locale: 'zh_CN',  //预览设备的语言,如zh_CN、en_US等
  orientation: 'portrait',  //预览设备的横竖屏状态,取值为portrait或landscape
  roundScreen: false  //设备的屏幕形状是否为圆形
})

请注意,如果被预览的组件是依赖参数注入的组件,建议的预览方式是:定义一个组件片段,在该片段中声明将要预览的组件,以及该组件依赖的入参,并在组件片段上标注@Preview注解,以表明将预览该片段中的内容。例如,要预览如下组件:

@Component
struct Title {
  context: string
  build() {
    Text(this.context)
  }
}

建议按如下方式预览:

@Preview
@Component    //定义组件片段TitlePreview
struct TitlePreview {
  build() {
    Title({ context: 'MyTitle' })    //在该片段中声明将要预览的组件Title,以及该组件依赖的入参 {context: ’MyTitle’}
  }
}

查看Java应用/服务预览效果

Java预览器支持Phone、Tablet、Car、TV和Wearable设备的Java应用/服务布局预览。Java应用/服务的布局支持Java代码布局和XML布局两种方式,其中Java代码布局(AbilitySlice.java或Ability.java文件)支持实时预览界面布局效果,同时还可以动态预览应用/服务的交互效果,如单击、跳转、滑动等互动式操作;XML布局文件可以实时预览,修改和保存了XML代码后,预览器会实时展示应用/服务的布局效果。

说明
Java文件预览是实验特性,使用中还存在以下约束。
macOS版本的Java预览器功能,只支持API Version 5及以上版本。
如果xml依赖Java文件中的数据,当修改了xml布局文件后,需要通过启动Java文件预览的方式来查看布局效果。
如果xml中引用了Java的自定义组件,不支持预览。
只支持中的相关UI组件。
只支持jpeg/jpg、png、bmp和wbmp格式的图片预览。
不支持HarmonyOS Library模块的预览。
不支持Ability间跳转的预览。
不支持通过JNI调用C++库的预览。

在使用Java预览器前,请根据如下项检查环境信息:

  • 需要确保File > Settings > SDK > HarmonyOS
    SDK中,已下载对应版本的Previewer资源,如果已下载Previewer,但存在新版本的情况,需要升级到最新版本。
  • File > Settings > SDK > HarmonyOS SDK中的Java SDK需要更新至最新版本。

使用Java预览器的方法如下:

1.创建或打开一个Java应用/服务工程。本示例以创建一个新的Java工程为例,具体请参考创建一个新的工程。

2.在工程目录下,根据布局方式,打开布局文件:

  • JavaUI布局:打开一个AbilitySlice.java或Ability.java文件

说明
JavaUI布局预览功能是实验特性:
Windows系统:请通过File > Settings > Previewer下勾选“Enable java previewer”开启。macOS系统:请通过DevEco Studio > Preferences > Previewer下勾选“Enable java previewer”开启。

  • XML布局:打开一个resources > base > layout目录下的xml布局文件。

3.可以通过如下任意一种方式打开预览器开关,显示效果如下图所示:

  • 通过菜单栏,单击View > Tool Windows > Previewer打开预览器。
  • 在编辑窗口右上角的侧边工具栏,单击Previewer,打开预览器。
    在这里插入图片描述

Profile Manager

说明
该特性在DevEco Studio V2.2 Beta2及更高版本中支持。

由于真机设备有丰富的设备型号,比如Phone设备,包括Mate30、Mate40、P40、P50等设备,不同设备型号的屏幕分辨率可能不一样。因此,在HarmonyOS应用/服务开发过程中,由于设备类型繁多,可能不能查看在不同设备上的界面显示效果。对此,DevEco Studio的预览器提供了Profile Manager功能,支持开发者自定义预览设备Profile(包含分辨率和语言),从而可以通过定义不同的预览设备Profile,查看HarmonyOS应用/服务在不同设备上的预览显示效果。当前支持自定义设备分辨率及系统语言,如果是Lite Wearable设备类型,还支持自定义屏幕形状。

定义设备后,可以在Previewer右上角,单击按钮,打开Profile管理器,切换预览设备。

在这里插入图片描述

同时,Profile Manager还支持多设备预览功能,具体请参考查看多端设备预览效果。

下面以自定义一款Phone设备为例,介绍设备Profile Manager的使用方法。

1.在预览器界面,打开Profile Manager界面。

在这里插入图片描述

2.在Profile Manager界面,单击+ New Profile按钮,添加设备。

在这里插入图片描述

3.在Create Profile界面,填写新增设备的信息,如Profile ID(设备型号)、Device type(设备类型)、Resolution(分辨率)和Language and region(语言和区域)等。其中Device type只能选择config.json(Stage工程中为module.json5)中deviceType字段已定义的设备。

在这里插入图片描述
4.设备信息填写完成后,单击OK完成创建。

查看多端设备预览效果

DevEco Studio支持HarmonyOS分布式应用/服务开发,同一个应用/服务可以运行在多个设备上。在HarmonyOS分布式应用/服务的开发阶段,因不同设备的屏幕分辨率、形状、大小等不同,开发者需要在不同的设备上查看应用/服务的UI布局和交互效果,此时便可以使用多端设备预览器功能,方便开发者在应用/服务开发过程中,随时查看不同设备上的运行效果。

说明
多端设备预览最多同时支持4个设备的预览。

前面介绍了DevEco Studio支持ArkTS、JS和Java应用/服务的预览器功能,多端设备预览器支持ArkTS、JS与Java应用/服务在不同设备上的同时预览。如果两个设备支持的编码语言不同,就不能使用多端设备预览功能,例如,Java语言的Phone的应用/服务,是不支持在LiteWearable上运行的,因为LiteWearable不支持Java语言。

下面以ArkTS应用/服务为例,介绍多端设备预览器的使用方法,JS和Java应用/服务的多端设备预览器使用方法相同。

1.在工程目录中,打开任意一个ets文件(JS请打开hml/css/js文件,Java请打开AbilitySlice.java或Ability.java文件)。
2.可以通过如下任意一种方式打开预览器开关,显示效果如下图所示:

  • 过菜单栏,单击View>Tool Windows>Previewer,打开预览器。
  • 在编辑窗口右上角的侧边工具栏,单击Previewer,打开预览器。

3.在Previewer窗口中,打开Profile Manager中的Multi-profile preview开关,同时查看多设备上的应用/服务运行效果。

说明
多端设备预览不支持动画的预览,如果需要查看动画在设备上的预览效果,请关闭Multi-device preview功能后在单设备预览界面进行查看。

在这里插入图片描述

多设备预览效果如下图所示:

在这里插入图片描述
Inspector双向预览

DevEco Studio提供HarmonyOS应用/服务的UI预览界面与源代码文件间的双向预览功能,支持ets文件、hml文件及xml文件与预览器界面的双向预览。使用双向预览功能时,需要在预览器界面单击图标打开双向预览功能。

说明
暂不支持服务卡片的双向预览功能。

在这里插入图片描述
开启双向预览功能后,支持代码编辑器、UI界面和Component Tree 组件树三者之间的联动:

  • 选中预览器UI界面中的组件,则组件树上对应的组件将被选中,同时代码编辑器中的布局文件中对应的代码块高亮显示。
  • 选中布局文件中的代码块,则在UI界面会高亮显示,组件树上的组件节点也会呈现被选中的状态。
  • 选中组件树中的组件,则对应的代码块和UI界面也会高亮显示。

在这里插入图片描述
在预览界面还可以通过组件的属性面板修改可修改的属性或样式,在预览界面修改后,预览器会自动同步到代码编辑器中修改源码,并实时的刷新UI界面;同样的,如果在代码编辑器中修改源码,也会实时刷新UI界面,并更新组件树信息及组件属性。

说明
如果组件有做数据绑定,则其属性不支持在属性面板修改。
如果界面有使用动画效果或者带动画效果组件,则其属性不支持在属性面板修改。
多设备预览时,不支持双向预览。

为了能够让大家跟上互联网时代的技术迭代,在这里跟大家分享一下我自己近期学习心得以及参考网上资料整理出的一份最新版的鸿蒙学习提升资料,有需要的小伙伴自行领取,限时开源,先到先得~~~~

领取以下高清学习路线原图请点击→《鸿蒙 (Harmony OS)开发学习手册》纯血鸿蒙HarmonyOS基础技能学习路线图
在这里插入图片描述
领取以上完整高清学习路线图,请点击→《鸿蒙全套学习指南》小编自己整理的部分学习资料(包含有高清视频、开发文档、电子书籍等)
在这里插入图片描述

以上分享的学习路线都适合哪些人跟着学习?
-应届生/计算机专业通过学习鸿蒙新兴技术,入行互联网,未来高起点就业。-0基础转行提前布局新方向,抓住风口,自我提升,获得更多就业机会。-技术提升/进阶跳槽发展瓶颈期,提升职场竞争力,快速掌握鸿蒙技术,享受蓝海红利。
在这里插入图片描述

最后

鸿蒙开发学习是一个系统化的过程,从基础知识的学习到实战技能的锤炼,再到对前沿技术的探索,每一环节都至关重要。希望这份教程资料能帮助您快速入门并在鸿蒙开发之路上步步攀升,成就一番事业。让我们一起乘风破浪,拥抱鸿蒙生态的广阔未来

如果你觉得这篇内容对你有帮助,我想麻烦大家动动小手给我:点赞,转发,有你们的 『点赞和评论』,才是我创造的动力。

关注我,同时可以期待后续文章ing,不定期分享原创知识。

想要获取更多完整鸿蒙最新VIP学习资料,请点击→《鸿蒙基础入门学习指南》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1464032.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

六、回归与聚类算法 - 逻辑回归与二分类

线性回归欠拟合与过拟合线性回归的改进 - 岭回归分类算法:逻辑回归模型保存与加载无监督学习:K-means算法 1、应用场景 2、原理 2.1 输入 2.2 激活函数 3、损失以及优化 3.1 损失 3.2 优化 4、逻辑回归API 5、分类的评估方法 5.1 精确率和召回率 5.2…

滚雪球学Java(68):全面了解Java中常用的集合类:LinkedHashMap的应用与实践

咦咦咦,各位小可爱,我是你们的好伙伴——bug菌,今天又来给大家普及Java SE相关知识点了,别躲起来啊,听我讲干货还不快点赞,赞多了我就有动力讲得更嗨啦!所以呀,养成先点赞后阅读的好…

操作系统虚拟内存(下)

操作系统虚拟内存(上)-CSDN博客 TLB 多级页表虽然解决了空间上的问题,但是虚拟地址到物理地址的转换就多了几道转换的工序,这显然就降低了这俩地址转换的速度,也就是带来了时间上的开销。 程序是有局部性的&#xff…

使用备份工具xtrabackup完成数据库的备份与恢复

安装备份工具xtrabackup 简介 它是开源免费的支持MySQL 数据库热备份的软件,它能对InnoDB和XtraDB存储引擎的数据库非阻塞地备份。它不暂停服务创建Innodb热备份; 为mysql做增量备份;在mysql服务器之间做在线表迁移;使创建replica…

跟着pink老师前端入门教程(JavaScript)-day05

六、语句 (一)表达式和语句 1、表达式 表达式是可以被求值的代码,JavaScript 引擎会将其计算出一个结果。 2、语句 语句是一段可以执行的代码。 比如: prompt() 可以弹出一个输入框,还有 if语句 for 循环语句等…

华为OD机试真题-用连续自然数之和来表达整数-2023年OD统一考试(C卷)---python代码免费

题目: 代码 """ 题目分析: 一个整数 连续的自然数之和表示(非负整数)输入: 一个整数T[1,1000] 输出: 输出多个表达式,自然数个数最少优先输出 最后一行, 输出“Result : 个数…

【监督学习之线性回归】

曾梦想执剑走天涯,我是程序猿【AK】 目录 简述概要知识图谱 简述概要 了解什么是线性回归 知识图谱 监督学习中的线性回归是一种预测模型,它试图通过拟合一个线性方程来建立输入变量(特征)和输出变量(目标值&#x…

JAVA实现数据导出到excel文件

开始 1. 需要引入依赖 <dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>5.2.2</version></dependency> 2. 核心代码 // 创建一个工作簿&#xff0c;也就是Excel文件 HSSFWorkb…

bat判断vmware 是否已安装

要通过批处理脚本&#xff08;.bat&#xff09;判断VMware是否已安装&#xff0c;您可以尝试以下方法&#xff1a; 检查VMware的进程 您可以检查VMware相关的进程是否在运行。例如&#xff0c;VMware Workstation的进程名通常是vmware-workstation.exe。 echo off tasklist /…

微信小程序开发学习笔记——2.8媒体组件image的src三种引入方式

>>跟着b站up主“咸虾米_”学习微信小程序开发中&#xff0c;把学习记录存到这方便后续查找。 课程连接&#xff1a; https://www.bilibili.com/video/BV19G4y1K74d?p11 image&#xff1a;https://developers.weixin.qq.com/miniprogram/dev/component/image.html 一…

基于springboot+vue的服装生产管理系统(前后端分离)

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

【Chrono Engine学习总结】4-vehicle-4.3-两个vehicle碰撞测试

由于Chrono的官方教程在一些细节方面解释的并不清楚&#xff0c;自己做了一些尝试&#xff0c;做学习总结。 今天突发奇想&#xff0c;想试一下&#xff0c;是否可以实现两个vehicle的碰撞&#xff1f; 1、两辆vehicle的仿真 官方提供了demo_VEH_TwoCars这个demo&#xff0c…

「C#」WPF学习笔记-基础类及继承关系

1、DependencyObject DependencyObject是WPF中依赖属性系统的核心&#xff0c;它为WPF的数据绑定、动画和属性共享等功能提供了支持&#xff0c;是一个非常重要的基类。 其主要特点和职责包括&#xff1a; 依赖属性系统&#xff1a;DependencyObject 是所有支持依赖属性的类…

js设计模式:观察者模式

作用: 和发布订阅模式基本类似。 当某一对象状态发生变化时,所有的观察者都会收到通知。 vue响应式原理就是很经典的案例,数据发生变化,通知各个依赖。 示例: class TaobaoShop{constructor(){this.list []}addSub(name,data){this.list.push({name,data})}pubUser(name,d…

Web3 基金会推出去中心化之声计划:投入高额 DOT 和 KSM ,助力去中心化治理

作者&#xff1a;Web3 Foundation Team 编译&#xff1a;OneBlock 原文&#xff1a;https://medium.com/web3foundation/decentralized-voices-program-93623c27ae43 Web3 基金会为 Polkadot 和 Kusama 创建了去中心化之声计划&#xff08;Decentralized Voices Program&…

【Java多线程】分析线程加锁导致的死锁问题以及解决方案

目录 1、线程加锁 2、死锁问题的三种经典场景 2.1、一个线程一把锁 2.2、两个线程两把锁 2.3、N个线程M把锁&#xff08;哲学家就餐问题&#xff09; 3、解决死锁问题 1、线程加锁 其中 locker 可以是任意对象&#xff0c;进入 synchronized 修饰的代码块, 相当于加锁&…

亚信安慧AntDB数据库为实时流数据构筑坚实防线

在数字化浪潮中&#xff0c;企业对实时流数据处理的依赖日益增强。在此背景下&#xff0c;AntDB数据库应运而生&#xff0c;提供一种创新性解决方案&#xff0c;专注于解决实时流数据处理中的数据容灾和一致性问题。AntDB的设计理念是确保在处理高吞吐量的流数据时&#xff0c;…

web前端安全性——CSRF跨站请求伪造

承接上篇讲述的XSS跨站脚本攻击 跨站请求伪造&#xff08;CSRF&#xff09; 1、概念 CSRF(Cross-site request forgery) 跨站请求伪造:攻击者诱导受害者进入第三方网站&#xff0c;在第三方网站中&#xff0c;向被攻击网站发送跨站请求。利用受害者在被攻击网站已经获取的注…

【Git】:标签功能

标签功能 一.标签操作二.推送远程标签 标签 tag &#xff0c;可以简单的理解为是对某次commit的⼀个标识&#xff0c;相当于起了⼀个别名。例如&#xff0c;在项⽬发布某个版本的时候&#xff0c;针对最后⼀次commit起⼀个v1.0这样的标签来标识⾥程碑的意义。这有什么⽤呢&…

代码随想录算法训练营第21天—回溯算法01 | ● 理论基础 ● *77. 组合

理论基础 回溯是一种纯暴力搜索的方法&#xff0c;它和递归相辅相成&#xff0c;通常是执行完递归之后紧接着执行回溯相较于以往使用的for循环暴力搜索&#xff0c;回溯能解决更为复杂的问题&#xff0c;如以下的应用场景应用场景 组合问题 如一个集合{1,2,3,4}&#xff0c;找…