Get這個秘籍,告別鴻蒙原生應用頁面滑動白塊/白屏困擾
在鴻蒙應用開發(fā)中,部分應用頁面在滑動時會出現(xiàn)白塊或白屏的問題,不僅困擾開發(fā)者,還直接影響用戶體驗。針對這一痛點,華為近期分別推出了針對鴻蒙原生應用ArkUI頁面及Web頁面的滑動白塊與白屏問題的解決方案,通過創(chuàng)新技術(shù)手段解決不同技術(shù)棧下的性能瓶頸,為開發(fā)者提供更流暢的頁面渲染體驗,有效提升鴻蒙應用的頁面滑動流暢度。
ArkUI頁面動態(tài)預加載:兼顧應用首頁速度與滑動流暢性
在ArkUI頁面中,滑動時出現(xiàn)白塊現(xiàn)象是開發(fā)者常遇到的技術(shù)難題,且大多數(shù)情況在使用imageKnife后仍存在相應問題。傳統(tǒng)的優(yōu)化方式主要依賴于增加cachedCount緩存數(shù)量,但這一方法往往帶來新的問題,例如首頁白屏或內(nèi)存占用增加,影響整體體驗。為了解決這一痛點,華為提供了一種基于動態(tài)預加載的方案,通過將LazyForEach+ImageKnife和Repeat+ImageKnife兩種技術(shù)組合,精準優(yōu)化頁面渲染過程。這一方案不僅能有效避免ImageKnife導致的圖片加載延遲問題,同時還能縮短LazyForEach的首屏加載時間,為開發(fā)者帶來更優(yōu)的頁面加載體驗,同時提升用戶的視覺流暢度。
該方案通過實現(xiàn)Prefetcher接口監(jiān)聽數(shù)據(jù)項的變化,動態(tài)控制資源的下載與取消,并結(jié)合ImageKnife三方庫實現(xiàn)具體的預取和緩存管理。這種動態(tài)預加載策略突破了以往解決方案的局限性,提供了一種更加智能、高效的頁面優(yōu)化方式,既解決了滑動過程中圖片加載不及時導致的卡頓白塊,又避免了首頁白屏問題,同時降低內(nèi)存壓力。華為與鴻蒙生態(tài)中的應用伙伴通力合作,在多個實際應用場景中驗證了該方案的可行性,幫助使用imageKnife的10多位伙伴解決了滑動白塊問題。
目前,該方案的相關(guān)代碼庫和文檔已通過開源社區(qū)及技術(shù)平臺開放,開發(fā)者可訪問Gitee、思否、51CTO、CSDN等平臺獲取詳細指南。
Gitee鏈接:
https://gitee.com/ohadss/white_block_solution?login=from_csdn
思否鏈接:
https://segmentfault.com/a/1190000046046687
51CTO鏈接:
https://ost.51cto.com/posts/31432
CSDN鏈接:
https://harmonyosdev.csdn.net/678f60a2911edf5f3b042b1b.html
Web頁面全局組件復用庫:預加載資源場景實現(xiàn)“零等待”
在Web頁面的優(yōu)化上,華為也帶來了全新的技術(shù)方案。Web頁面在加載過程中,常因資源下載耗時導致頁面卡頓、丟幀、白塊問題,影響用戶體驗。傳統(tǒng)的原生容器組件無法直接預渲染W(wǎng)eb組件,因此開發(fā)者通常需要自行維護節(jié)點池,開發(fā)成本高昂。而華為提供的全局自定義組件復用三方庫“nodepool”,則通過BuilderNode創(chuàng)建全局自定義組件復用池,實現(xiàn)跨頁面的Web組件復用及自動化的入池、出池管理,極大地簡化了Web頁面的開發(fā)流程。
基于“nodepool”的持續(xù)優(yōu)化,這一方案在原生頁面的高性能滑動體驗上,已經(jīng)實現(xiàn)了對競品的超越,并提供了一種簡單易用的全局組件復用能力,大幅提升開發(fā)者的開發(fā)效率,讓代碼量減少200行以上。在降低開發(fā)難度的同時,該方案還通過優(yōu)化資源加載與渲染流程,大幅降低了滑動卡頓和丟幀率,使Web頁面的加載幾乎可達到“秒開”效果。以某頭部旅行應用為例,在應用該方案后,Web頁面的預加載體驗得到顯著提升,頁面基本能夠?qū)崿F(xiàn)瞬時打開,從根本上解決了預加載資源耗時過長的問題。
目前,“nodepool”已上線OpenHarmony社區(qū)三方庫中心倉,開發(fā)者可訪問“OpenHarmony官網(wǎng)”,點擊“開發(fā)者”——>“三方庫中心倉”——>搜索“nodepool”,下載使用。
更多關(guān)于“nodepool”的詳細信息和使用指南,請訪問:
https://ohpm.openharmony.cn/#/cn/detail/@hadss%2Fnodepool/v/1.0.2-rc.0
華為此次推出的ArkUI與Web頁面滑動白塊/白屏解決方案,不僅優(yōu)化了鴻蒙應用的頁面加載性能,更顯著降低了開發(fā)者實現(xiàn)高性能滑動效果的門檻。歡迎更多開發(fā)者應用廠商使用和反饋,共同提升鴻蒙應用的性能與體驗。
未來華為也將持續(xù)攜手生態(tài)伙伴共建創(chuàng)新,面向底座技術(shù)、通用能力、垂類行業(yè)等場景推出系列開發(fā)者場景化解決方案,不斷提升鴻蒙原生應用的創(chuàng)新體驗和開發(fā)效率,與廣大開發(fā)者共建繁榮的鴻蒙生態(tài)。
- 目前還沒評論,等你發(fā)揮!