成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

鴻蒙IDE迎來重大更新,新特性足以讓你尖叫

系統
文章由鴻蒙社區產出,想要了解更多內容請前往:51CTO和華為官方戰略合作共建的鴻蒙技術社區https://harmonyos.51cto.com

[[391422]]

想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區

https://harmonyos.51cto.com

鴻蒙(HarmonyOS)最新版的IDE Beta3于2021-03-31日發布,beta3增加了很多吸引人的功能,這些功能有一些與編程有關,有一些與配置、模板有關。本文主要深入介紹與編程有關的3個特性:雙向預覽、Java UI數據模擬和測試框架,至于其他的一些新特性,如更多的phone模板,API version的變化,可視化配置config.json等,可以參考我下面的視頻。

視頻演示

1. 雙向預覽功能

預覽器增加了雙向預覽功能,所謂雙向預覽,針對的是布局。修改布局文件的代碼,會立刻在預覽器中顯示布局的效果,而通過點擊布局效果中的組件,會自動定位到布局中的特定代碼。

現在讓我來演示一下,首先創建一個HarmonyOS工程,然后打開自動生成的布局文件,多輸入一些布局代碼,如下所示。 

然后啟動右側的預覽器,效果如下:

可以看到,布局文件的效果直接體現在了預覽器上。不過目前仍然是單向預覽。

點擊預覽器右上角兩個T的按鈕,在右側會顯示組件樹視圖,下面是當前選中組件的屬性列表,可以直接修改屬性的值。當選中組件樹或預覽器中的組件時,布局代碼就會自動定位到對應的組件,如下所示。

不過目前并不是所有情況都支持同步,有如下情況目前還無法同步:

(1) hml布局代碼里使用了數據綁定的屬性

(2)xml布局代碼里使用了資源引用的屬性

(3)UI界面設置了動畫效果

2.Java UI 數據模擬

這個功能相當有趣,其實核心理念就是見什么人說什么話。在應用發布時,執行的是真正的業務邏輯代碼,數據也是真實的。但在調試時,有時用真實的數據測試太費勁,這些真實的數據可能難以獲得,或獲取很麻煩,或者數據量很大,反正,就是各種不爽。

我們期望在應用發布時使用真實的數據,而在調試時,使用測試數據,關鍵一點是,不用修改任何代碼,根據調試或發布的場景自動切換。這就是Java UI數據模擬的核心作用。其實這個功能的理念與我10年前做的一個實驗性項目類似,這是一個模擬NFC的系統,支持Android。在開發時,使用模擬的NFC Tag和模擬的移動設備進行測試,只需要將NFC Tag拖動到模擬設備上,就相當于真實環境中的NFC Tag與手機接觸。然后將App發布到真機上時,系統會自動探測當前運行環境,如果是真機,那么就會自動切換到使用真正的NFC芯片讀寫NFC Tag,這一過程是完全透明,不需要修改一行代碼就可以自動切換,如下所示。

鴻蒙的Java UI數據模擬也類似,這個功能是為Java UI模擬數據的。由一系列API組成,不過這些API默認并沒有包含在鴻蒙SDK中,需要在模塊的build.gradle中添加如下依賴:

運行程序,會先下載這個依賴。然后創建數據模擬類,代碼如下:

這里用onStart方法攔截了Slice的onStart方法,相當于AOP的切片。在onStart方法中調用了Slice的onStart方法。如果這里不調用,那么Slice中的onStart方法是不會調用的(會顯示黑屏)。在onStart方法中設置了模擬數據(name和age)。也就是說,Java UI數據模擬,其實借鑒了AOP的部分概念。

然后在Slice的onStart方法中可以使用下面的代碼使用數據。這里的代碼其實并不能感知用到的數據是模擬數據,還是真實的數據。

現在不要運行,因為運行就使用正式的數據了,現在切換到Slice類,然后打開預覽器,會看到如下所示的效果。

是不是兩個Text組件的內容都變了。在預覽器中可以使用模擬數據檢查Slice中的代碼是否正確,當然,Page Ability也可以使用這個功能。

3. 新增的測試框架

創建HarmonyOS工程,會發現多了一個ohosTest,這是新增的測試框架的目錄,可以利用測試框架編寫測試代碼,讓我們可以用TDD的方式開發程序。也就是在寫程序之前,先為App設定一個邊界,只要App中的相關數據越雷池一步,測試框架就會檢測出來。

在開發階段,開發者可借助由Java測試框架提供的IAbilityDelegator,進行APP組件操控測試(如:啟動/關閉FA、獲取界面UI元素、注入UI點擊事件等),及時發現UI交互問題。或使用JUnit 4語法范式,編寫測試用例、調用系統接口,獲得API返回值或觸發業務流程,根據接口返回值或業務狀態,判斷業務邏輯的正確性。

下面給出一個例子,打開ExampleOhosTest.Java文件,會看到如下代碼:

這是系統自動生成的測試用例代碼,用來測試BundleName,如果BundleName不是我們期望的,在測試時就會報錯。現在點擊testBundleName方法前面的綠色箭頭,會看到如下所示的菜單:

點擊Run 'testBundleName()'菜單項開始測試,如果發生錯誤,在下方的Run視圖會輸出如下內容。

這時就會發現代碼中的錯誤,以便及時修改。如果某個人不小心修改了BundleName,測試是不會通過的。

想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區

https://harmonyos.51cto.com

 

責任編輯:jianghua 來源: 鴻蒙社區
相關推薦

2020-01-10 15:44:50

編程語言C++Java

2025-05-19 00:06:00

編碼工具CursorAI

2020-04-26 10:52:37

LinuxUbuntu 20.0Ubuntu 18.0

2020-10-21 11:17:23

OPPO Watch健康生態

2015-12-11 15:39:54

華為

2024-04-07 00:00:00

ESlint命令變量

2011-12-14 16:15:17

MySQL

2024-04-26 09:03:31

Node.jsCurrent發布版

2023-08-05 07:14:28

ChatGPT登錄賬號

2020-12-11 07:23:03

微信更新移動應用

2025-02-19 16:00:00

ES代碼ECMAScript

2024-10-31 08:35:53

2021-02-02 14:41:11

NumPy開發程序

2025-05-07 03:15:00

NacosAPIMCP

2012-03-24 21:02:41

iOS

2012-08-03 09:59:45

隧道技術IPv6

2021-06-11 13:20:41

Vivaldi 4.0Linux瀏覽器

2021-08-10 15:10:01

ChromeEdge瀏覽器

2021-10-20 16:44:50

Windows 11操作系統微軟

2025-02-27 09:48:24

JavaScriptDate?對象
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩精品视频中文字幕 | 亚洲欧美激情四射 | 国产999精品久久久 午夜天堂精品久久久久 | 日韩精品一区二区三区在线播放 | 在线看av网址 | 免费一级欧美在线观看视频 | 欧美一区二区三区电影 | 久久久一区二区三区四区 | 国产精品日韩欧美 | 成人在线一级片 | 日韩在线一区二区三区 | 亚洲在线一区 | 久久精品一区 | 婷婷中文在线 | 97国产爽爽爽久久久 | 国产综合久久 | 欧美久久一区二区 | 国产99久久久国产精品 | 狠狠爱综合 | 亚洲精品在线看 | 亚洲va在线va天堂va狼色在线 | 日本一二区视频 | 久久亚洲欧美日韩精品专区 | 亚洲欧洲中文 | 欧美视频中文字幕 | 一区二区三区四区电影视频在线观看 | 亚洲成av片人久久久 | av网站在线播放 | 国产综合久久久 | 一区二区三区视频 | 日本在线中文 | 综合久久综合久久 | 在线精品国产 | 91不卡| 天天操夜夜操 | 一区二区三区国产在线观看 | 欧美日韩一二三区 | 色姑娘av | 久久在线免费 | 日韩色在线 | 99久久精品国产一区二区三区 |