女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

ArkUI新能力,助力應用開發更便捷

HarmonyOS開發者 ? 來源:未知 ? 2023-02-15 16:35 ? 次閱讀

作者:niulihua,華為ArkUI技術專家;wanglei,華為ArkUI技術專家

ArkUI是一套構建分布式應用的聲明式UI開發框架。它具備簡潔自然的UI信息語法、豐富的UI組件、多維的狀態管理,以及實時界面預覽等相關能力,幫助您提升應用開發效率,并能在多種設備上實現生動而流暢的用戶體驗。隨著HarmonyOS 3.1版本的發布,ArkUI也新增許多能力,助力應用開發更便攜。

ArkUI框架新增能力概覽

ArkUI能力一直在不斷構建中,如下圖所示,藍色模塊是本次新版本ArkUI框架的新增/增強能力。

c7dffae8-ad0a-11ed-bfe3-dac502259ad0.png

ArkUI框架能力集

接下來,小編將從聲明式繪制能力、混合開發能力、多樣化布局能力、一多組件能力、UI動態化能力五大能力,詳細說明ArkUI如何讓應用開發更加便捷。

1、聲明式Canvas繪制能力:

為了方便開發者通過繪制方式實現自定義UI效果,提供Canvas組件。

2、高性能混合開發能力:

為滿足三方渲染引擎接入,比如游戲、地圖等,提供了XComponent組件,支持C++/ArkTS混合開發。

3、多樣化布局能力:

為滿足多種多樣的布局訴求,提供了相對布局容器、靈活錨點能力、自定義布局能力。

4、一多組件能力:

針對不同設備、不同分辨率的多平臺場景,增強了一多場景的分欄組件能力;為滿足列表項的懸停訴求,增強了列表的吸頂/吸底能力。

5、UI動態化能力:

為滿足大型應用的局部更新需求,提供動態化模板能力。

下面針對這些新增能力,結合示例逐一詳細介紹:

說明:什么是一多?

一多是一次開發,多端部署的簡稱。具體指一套代碼工程,一次開發,應用安裝包一次上架,多種設備形態按需分發部署。

聲明式Canvas繪制能力

ArkUI通過Canvas組件對外提供高性能2D繪制能力,滿足多種場景自定義繪制訴求,Canvas組件具備下述特性。

1)Canvas提供繪制路徑、矩形、圓形、字符以及圖像等多種方法;

2)利用現有Web Canvas生態,參考W3C的Canvas接口,而無需引入Web引擎,給開發者提供了一個輕量化的2D繪制能力;

c7ecfdec-ad0a-11ed-bfe3-dac502259ad0.png

W3C Canvas繪制接口

3)結合聲明式語法,兼顧開發者繪制習慣;

4)基于GPU渲染加速。

下面的示例,是通過Canvas自繪制實現的,它繪制了一個圖片背景,并在上層填充“Harmony OS”的文本,代碼示例如下:

1@Component

2struct IndexCanvas{

3//獲取繪圖對象

4private ctx: RenderingContext = new RenderingContext();

5//列出所要用到的圖片

6private img: ImageBitmap = new ImageBitmap("common/bg.jpg");

7build() {

8Column() {

9//創建canvas

10Canvas(this.ctx)

11.width(1500)

12.height(900)

13.backgroundColor('#ffff00')

14//開始繪制

15.onReady(() => {

16this.ctx.drawImage(this.img, 0, 0, 400, 200)
17this.ctx.fillStyle = "#FFF"
18this.ctx.font = '100px sans-serif bold'
19this.ctx.fillText("HarmonyOS", 100, 80)
20this.ctx.fillStyle = "rgb(38,79,247)"
21this.ctx.fillRect(250, 85, 26, 4)

22})

23}

24}

25}

(左右滑動,查看更多)

實現效果如下圖所示:

Canvas繪制能力效果

Canvas組件:

https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/arkui-ts/ts-canvasrenderingcontext2d.md#drawimage

高性能混合開發能力

在應用開發過程中,很多場景是無法直接采用UI組合實現的,例如游戲、地圖是OS上經常使用的一類高頻應用,但由于游戲和地圖對OS底層繪制能力要求較高,這類應用基本上都是直接使用EGL/OpenGLES的Native能力實現,而XComponent就是ArkTS與C++混合開發的粘合劑。

如下面框架圖所示,XComponent作為一個ArkTS組件,具備通用聲明式組件的屬性,可進行布局、事件等的聲明式業務開發。同時開發者可以使用OS對外提供的Native API實現Native的業務開發,XComponent負責將Native開發的邏輯和ArkTS的開發邏輯結合,完成統一渲染送顯。

c82a05c0-ad0a-11ed-bfe3-dac502259ad0.png

XComponent關系圖

如下代碼片段,代碼片段1是聲明式的ArkTS實現,代碼片段2是Native的實現。XComponent通過加載.so并執行相關業務邏輯,完成聲明式與C++的混合開發。

1 // ArkTS入口

2 XComponent({id: 'xcomponentId' , type: 'surface',libraryname: 'nativerender'})

代碼片段1(左右滑動,查看更多)

1 // C++渲染模塊

2 #include

3 #include

4 #include

5 #include

6

7 void NativeRender (OH_NativeXComponent* component, void* nativewindow){

8 //可調用NDK提供的C/C++接口(如:EGL/GLES能力)

9 }

10

代碼片段2(左右滑動,查看更多)

Xcomponent組件:

https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-xcomponent.md

多樣化布局能力

另外,ArkUI提供了多種多樣的布局能力,包括相對布局容器、靈活錨點能力、以及自定義布局能力。

1、相對布局容器,讓復雜布局扁平化

下面結合示例,具體介紹相對布局是如何使復雜的布局扁平化,更易于開發者開發的。

如下圖中“布局效果”所示,如果要實現圖中的效果,一段Text文本位于左上角,另一段Text文本放置在右下角,使用線性布局需要這么實現:在外層套一個Column容器,里面嵌套2個Row容器,第一段Text文本放置在第一個Row的左側,第二段Text文本放置在第二個Row的右側,需要使用3個布局容器,2層嵌套。

如果使用相對布局,只需要外層套一個RelativeContianer容器,設置第一行文本在相對容器的左上角,設置第二行文本在相對容器的右下角,只需要1個布局容器,1層嵌套,代碼實現上也較簡潔。

c837d114-ad0a-11ed-bfe3-dac502259ad0.png

線性布局和相對布局實現對比

2、靈活錨點,讓絕對定位能力更強大

除了以上介紹的布局能力外,ArkUI還提供了絕對定位和相對定位能力,讓開發者實現更靈活的定位,現已提供了2個方法,position和markAnchor。

名稱

參數類型

參數類型

position

Position

使用絕對定位,設置元素錨點相對于父容器頂部起點偏移位置。在布局容器中,設置該屬性不影響父容器布局,僅在繪制時進行位置調整。

markAnchor

Position

設置元素在位置定位時的錨點,以元素頂部起點作為基準點進行偏移。

通過position和markAnchor配合使用可以實現豐富的絕對定位能力,通過靈活錨點可以實現如下的定位效果。

c848e31e-ad0a-11ed-bfe3-dac502259ad0.png

靈活錨點定位效果

3、自定義布局,尺寸、位置任意掌控

ArkUI框架除提供的特定布局能力外,還提供了允許開發者自定義的布局能力。如圖中所示的圓形布局,通過現有的線性布局是很難實現的,像這類布局就可以通過自定義布局能力實現。其原理呢,就是通過對開發者暴露測量和布局的接口,允許開發者自己測量子組件和設置子組件位置。

c8575afc-ad0a-11ed-bfe3-dac502259ad0.png

圓形布局效果

流程如下圖所示,開發者通過onMeasure / onLayout拿到子組件數據后,通過measure測量每個組件大小,并根據開發者意圖通過layout設置每個組件的位置,最終實現開發者想要的布局。c86a6912-ad0a-11ed-bfe3-dac502259ad0.png

自定義布局實現流程

除圖中的圓形布局外,瀑布流布局也可以通過自定義布局實現。

一多組件能力

為幫助開發者更高效開發應用,我們還提供了分欄架構組件及列表組件等一多組件能力。

1、簡單快速的分欄架構組件

分欄架構組件可以在不同設備或不同分辨率平臺下顯示不同效果,分欄組件能自動根據斷點調整為二分欄或三分欄。

分欄控件的側邊欄也有2種顯示方式,可以是嵌入式的,內容區顯示在側邊欄右側,也可以是懸浮在內容區之上,滿足開發者不同訴求。

2、列表組件能力增強,內置橫滑動效、吸頂效果

1)橫滑動效

我們平時使用比較多的聊天軟件,它的聊天記錄或通信錄一般都是使用列表組件實現的,當需要對消息或通信錄進行刪除時,就是對列表的列表項刪除。ArkUI新增了列表的手勢刪除列表項功能,用戶可以通過左滑或右滑刪除某一列表項,并內置動畫效果。c87d7160-ad0a-11ed-bfe3-dac502259ad0.gif

2)吸頂效果

除此之外,列表組件還提供了吸頂效果,在滑動列表時,列表組件的title可以懸浮在頂端,便于用戶快速識別所屬類別。

c890eea2-ad0a-11ed-bfe3-dac502259ad0.gif

UI動態化能力

在不從應用市場下載整體應用的前提下實現應用的部分內容更新,是業界(尤其是互聯網應用)的一種典型場景。這類場景的實現就依賴UI動態化能力,動態化本質是一種跨平臺框架,只不過額外增加了不升級應用而實現動態更新的能力。

c8a511d4-ad0a-11ed-bfe3-dac502259ad0.png

UI動態化原理圖

基本原理如上圖所示:部署在云端的三四方DSL,通過網絡下載,三方解析框架負責加載DSL,并通過解析引擎解析為ArkUI聲明式組件,通過@Extend、@ObjectLink、@Builder機制支持動態化增加組件能力并融合到現有的UI中,ArkUI提供加載運行轉換后的組件樹,并負責通過框架渲染管線送顯。

結語

以上就是本期ArkUI框架新能力助力應用開發更便捷的全部介紹啦,歡迎大家到HarmonyOS開發者官網下載SDK包體驗。

未來ArkUI框架會持續圍繞競爭力和生態演進,多維度細粒度并發,進一步提升能效比,推出統一的聲明式2D&3D范式,不斷豐富跨OS平臺框架能力,各位開發者敬請期待!

END

想了解更多HarmonyOS技術?

后臺留言給我們

立刻安排!

c8b53ad2-ad0a-11ed-bfe3-dac502259ad0.gif

歡迎點擊|閱讀原文

進入HarmonyOS應用開發在線體驗


原文標題:ArkUI新能力,助力應用開發更便捷

文章出處:【微信公眾號:HarmonyOS開發者】歡迎添加關注!文章轉載請注明出處。


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • HarmonyOS
    +關注

    關注

    79

    文章

    2027

    瀏覽量

    32086

原文標題:ArkUI新能力,助力應用開發更便捷

文章出處:【微信號:HarmonyOS_Dev,微信公眾號:HarmonyOS開發者】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    ArkUI-X添加到現有Android項目中

    本教程主要講述如何利用ArkUI-X SDK完成Android AAR開發,實現基于ArkTS的聲明式開發范式在android平臺顯示。包括: 1.跨平臺Library工程開發介紹 2
    發表于 05-28 22:44

    ArkUI-X跨平臺框架接入指南

    ArkUI跨平臺框架(ArkUI-X)進一步將ArkUI開發框架擴展到了多個OS平臺:目前支持OpenHarmony、Android、 iOS,后續會逐步增加更多平臺支持。
    發表于 05-18 18:21

    OPPO Find N5接入DeepSeek-R1,語音操控更便捷

    近日,OPPO宣布其最新折疊旗艦手機Find N5將正式接入DeepSeek-R1,并可通過語音喚醒直接使用,為首批購買用戶帶來前所未有的便捷體驗。據悉,Find N5將于本月正式發布。 接入
    的頭像 發表于 02-12 10:12 ?461次閱讀

    華為推出RN/H5多設備自適應組件庫

    在原生鴻蒙應用開發中,華為針對ArkUI框架推出了一整套針對多設備適配的完善能力(如“一多”能力)以及高階組件(如分欄、邊看邊評等),幫助開發
    的頭像 發表于 01-16 14:46 ?575次閱讀

    聯發科技攜手Cocos共建端側生成式AI游戲開發生態,推動行業升級

    全球領先的半導體公司聯發科技與知名游戲引擎開發商Cocos正式宣布達成深度合作!這一合作將把聯發科技在端側生成式AI領域的尖端技術,與Cocos在游戲開發領域的深厚積累深度結合,為開發者帶來
    的頭像 發表于 01-10 09:24 ?370次閱讀

    HarmonyOS開發指導類文檔更新速遞(上)

    、媒體相關能力新增、優化文檔,方便開發者更加高效使用文檔。 ArkUI(方舟UI框架) ArkUI(方舟UI框架)是一個簡潔、高性能、支持跨設備的UI框架,提供了豐富的應用界面
    的頭像 發表于 12-30 09:50 ?780次閱讀
    HarmonyOS<b class='flag-5'>開發</b>指導類文檔更新速遞(上)

    人工智能:重塑生活的便捷與奇跡

    人工智能以其強大的數據處理能力、學習能力和創新能力,正逐步滲透到我們生活的方方面面,為我們帶來了前所未有的便捷與高效。它不僅提升了生活質量,還促進了社會經濟的全面發展,為構建更加智慧、
    的頭像 發表于 12-07 09:46 ?447次閱讀

    工業連接器的“選擇難題”:焊接款VS鎖線款,誰更便捷

    在工業連接器的世界里,焊接款和鎖線款如同兩位各懷絕技的工匠,各自占據著一席之地。它們各有所長,各具特色,讓選擇變得不再簡單。今天,讓我們一起來探討這個“選擇難題”,看看焊接款與鎖線款之間,誰更便捷
    的頭像 發表于 11-20 13:50 ?437次閱讀
    工業連接器的“選擇難題”:焊接款VS鎖線款,誰<b class='flag-5'>更便捷</b>?

    開發更便利!迅為RK3568/RK3588 定制分區鏡像發布

    開發更便利!迅為RK3568/RK3588 定制分區鏡像發布
    的頭像 發表于 11-11 14:00 ?988次閱讀
    <b class='flag-5'>開發</b><b class='flag-5'>更便</b>利!迅為RK3568/RK3588 定制分區鏡像發布

    全志T507-H國產平臺Ubuntu系統正式發布,讓您的應用開發更便捷

    本帖最后由 Tronlong創龍科技 于 2024-10-29 10:41 編輯 為了滿足廣大工業用戶的需求,創龍科技針對全志T507-H工業平臺進行了Ubuntu系統適配,開發環境如下
    發表于 10-29 09:39

    鴻蒙原生應用元服務開發-初識倉頡開發語言

    強大的類型推斷能力,可以減少類型標注工作,提高開發效率。 內存安全 :倉頡編程語言支持自動內存管理,并在運行時進行數組下標越界檢查、溢出檢查等,確保運行時內存安全。 高效并發 :倉頡編程語言提供了用戶態
    發表于 08-15 10:00

    慶科信息獲HarmonyOS高級應用開發能力認證!助力品牌快速打造鴻蒙原生應用

    近日,上海慶科信息技術有限公司榮獲HarmonyOS應用開發者高級認證,公司在華為鴻蒙生態的開發能力得到進一步拓展,能夠幫助客戶快速開發基于HarmonyOS Next的鴻蒙原生應用,
    的頭像 發表于 07-17 13:24 ?861次閱讀
    慶科信息獲HarmonyOS高級應用<b class='flag-5'>開發</b><b class='flag-5'>能力</b>認證!<b class='flag-5'>助力</b>品牌快速打造鴻蒙原生應用

    ROS讓機器人開發更便捷,基于RK3568J+Debian系統發布!

    。 ROS系統主要特點有哪些 (1) 提供豐富的機器人算法庫 機器人的各種控制以及通信離不開算法庫的支持,ROS系統提供豐富且功能強大的機器人算法庫,如坐標變換、運動控制等。機器人開發者可根據開發需要
    發表于 07-09 11:38

    NFC無風險,安全更便捷

    在數字化快速發展的今天,NFC(近場通信)技術因其便捷性和實用性而備受矚目。從移動支付到門禁系統,再到智能設備間的數據交換,NFC技術已經滲透到我們日常生活的方方面面。然而,與此同時,關于NFC技術
    的頭像 發表于 06-17 17:45 ?1420次閱讀

    機智云助力小程序開發:連接智能硬件與智能生活

    隨著智能硬件的普及和小程序的興起,人們的生活越來越依賴于智能化的解決方案。作為物聯網領域的領先者,機智云為小程序開發者提供了豐富的支持和功能,幫助他們輕松實現智能硬件與小程序的連接,為用戶帶來更便捷
    的頭像 發表于 06-15 08:10 ?684次閱讀
    機智云<b class='flag-5'>助力</b>小程序<b class='flag-5'>開發</b>:連接智能硬件與智能生活