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

在鴻蒙應(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)行的完整示例代碼。

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

圖:丟幀問題處理流程

真實(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ò)請(qǐng)求與主線程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)象。

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

圖:懶加載原理圖

為進(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í)間。

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

圖:組件復(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)入“性能”專欄,即可按場景快速獲取解決方案。

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

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

(免責(zé)聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請(qǐng)進(jìn)一步核實(shí),并對(duì)任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對(duì)有關(guān)資料所引致的錯(cuò)誤、不確或遺漏,概不負(fù)任何法律責(zé)任。
任何單位或個(gè)人認(rèn)為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識(shí)產(chǎn)權(quán)或存在不實(shí)內(nèi)容時(shí),應(yīng)及時(shí)向本網(wǎng)站提出書面權(quán)利通知或不實(shí)情況說明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實(shí)情況證明。本網(wǎng)站在收到上述法律文件后,將會(huì)依法盡快聯(lián)系相關(guān)文章源頭核實(shí),溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。 )