想讓鴻蒙應(yīng)用快得“飛起”,來 HarmonyOS 開發(fā)者官網(wǎng)“最佳實(shí)踐-性能專區(qū)”

0 評(píng)論 1952 瀏覽 1 收藏 6 分鐘
🔗 B端产品经理需要更多地关注客户的商业需求、痛点、预算、决策流程等,而C端产品经理需要更多地关注用户的个人需求

在鴻蒙應(yīng)用開發(fā)過程中,應(yīng)用側(cè)流暢運(yùn)行體驗(yàn)是開發(fā)者非常關(guān)注的部分。為此,華為 HarmonyOS 開發(fā)者官網(wǎng)推出了“最佳實(shí)踐-性能專區(qū)”(以下簡稱“性能專區(qū)”),通過系統(tǒng)化的文檔、工具與案例介紹,為開發(fā)者提供從問題定位到優(yōu)化落地的全流程解決方案,助力開發(fā)者打造流暢鴻蒙應(yīng)用。

最佳實(shí)踐-性能專區(qū)內(nèi)容概覽

性能專區(qū)包含性能體驗(yàn)設(shè)計(jì)、性能檢測、性能分析、性能優(yōu)化與場景化案例五大核心板塊,目前已收錄52篇指導(dǎo)文檔,貫穿“問題定位-根因分析-優(yōu)化實(shí)施-效果驗(yàn)證”全流程。

以常見的列表頁面滑動(dòng)卡頓這一典型問題為例,性能分析板塊內(nèi)的《分析幀率問題》最佳實(shí)踐提供了丟幀問題的完整分析思路、性能優(yōu)化工具的使用方法,并推薦了常見的優(yōu)化方案。而《優(yōu)化長列表加載慢丟幀問題》、《優(yōu)化瀑布流加載慢丟幀問題》等場景案例文章則聚焦于常見性能問題場景,為開發(fā)者提供詳細(xì)的優(yōu)化指導(dǎo),包括優(yōu)化原理剖析、代碼級(jí)優(yōu)化解析以及可運(yùn)行的完整示例代碼。

圖:丟幀問題處理流程

真實(shí)案例介紹:應(yīng)用頁面滑動(dòng)卡頓丟幀問題優(yōu)化過程

開發(fā)者在實(shí)現(xiàn)長列表頁面滑動(dòng)時(shí)出現(xiàn)卡頓丟幀、滑動(dòng)不流暢的問題,多次優(yōu)化代碼仍未解決,最終通過參照性能專區(qū)的最佳實(shí)踐指導(dǎo),該問題得以較好解決。

首先,開發(fā)者利用性能檢測工具分析問題,參考性能分析相關(guān)最佳實(shí)踐,發(fā)現(xiàn)性能瓶頸主要集中在網(wǎng)絡(luò)數(shù)據(jù)加載與 UI 組件頻繁創(chuàng)建與銷毀。定位根因?yàn)樵摿斜眄撁姘罅扛咔鍒D片和視頻資源,且組件布局復(fù)雜,一次性加載大量數(shù)據(jù)以及組件的頻繁創(chuàng)建與銷毀,導(dǎo)致網(wǎng)絡(luò)請求與主線程 UI 渲染壓力過大,進(jìn)而引發(fā)了頁面滑動(dòng)過程中的卡頓和丟幀現(xiàn)象。

為了解決上述問題,根據(jù)最佳實(shí)踐文章建議,開發(fā)者應(yīng)用了 LazyForEach 懶加載渲染。通過按需加載數(shù)據(jù),僅加載屏幕可視區(qū)能夠容納的組件數(shù)量,有效減少了全量加載帶來的性能壓力。然而,在快速滑動(dòng)列表時(shí),組件的頻繁創(chuàng)建與銷毀仍會(huì)出現(xiàn)丟幀和卡頓現(xiàn)象。

圖:懶加載原理圖

為進(jìn)一步優(yōu)化性能,開發(fā)者采用了文章中介紹的組件復(fù)用能力。HarmonyOS 應(yīng)用框架提供的組件復(fù)用機(jī)制,使得可復(fù)用組件從組件樹上移除時(shí),會(huì)進(jìn)入到一個(gè)回收緩存區(qū),后續(xù)創(chuàng)建新組件節(jié)點(diǎn)時(shí),會(huì)優(yōu)先復(fù)用緩存區(qū)中的節(jié)點(diǎn),從而節(jié)約組件重新創(chuàng)建的時(shí)間。

圖:組件復(fù)用原理圖

最終,通過 LazyForEach 懶加載渲染與組件復(fù)用相結(jié)合的方法,顯著降低了長列表頁面的滑動(dòng)丟幀率, 從測試數(shù)據(jù)來看,在優(yōu)化前該頁面滑動(dòng)卡頓率達(dá)到14.14ms/s,通過優(yōu)化后降到了5ms/s以內(nèi),有效提升了性能體驗(yàn)。

即刻體驗(yàn)

性能專區(qū)為鴻蒙生態(tài)開發(fā)者提供了一個(gè)解決性能問題的“寶庫”。開發(fā)者無需在龐雜的技術(shù)文檔中摸索,只需打開 HarmonyOS 開發(fā)者官網(wǎng),依次點(diǎn)擊開發(fā)-> 開發(fā)文檔->最佳實(shí)踐,進(jìn)入“性能”專欄,即可按場景快速獲取解決方案。

未來,華為將持續(xù)更新、優(yōu)化性能專區(qū)內(nèi)容,并結(jié)合開發(fā)者反饋,擴(kuò)展更多實(shí)戰(zhàn)案例與解決方案,不斷降低性能優(yōu)化門檻,幫助開發(fā)者攻克技術(shù)難關(guān),為用戶帶來更極致的鴻蒙應(yīng)用體驗(yàn)。

更多最佳實(shí)踐案例與文檔,請?jiān)L問:

https://developer.huawei.com/consumer/cn/doc/best-practices-V5/bpta-develop-once-deploy-everywhere-V5?catalogVersion=V5?ha_source=rrdscpjl&ha_sourceId=89000499

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請登錄
  1. 目前還沒評(píng)論,等你發(fā)揮!
专题
12903人已学习12篇文章
产品立项,对于产品来说是其生命周期中最基础的和最重要的阶段。产品立项都有哪些主要工作?本专题的文章分享了产品立项指南。
专题
13920人已学习12篇文章
本专题的文章主要以跨境电商为例,对其OMS系统进行分析。
专题
85560人已学习22篇文章
不能用C端产品思维套在B端产品上哦。
专题
16114人已学习12篇文章
本专题的文章分享了支付风控系统的设计指南
专题
90477人已学习13篇文章
不论你是产品经理还是运营,都要具备数据分析基本能力。