HarmonyOS—使用預覽器查看應用/服務效果

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',  //指定當前組件預覽渲染的設備類型,默認為Phonewidth: 1080,  //預覽設備的寬度,單位:pxheight: 2340,  //預覽設備的長度,單位:pxcolorMode: 'light',  //顯示的亮/暗模式,取值為light或darkdpi: 480,  //預覽設備的屏幕DPI值locale: 'zh_CN',  //預覽設備的語言,如zh_CN、en_US等orientation: 'portrait',  //預覽設備的橫豎屏狀態,取值為portrait或landscaperoundScreen: false  //設備的屏幕形狀是否為圓形
})

請注意,如果被預覽的組件是依賴參數注入的組件,建議的預覽方式是:定義一個組件片段,在該片段中聲明將要預覽的組件,以及該組件依賴的入參,并在組件片段上標注@Preview注解,以表明將預覽該片段中的內容。例如,要預覽如下組件:

@Component
struct Title {context: stringbuild() {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.pswp.cn/news/697031.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/697031.shtml
英文地址,請注明出處:http://en.pswp.cn/news/697031.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

探索分布式強一致性奧秘:Paxos共識算法的精妙之旅

提到分布式算法,就不得不提 Paxos 算法,在過去幾十年里,它基本上是分布式共識的代名詞,因為當前一批常用的共識算法都是基于它改進的。比如,Fast Paxos 算法、Cheap Paxos、Raft 算法等。 由萊斯利蘭伯特(L…

Spring6學習技術|AOP

學習材料 尚硅谷Spring零基礎入門到進階,一套搞定spring6全套視頻教程(源碼級講解) AOP AOP(Aspect Oriented Programming)是一種設計思想,是軟件設計領域中的面向切面編程,它是面向對象編程的…

AIDL的工作原理與使用示例 跨進程通信 遠程方法調用RPC

AIDL的介紹與使用 AIDL(Android Interface Definition Language)是Android中用于定義客戶端和服務端之間通信接口的一種接口定義語言。它允許你定義客戶端和服務的通信協議,用于在不同的進程間或同一進程的不同組件間進行數據傳遞。AIDL通過…

深入探討YUV圖像處理:理論原理與OpenCV實踐

文章目錄 導言YUV模型的原理使用OpenCV處理YUV圖像1. 讀取YUV圖像2. 將YUV圖像轉換為RGB圖像3. 將RGB圖像轉換為YUV圖像 結語 導言 導言: 在圖像處理領域,YUV色彩模型因其對亮度和色度的分離而被廣泛使用,特別在視頻編碼和實時通信中發揮了巨…

算法項目(3)—— 從零實現KNN、樸素貝葉斯垃圾郵件分類

本文包含什么? 項目運行的方式項目代碼,自己實現KNN算法以及樸素貝葉斯算法.代碼介紹運行有問題? csdn上后臺隨時售后.項目說明 本文主要是自己從0實現KNN算法以及樸素貝葉斯算法.然后使用英文垃圾郵件數據集進行垃圾郵件分類.常見的代碼均調用sklearn庫來實現,本文自行實現…

AI推介-大語言模型LLMs論文速覽(arXiv方向):2024.01.01-2024.01.10

1.Pre-trained Large Language Models for Financial Sentiment Analysis 標題:用于金融情感分析的預訓練大型語言模型 author:Wei Luo, Dihong Gong date Time:2024-01-10 paper pdf:http://arxiv.org/pdf/2401.05215v1 摘要: 金融情感分析是指將金融文本內容劃分…

從零學習Linux操作系統第二十八部分 shell腳本中的執行流控制

一、什么是執行流、循環執行流 執行流:改變執行順序,使之更方便操作者 循環執行流:根據腳本是執行流再某一個狀態下進行循環執行,進行多次執行后再往下走(for語句) for語句 作用 為循環執行動作 for語句…

opencv判斷灰化情況

目的 先說說理論: 在圖像處理中,用RGB三個分量(R:Red,G:Green,B:Blue),即紅、綠、藍三原色來表示真彩色,R分量,G分量,B分…

LeetCode LCR 055.二叉搜索樹迭代器

實現一個二叉搜索樹迭代器類BSTIterator ,表示一個按中序遍歷二叉搜索樹(BST)的迭代器: BSTIterator(TreeNode root) 初始化 BSTIterator 類的一個對象。BST 的根節點 root 會作為構造函數的一部分給出。指針應初始化為一個不存在…

vue實現拖拽(vuedraggable)

實現效果: 左側往右側拖動,右側列表可以進行拖拽排序。 安裝引用: npm install vuedraggable import draggable from vuedraggable 使用: data數據: componentList: [{groupName: 考試題型,children: [{componentType: danxua…

SQLite 的使用

SQLite 是一個輕量級、自包含和無服務器的關系型數據庫管理系統(RDBMS),廣泛應用于嵌入式系統、移動應用程序和小中型網站。它易于創建、需要的配置較少,并且提供了用于管理和操作數據的強大功能集。本文,我們將帶領你…

電路設計(26)——交通信號燈的multism仿真

1.功能要求 使用數字芯片設計一款交通信號燈,使得: 主干道的綠燈時間為60S,紅燈時間為45S 次干道的紅燈時間為60S,綠燈時間為45S 主、次干道,綠燈的最后5S內,黃燈閃爍 使用數碼管顯示各自的倒計時時間。 按…

【CMake】(5)搜索文件

方法1:使用aux_source_directory命令 aux_source_directory命令用于查找指定目錄下的所有源文件,并將文件列表存儲到一個變量中。這種方法簡單易用,適合于源文件位于單一目錄下的情況。 基本語法如下: aux_source_directory(<dir> <variable>)<dir>:…

openssl3.2 - 編譯 - zlib.dll不要使用絕對路徑

文章目錄 openssl3.2 - 編譯 - 編譯時的動態庫zlib.dll不要使用絕對路徑概述測試zlib特性在安裝好的目錄中是否正常筆記70-test_tls13certcomp.t80-test_cms.t對測試環境的猜測從頭再編譯測試安裝一次測試一下隨便改變位置的openssl用到zlib時是否好使測試一下隨便改變位置的op…

Docker Nginx 負載均衡搭建(服務宕機-配置高可用) - 附(Python案例,其它語言同理)

目錄 一 . 概要 1. 什么是負載均衡 2. 負載均衡有哪些優勢&#xff1f; &#xff08;1&#xff09;應用程序可用性 &#xff08;2&#xff09;應用程序可擴展性 &#xff08;3&#xff09;應用程序安全 &#xff08;4&#xff09;應用程序性能 3 . Nginx負載均衡調度策…

Java高級 / 架構師 場景方案 面試題(二)

1.雙十一億級用戶日活統計如何用 Redis快速計算 在雙十一這種億級用戶日活統計的場景中&#xff0c;使用Redis進行快速計算的關鍵在于利用Redis的數據結構和原子操作來高效地統計和計算數據。以下是一個基于Redis的日活統計方案&#xff1a; 選擇合適的數據結構&#xff1a; …

核密度分析

一.算法介紹 核密度估計&#xff08;Kernel Density Estimation&#xff09;是一種用于估計數據分布的非參數統計方法。它可以用于多種目的和應用&#xff0c;包括&#xff1a; 數據可視化&#xff1a;核密度估計可以用來繪制平滑的密度曲線或熱力圖&#xff0c;從而直觀地表…

【DOCKER】隨手記

目錄 1. 安裝1.1 LINUX1.2 Windows 2. 常用配置2.1 普通權限運行2.2 開機自啟動2.3 3 更換Docker鏡像源2.4 更改默認存儲位置 3. 顯示帶UI的軟件4. 基于DOCKER的服務4.1 FTP4.2 Portainer4.3 Watchtower4.4 SiYuan4.5 GitLab4.5.1 創建容器4.5.2 克隆路徑問題4.5.3 獲取默認密碼…

win系統下安裝php8.3版本并配置環境變量的詳細教程

本篇文章主要講解在win系統下安裝和配置php8.3版本&#xff0c;并配置環境變量的詳細教程。 日期&#xff1a;2024年2月22日 作者&#xff1a;任聰聰 一、下載php8.3版本包 php8.3版本官方下載地址&#xff1a;https://windows.php.net/download#php-8.3 步驟一、打開下載地址…

【Unity】Unity與安卓交互

問題描述 Unity和安卓手機進行交互&#xff0c;是我們開發游戲中最常見的場景。本教程將從一個簡單的例子來演示一下。 本教程需要用到Android Studio2021.1.1 1.Android Studio新建一個工程 2.選擇Empty Activity 然后點擊Next 3.點擊Finish完成創建 4.選擇File-New-New Mo…